> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Turn prospect lists into booked demos

> Give Agent a call list, your calendar, and a goal: it calls each prospect, books the demo, and logs the refusals.

export const AgentPricingModel = 'effort-based pricing';

export const Connectors = ({items}) => <div style={{
  margin: "8px 0 20px"
}}>
    <style>{`
      .connectors-list, .connectors-list * { margin-top: 0 !important; margin-bottom: 0 !important; }
      .connectors-row {
        display: flex !important;
        align-items: flex-start !important;
        gap: 10px !important;
        padding: 4px 0 !important;
        min-height: 0 !important;
        height: auto !important;
      }
      .connectors-row img {
        width: 20px !important;
        height: 20px !important;
        max-width: 20px !important;
        max-height: 20px !important;
        margin: 2px 0 0 !important;
        display: block !important;
      }
    `}</style>
    <div className="connectors-list">
      {items.map((item, i) => <div key={item.id} className="connectors-row" style={{
  borderTop: i === 0 ? "none" : "1px solid rgba(130,130,130,0.22)"
}}>
          <img src={`/images/connectors/${item.id}.svg`} alt="" width={20} height={20} />
          <div style={{
  minWidth: 0
}}>
            <div>
              <strong>{item.name}</strong>
              {item.why ? <span style={{
  opacity: 0.72
}}> · {item.why}</span> : null}
            </div>
            {item.auth === "api-key" ? <div style={{
  fontSize: "11.5px",
  lineHeight: 1.35,
  color: "#F26207",
  marginTop: "2px"
}}>
                Not a native connector. Agent will ask for your API key.
              </div> : null}
          </div>
        </div>)}
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

Agent can work the phone. Give it a prospect list in Salesforce, access to your calendar,
and the outcome you want. AgentPhone places each call through MCP and holds the
conversation. Accepted meetings land on your calendar with an invite to the prospect's
email, and every refusal goes back to Salesforce with the reason. You read the transcripts
afterward.

## Best for

* Sales teams who need first-touch calls on a long list without burning a rep's morning.
* Founders doing outbound who want the meeting booked, not a queue of callbacks.

## Connectors

<Connectors
  items={[
{
  id: "salesforce",
  name: "Salesforce",
  why: "Prospect list, phone numbers, and call outcomes",
},
{
  id: "agentphone",
  name: "AgentPhone",
  why: "Places the call and holds the conversation",
},
{
  id: "google-calendar",
  name: "Google Calendar",
  why: "Free slots and invitations to the prospect",
},
]}
/>

## Before you start

Have a Salesforce view with the prospects to call: name, company, phone number, email, and
time zone. Know which calendar Agent should read and which hours you're happy to offer.

AgentPhone needs a number to call from, so buy one in your
AgentPhone account or ask Agent to provision one on the first run. The number and the call
minutes are billed by AgentPhone, so fund that account before the run. Agent bills on
{AgentPricingModel}, so the run spends Replit credits too. Keep a balance on your plan.

These are real calls to real people. Start with a five-person test list you own, and listen
to the recordings. Many places regulate AI-voiced calls. In the US, for example, they
generally require the recipient's prior consent. Only call prospects who agreed to be
contacted this way, and check the calling, disclosure, and recording rules everywhere you dial.

## Prompt the agent

<AiPrompt>
  Call the prospects in this Salesforce view \[link or name] with AgentPhone.
  Open by saying you're an AI assistant calling on behalf of \[name] at
  \[company], and ask for a 30-minute demo. Check my \[calendar] first, then offer
  free slots between \[hours] in the prospect's time zone. When someone accepts,
  create the event and invite them at the email on their Salesforce record. When
  someone declines, set the Salesforce status to \[status] with the reason and
  the transcript. Stop after \[n] calls and summarize the outcomes.
</AiPrompt>

## What to expect

<Steps>
  <Step title="Agent asks you to connect">
    Replit opens the AgentPhone sign-in so you can authorize the MCP server,
    and asks for Salesforce and Google Calendar if they aren't connected yet.
  </Step>

  <Step title="It reads the list and your calendar">
    It tells you how many prospects it found, and confirms the slots it's
    allowed to offer before it dials anything.
  </Step>

  <Step title="It calls one prospect at a time">
    Through AgentPhone, it holds the conversation and reports each outcome:
    booked, declined, no answer, or wrong number.
  </Step>

  <Step title="Accepted calls become meetings">
    Agent creates the event and invites the prospect at the email on their
    Salesforce record.
  </Step>

  <Step title="Declined calls go back to Salesforce">
    With the status, the reason, and the transcript. Agent summarizes the
    whole run at the end.
  </Step>
</Steps>

You end up with demos on your calendar, a clean reason on every refusal, and a transcript
for every call. Open three transcripts, confirm the disclosure was clear, check the slot
offered was free, and check the invite reached the address on the record.

## Make it work for you

<AiPrompt>
  Only call prospects in \[segment], between 9:00 and 11:00 in their time zone.
  Retry a no-answer once the next day, then mark them unreachable in Salesforce.
</AiPrompt>

<AiPrompt>
  If a prospect asks about pricing, say \[answer] and offer to send details by
  email. Never discuss discounts or contract terms on the call. End the call if
  someone asks not to be contacted, and mark them do-not-call in Salesforce.
</AiPrompt>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Everything goes to voicemail">
    Set the calling window in the prospect's time zone and cap retries. Ask
    Agent to leave one short voicemail, then mark the record instead of
    dialing again. Also check AgentPhone's country coverage: it may not be
    able to place calls to every country.
  </Accordion>

  <Accordion title="Meetings collide">
    Agent has to read the calendar before it offers a slot. Ask it to hold a
    tentative event while the call is live, then confirm or release it when the
    call ends.
  </Accordion>

  <Accordion title="Invites never arrive">
    Check the email field on the Salesforce record. Tell Agent to skip and flag
    prospects with no email rather than guessing an address.
  </Accordion>

  <Accordion title="Nothing is logged in Salesforce">
    Confirm the connector can write to the fields and status values you named,
    and ask Agent to attach the transcript to the activity.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Prepare for a customer call" href="/use-cases/prepare-for-a-customer-call">
    Same Salesforce record, researched before a call that matters.
  </Card>

  <Card title="Find investors to pitch" href="/use-cases/find-investors">
    Build the contact list before you work the phone.
  </Card>
</CardGroup>
