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

# Acionar uma chamada do VoiceAgent a partir do Salesforce

> Acione chamadas do VoiceAgent da CloudTalk diretamente a partir do Salesforce, utilizando o Flow Builder e um HTTP Callout em Apex

<Note>
  Pode acionar automaticamente uma chamada do VoiceAgent da CloudTalk a partir do Salesforce, utilizando o Flow Builder com um HTTP Callout, suportado por uma classe Apex. Este guia mostra-lhe como configurar a ligação, adicionar a ação de chamada e confirmar que a chamada foi iniciada.
</Note>

**Nível de utilizador:** Admin

***

<h2 id="h_c534ee90a9">
  Antes de começar
</h2>

Vai precisar de:

* Um VoiceAgent da CloudTalk já criado (tome nota do ID do VoiceAgent)

* [Credenciais da API da CloudTalk](/pt/articles/15272380-how-to-access-and-generate-your-cloudtalk-api-keys) (Chave da API e Segredo)

* Salesforce Enterprise edition ou superior (Flow Builder com HTTP Callout)

* Um campo de telefone disponível nos seus registos Contact ou Lead, no formato `E.164` (por exemplo, `+14155550100`)

<h2 id="h_d679197c7b">
  Configurar a integração
</h2>

<h3 id="h_1a1932ad04">
  Criar a Named Credential
</h3>

Primeiro, crie uma External Credential para guardar em segurança a sua chave da API da CloudTalk:

1. Aceda a **Setup > Security > Named Credentials > External Credentials**.

2. Clique em **New External Credential**:

   * **Label:** CloudTalk API

   * **Name:** CloudTalk\_API

   * **Authentication Protocol:** Basic

   <Frame>
     <img src="https://mintcdn.com/cloudtalk/8FCfL6QWpEnHvO8c/images/help-center/articles/16064425/f42afbda40a0-image.png?fit=max&auto=format&n=8FCfL6QWpEnHvO8c&q=85&s=9aa5faa95041ed98f83abc78b33f4f9c" alt="" width="909" height="284" data-path="images/help-center/articles/16064425/f42afbda40a0-image.png" />
   </Frame>

3. Clique em **Save** e, em **Principals**, clique em **New**:

   * Escolha um nome e defina o **Identity Type** como **Named Principal**.

   * Introduza o **ID da Chave da API** da CloudTalk como nome de utilizador e o **Segredo da API** como palavra-passe.

   * Clique em **Save**.

<Frame>
  <img src="https://mintcdn.com/cloudtalk/8FCfL6QWpEnHvO8c/images/help-center/articles/16064425/80d0479bd0d9-image.png?fit=max&auto=format&n=8FCfL6QWpEnHvO8c&q=85&s=2bc7d38895a1ff4a48d88726ddb32479" alt="" width="899" height="864" data-path="images/help-center/articles/16064425/80d0479bd0d9-image.png" />
</Frame>

De seguida, crie a Named Credential que aponta para a CloudTalk:

1. Aceda a **Setup > Security > Named Credentials > Named Credentials**.

2. Clique em **New Named Credential**:

   * **Label:** CloudTalk

   * **Name:** CloudTalk

   * **URL:** `https://api.cloudtalk.io`

   * **External Credential:** CloudTalk API

   * Em **Callout Options**, ative **Generate Authorization Header** e **Allow Formulas in HTTP Body**.

3. Clique em **Save**.

Por fim, conceda a si próprio acesso à credencial:

1. Aceda a **Setup > Permission Sets**, abra (ou crie) um permission set atribuído a si, vá a **External Credential Principal Access > Edit**, adicione o seu principal `CloudTalk_API` e clique em **Save**.

<Frame>
  <img src="https://mintcdn.com/cloudtalk/8FCfL6QWpEnHvO8c/images/help-center/articles/16064425/3714caae4af3-image.png?fit=max&auto=format&n=8FCfL6QWpEnHvO8c&q=85&s=3a0b3aa65e24b50345d6613885bb28fc" alt="" width="909" height="284" data-path="images/help-center/articles/16064425/3714caae4af3-image.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/cloudtalk/8FCfL6QWpEnHvO8c/images/help-center/articles/16064425/f22a61ebe097-image.png?fit=max&auto=format&n=8FCfL6QWpEnHvO8c&q=85&s=e91164bb89d61a0ec4f33a675a6b2775" alt="" width="899" height="864" data-path="images/help-center/articles/16064425/f22a61ebe097-image.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/cloudtalk/8FCfL6QWpEnHvO8c/images/help-center/articles/16064425/c3209907f03c-image.png?fit=max&auto=format&n=8FCfL6QWpEnHvO8c&q=85&s=c24c2ae14f775dec4986bc5ef012b629" alt="" width="899" height="460" data-path="images/help-center/articles/16064425/c3209907f03c-image.png" />
</Frame>

<h3 id="h_0c78cde929">
  Criar a classe Apex
</h3>

1. Aceda a **Setup > Apex Classes > New**.

2. Cole o código abaixo, substitua `YOUR_VOICE_AGENT_ID` na linha 3 pelo ID do seu VoiceAgent e clique em **Save**.

```
public with sharing class CloudTalkVoiceAgent {

    private static final String VOICE_AGENT_ID = 'YOUR_VOICE_AGENT_ID';

    @InvocableMethod(label='Start CloudTalk Voice Agent Call' description='Triggers a CloudTalk voice agent call')
    public static void invoke(List<Request> requests) {
        for (Request r : requests) {
            startCall(r.callNumber);
        }
    }

    @future(callout=true)
    public static void startCall(String callNumber) {
        HttpRequest req = new HttpRequest();
        req.setEndpoint('callout:CloudTalk/v1/voice-agent/calls');
        req.setMethod('POST');
        req.setHeader('Content-Type', 'application/json');
        req.setBody(JSON.serialize(new Map<String, Object>{
            'call_number'    => callNumber,
            'voice_agent_id' => VOICE_AGENT_ID
        }));
        HttpResponse res = new Http().send(req);
        System.debug('CloudTalk status: ' + res.getStatusCode());
    }

    public class Request {
        @InvocableVariable(label='Call Number' required=true)
        public String callNumber;
    }
}
```

<h3 id="h_8eb7a6f11f">
  Construir o Flow
</h3>

1. Aceda a **Setup > Process Automation > Flows > New Flow**.

2. Selecione **Record-Triggered Flow**.

3. Configure o acionador (Object: Contact ou Lead; When: um registo é criado ou um campo é alterado).

4. Adicione uma condição para filtrar registos, por exemplo, apenas quando o campo de telefone não estiver vazio.

5. Clique em **+ > Action** e procure «Start CloudTalk Voice Agent Call».

6. Defina o valor de entrada de **Call Number** como `{!$Record.Phone}`.

7. Clique em **Save** e em **Activate** para ativar o Flow.

<Frame>
  <img src="https://mintcdn.com/cloudtalk/8FCfL6QWpEnHvO8c/images/help-center/articles/16064425/be2af2a8b68a-image.png?fit=max&auto=format&n=8FCfL6QWpEnHvO8c&q=85&s=3cb9bb48204255b2c370e1710c2691b2" alt="" width="971" height="767" data-path="images/help-center/articles/16064425/be2af2a8b68a-image.png" />
</Frame>

<Warning>
  `call_number` e `voice_agent_id` são os únicos campos obrigatórios. Opcionalmente, pode adicionar `call_properties`, como variáveis do system prompt (dados que o VoiceAgent utiliza durante a chamada) e variáveis de saída (dados devolvidos ao seu endpoint após a chamada), consoante a configuração do seu VoiceAgent. [Saiba o que incluir](/pt/articles/11401649-voiceagents-for-outbound-calls).
</Warning>

<h3 id="h_d2c4d04fd1">
  Testar e verificar
</h3>

1. Crie ou atualize um registo que cumpra as condições do seu acionador.

2. Consulte **Setup > Debug Logs** ou os detalhes do Flow interview para confirmar a execução.

3. Confirme na CloudTalk que a chamada do VoiceAgent foi iniciada.

**Está tudo pronto!** 🚀 O seu Flow do Salesforce passa agora a acionar automaticamente uma chamada do VoiceAgent da CloudTalk sempre que um registo cumprir as condições que definiu.

<h2 id="h_aa42546889">
  Resolução de problemas
</h2>

* **Callout não autorizado:** certifique-se de que `api.cloudtalk.io` está adicionado em Remote Site Settings.

* **401 Unauthorized:** verifique as credenciais guardadas no principal da External Credential.

* **400 Bad Request:** confirme que o número de telefone está no formato E.164 (por exemplo, `+14155550100`).

* **O Flow não é acionado:** confirme que o registo cumpre todas as condições de entrada e que o Flow está ativo.

***

Precisa de ajuda ou tem alguma questão? Contacte-nos através do nosso [portal de Suporte](https://support.cloudtalk.io/hc/en-us/requests/new?ticket_form_id=26305535257884). Estamos aqui para si.


## Related topics

- [Acionar uma chamada do VoiceAgent a partir do Freshdesk](/pt/articles/15457387-triggering-a-voiceagent-call-from-freshdesk.md)
- [Acionar uma chamada do VoiceAgent a partir do Zendesk](/pt/articles/15934846-triggering-a-voiceagent-call-from-zendesk.md)
- [Acionar uma chamada do VoiceAgent a partir do Freshservice](/pt/articles/15502021-triggering-a-voiceagent-call-from-freshservice.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.