> ## 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.

# 잠재 고객 리스트를 예약된 데모로 바꾸기

> Agent에게 통화 리스트, 캘린더, 목표를 주면 각 잠재 고객에게 전화해 데모를 예약하고 거절 내역을 기록합니다.

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는 전화 업무도 처리할 수 있습니다. Salesforce의 잠재 고객 리스트, 캘린더 접근 권한,
원하는 결과를 알려주세요. AgentPhone이 MCP를 통해 각 통화를 걸고 대화를 진행합니다.
수락된 미팅은 잠재 고객의 이메일로 초대장이 발송되며 캘린더에 등록되고, 모든 거절은 사유와
함께 Salesforce에 기록됩니다. 통화 녹취록은 나중에 직접 읽어보시면 됩니다.

## 적합한 대상

* 영업 담당자의 오전을 쏟지 않고도 긴 리스트에 첫 접촉 전화를 걸어야 하는 영업 팀
* 콜백 대기열이 아니라 확정된 미팅을 원하는 아웃바운드 영업 창업자

## 커넥터

<Connectors
  items={[
{
  id: "salesforce",
  name: "Salesforce",
  why: "잠재 고객 리스트, 전화번호, 통화 결과",
},
{
  id: "agentphone",
  name: "AgentPhone",
  why: "전화를 걸고 대화를 진행",
},
{
  id: "google-calendar",
  name: "Google Calendar",
  why: "빈 시간대와 잠재 고객 초대",
},
]}
/>

## 시작하기 전에

전화를 걸 잠재 고객이 포함된 Salesforce 뷰를 준비하세요. 이름, 회사, 전화번호, 이메일, 시간대가
있어야 합니다. Agent가 읽어야 할 캘린더와 제안해도 되는 시간대를 정해 두세요.

AgentPhone에는 발신용 번호가 필요하므로, AgentPhone 계정에서 번호를 구입하거나 첫 실행 시
Agent에게 번호 발급을 요청하세요. 번호와 통화 시간은 AgentPhone에서 청구되므로 실행 전에 해당
계정에 충전해 두세요. Agent는 {AgentPricingModel}에 따라 청구되므로, 실행 시 Replit 크레딧도
소비됩니다. 요금제에 잔액을 유지하세요.

이 통화는 실제 사람에게 거는 실제 전화입니다. 직접 소유한 다섯 명 규모의 테스트 리스트로
시작하고, 녹음을 들어 보세요. 많은 지역에서 AI 음성 통화를 규제합니다. 예를 들어 미국에서는
일반적으로 수신자의 사전 동의를 요구합니다. 이런 방식의 연락에 동의한 잠재 고객에게만
전화하고, 전화를 거는 모든 지역의 통화, 고지, 녹음 규정을 확인하세요.

## 에이전트에게 요청하기

<AiPrompt>
  AgentPhone으로 이 Salesforce 뷰 \[link or name]의 잠재 고객들에게 전화해 주세요.
  \[company]의 \[name]을 대신해 전화하는 AI 어시스턴트라고 먼저 밝히고, 30분
  데모를 요청해 주세요. 먼저 제 \[calendar]를 확인한 다음, 잠재 고객의 시간대 기준
  \[hours] 사이의 빈 시간대를 제안해 주세요. 수락하면 이벤트를 만들고 Salesforce
  레코드에 있는 이메일로 초대해 주세요. 거절하면 Salesforce 상태를 \[status]로
  설정하고 사유와 녹취록을 남겨 주세요. \[n]건의 통화 후 중단하고 결과를
  요약해 주세요.
</AiPrompt>

## 예상 결과

<Steps>
  <Step title="Agent가 연결을 요청합니다">
    Replit이 MCP 서버를 승인할 수 있도록 AgentPhone 로그인 화면을 열고, 아직
    연결되지 않았다면 Salesforce와 Google Calendar도 요청합니다.
  </Step>

  <Step title="리스트와 캘린더를 읽습니다">
    찾은 잠재 고객 수를 알려주고, 전화를 걸기 전에 제안할 수 있는 시간대를
    확인합니다.
  </Step>

  <Step title="한 번에 한 명씩 전화합니다">
    AgentPhone을 통해 대화를 진행하고 각 결과를 보고합니다. 예약됨, 거절됨, 부재중,
    잘못된 번호 중 하나입니다.
  </Step>

  <Step title="수락된 통화는 미팅이 됩니다">
    Agent가 이벤트를 만들고 Salesforce 레코드에 있는 이메일로 잠재 고객을
    초대합니다.
  </Step>

  <Step title="거절된 통화는 Salesforce로 돌아갑니다">
    상태, 사유, 녹취록과 함께 기록됩니다. Agent는 마지막에 전체 실행을
    요약합니다.
  </Step>
</Steps>

결과적으로 캘린더에 데모가 잡히고, 모든 거절에 명확한 사유가 남고, 모든 통화의 녹취록이
생깁니다. 녹취록 세 개를 열어 고지가 명확했는지, 제안한 시간대가 비어 있었는지, 초대장이
레코드의 주소로 도착했는지 확인하세요.

## 나에게 맞게 활용하기

<AiPrompt>
  \[segment]에 속한 잠재 고객에게만, 그들의 시간대 기준 오전 9시에서 11시 사이에
  전화해 주세요. 부재중이면 다음 날 한 번 재시도한 뒤 Salesforce에서 연락 불가로
  표시해 주세요.
</AiPrompt>

<AiPrompt>
  잠재 고객이 가격을 물으면 \[answer]라고 답하고 이메일로 자세한 내용을 보내겠다고
  제안해 주세요. 통화 중에 할인이나 계약 조건은 절대 논의하지 마세요. 연락을 원하지
  않는다고 하면 통화를 종료하고 Salesforce에서 수신 거부로 표시해 주세요.
</AiPrompt>

## 문제 해결

<AccordionGroup>
  <Accordion title="모두 음성사서함으로 넘어갑니다">
    잠재 고객의 시간대를 기준으로 통화 시간대를 설정하고 재시도 횟수를 제한하세요.
    Agent에게 짧은 음성 메시지를 한 번만 남기고, 다시 걸지 말고 레코드에 표시하도록
    요청하세요. AgentPhone의 국가 지원 범위도 확인하세요. 모든 국가로 전화를 걸 수
    없을 수 있습니다.
  </Accordion>

  <Accordion title="미팅이 겹칩니다">
    Agent는 시간대를 제안하기 전에 캘린더를 읽어야 합니다. 통화 중에는 임시 이벤트를
    잡아 두었다가, 통화가 끝나면 확정하거나 해제하도록 요청하세요.
  </Accordion>

  <Accordion title="초대장이 도착하지 않습니다">
    Salesforce 레코드의 이메일 필드를 확인하세요. 주소를 추측하지 말고, 이메일이 없는
    잠재 고객은 건너뛰고 표시하도록 Agent에게 지시하세요.
  </Accordion>

  <Accordion title="Salesforce에 아무것도 기록되지 않습니다">
    커넥터가 지정한 필드와 상태 값에 쓸 수 있는지 확인하고, 활동에 녹취록을 첨부하도록
    Agent에게 요청하세요.
  </Accordion>
</AccordionGroup>

## 관련 문서

<CardGroup cols={2}>
  <Card title="고객 통화 준비하기" href="/ko/use-cases/prepare-for-a-customer-call">
    중요한 통화 전에 같은 Salesforce 레코드를 조사합니다.
  </Card>

  <Card title="피칭할 투자자 찾기" href="/ko/use-cases/find-investors">
    전화를 걸기 전에 연락처 리스트를 만드세요.
  </Card>
</CardGroup>
