Zendesk Chat
O Zendesk Chat usa webhooks de cada plataforma para configurar uma conversa bidirecional por SMS. Quando um usuário solicita suporte, um ticket é criado no Zendesk. As respostas dos agentes são encaminhadas à Braze por meio de uma Campaign de SMS disparada por API, e as respostas dos usuários são enviadas de volta ao Zendesk.
Para a transferência de IA conversacional para um agente humano pelo Sunshine Conversations, consulte Transferência para o Zendesk Support. Para a criação e a sincronização de tickets do Zendesk por meio de webhooks da Braze, consulte Zendesk.
Pré-requisitos
| Requisitos | Descrição |
|---|---|
| Uma conta Zendesk | É necessário ter uma conta Zendesk para aproveitar esta parceria. |
| Um token de autorização básica do Zendesk | Um token de autorização básica do Zendesk é usado para fazer uma solicitação de webhook de saída da Braze para o Zendesk. |
| Uma chave da API REST da Braze | Uma chave da API REST da Braze com as permissões campaigns.trigger.send. Ela pode ser criada no dashboard da Braze em Configurações > Chaves de API. |
Casos de uso
Aumente a eficiência do suporte ao cliente ao combinar os recursos de SMS da Braze com as respostas de agentes ao vivo do Zendesk. Assim, você responde rapidamente às dúvidas dos usuários com atendimento humano.
Integração do Zendesk Chat
Etapa 1: Crie um webhook no Zendesk
- No console de desenvolvedor do Zendesk, acesse os webhooks:
https://{{url}}.zendesk.com/admin/apps-integrations/webhooks/webhooks - Em Create Webhook, selecione Trigger or automation.
- Em Endpoint URL, adicione o endpoint /campaign/trigger/send.
- Em Authentication, selecione Bearer token e adicione a chave da API REST da Braze com as permissões
campaigns.trigger.send.

Etapa 2: Crie uma Campaign de SMS de saída
Em seguida, crie uma Campaign de SMS que escute os webhooks do Zendesk e envie uma resposta personalizada por SMS para seus clientes.
Etapa 2.1: Escreva sua mensagem
Quando o Zendesk envia o conteúdo de uma mensagem pela API, ele chega no seguinte formato:
**----------------------------------------------\n\n{Replier Name}, {Replier Date}\n\n{Message}**
Então, precisamos extrair dessa string apenas o detalhe que queremos exibir na mensagem. Caso contrário, o usuário verá todos os detalhes.

Na caixa de texto Mensagem, adicione o seguinte código Liquid e qualquer texto de opt-out ou outro conteúdo estático:
{% assign body = {{api_trigger_properties.${msg_body}}} %}
{% assign msg = body | split: "
" %}
New message from Zendesk:
{{msg[2]}}
Feel free to respond directly to this number!

Etapa 2.2: Agende a entrega
Como tipo de entrega, selecione Entrega acionada por API e copie o ID da campanha, que será usado nas próximas etapas.

Por fim, em Controles de entrega, ative a reelegibilidade.

Etapa 3: Crie um gatilho no Zendesk para encaminhar as respostas dos agentes para a Braze
Acesse Objects and rules > Business rules > Triggers.
- Crie uma nova categoria (por exemplo, Trigger a message).
- Crie um novo gatilho (por exemplo, Respond via SMS Braze).
- Em Conditions, selecione:
- Ticket>Comment é Present and requester can see comment, para que a mensagem seja disparada sempre que um novo comentário público for incluído em uma atualização do ticket
- Ticket>Update não é Web service (API), para que, quando um usuário enviar uma mensagem pela Braze, ela não seja encaminhada de volta para o celular dele. Somente as mensagens vindas do Zendesk são encaminhadas.

Em Actions, selecione Notify by Webhook e escolha o endpoint que você criou na etapa 1. Em seguida, especifique o corpo da chamada de API. Insira o campaign_id da etapa 2.2 no corpo da solicitação.

{
"campaign_id": "{{YOUR_CAMPAIGN_ID}}",
"recipients": [
{
"external_user_id": "{{ticket.requester.custom_fields.braze_external_id}}",
"trigger_properties": {
"msg_body": "{{ticket.latest_public_comment_html}}"
},
"attributes": {
"zendesk_ticket" : "{{ticket.id}}",
"zendesk_ticket_open" : "true"
}
}
]
}
Etapa 4: Crie um gatilho no Zendesk para atualizar o usuário quando um ticket for fechado
Se quiser avisar o usuário que o ticket foi fechado, crie uma nova Campaign na Braze com o corpo da resposta modelo.

Selecione Entrega acionada por API e copie o ID da campanha.
Em seguida, configure um gatilho para notificar a Braze quando o ticket for fechado:
- Categoria: Trigger a message
- Em Conditions, selecione Ticket>Ticket Status e altere para Solved

Em Actions, selecione Notify by Webhook e escolha o segundo endpoint que você acabou de criar. A partir daí, precisamos especificar o corpo da chamada de API:

{
"campaign_id": "{{YOUR_API_KEY}}",
"recipients": [
{
"external_user_id": "{{ticket.requester.custom_fields.braze_external_id}}",
"trigger_properties": {
"msg_body": "Your ticket has been closed"
},
,
"attributes": {
"zendesk_ticket_open" : "false"
}
}
]
}
Etapa 5: Adicione um campo de usuário personalizado no Zendesk
No Admin Center, selecione People na barra lateral e depois Configuration > User fields. Adicione o campo de usuário personalizado braze_external_id.
Etapa 6: Configure o encaminhamento de SMS de entrada
Em seguida, você criará duas novas Campaigns de webhook na Braze para encaminhar os SMS de entrada dos clientes para a caixa de entrada do Zendesk.
| Campaign | Finalidade |
|---|---|
| Campaign de webhook 1 | Cria um novo ticket no Zendesk. |
| Campaign de webhook 2 | Encaminha para o Zendesk todas as respostas de SMS de conversa enviadas pelo cliente. |
Etapa 6.1: Crie uma categoria de palavra-chave de SMS
No dashboard da Braze, acesse Público, escolha seu grupo de inscrições de SMS e selecione Adicionar palavra-chave personalizada. Preencha os campos a seguir para criar uma categoria de palavra-chave de SMS exclusiva para o Zendesk.
| Campo | Descrição |
|---|---|
| Categoria de palavra-chave | O nome da sua categoria de palavra-chave, como ZendeskSMS1. |
| Palavras-chave | Suas palavras-chave personalizadas, como SUPPORT. |
| Mensagem de resposta | A mensagem enviada quando uma palavra-chave é detectada, como “Um representante do atendimento entrará em contato com você em breve.” |

Etapa 6.2: Crie sua primeira Campaign de webhook
No dashboard da Braze, crie sua primeira Campaign de webhook. Essa mensagem vai sinalizar ao Zendesk que o suporte está sendo solicitado.
No criador de webhooks, preencha os seguintes campos:
- URL do webhook: https://{{url}}.zendesk.com/api/v2/tickets
- Método HTTP: POST
- Cabeçalhos da solicitação:
- Content-Type: application/json
- Authorization: Basic
- Corpo da solicitação:
{
"ticket": {
"subject": "Action Needed",
"comment": {
"body": "{{sms.${inbound_message_body}}}"
},
"requester":{
"name": "{{${first_name}}} {{${last_name}}}",
"user_fields": {
"braze_external_id": "{{${user_id}}}"
}
},
"priority": "normal",
"type": "problem"
}
}

Etapa 6.3: Agende a primeira entrega
Em Agendar entrega, selecione Entrega baseada em ação e escolha Enviar uma mensagem SMS de entrada como tipo de gatilho. Adicione também o grupo de inscrições de SMS e a categoria de palavra-chave que você configurou anteriormente.

Em Controles de entrega, ative a reelegibilidade.

Etapa 6.4: Crie sua segunda Campaign de webhook
Configure uma Campaign de webhook para encaminhar as demais mensagens SMS do usuário para o Zendesk:
Como o Zendesk envia o ID do ticket como string, crie um bloco de conteúdo para converter a string em um número inteiro e poder usá-lo no webhook do Zendesk.
{% assign var = {{custom_attribute.${zendesk_ticket}}} | to_i %}{{var}}
No criador de webhooks:
- URL do webhook: https://{{url}}.zendesk.com/api/v2/tickets/{{content_blocks.${to_int}}}.json
- Solicitação: PUT
- Pares de chave-valor:
- Content-Type:application/JSON
- Authorization: Basic
Exemplo de corpo:
{
"ticket": {
"comment": {
"body": "Inbound message from {{${first_name}}} {{${last_name}}}: {{sms.${inbound_message_body}}}"
}
}
}
Etapa 6.5: Conclua a configuração da segunda Campaign de webhook
- Configure um gatilho baseado em ação para usuários que enviarem uma mensagem de entrada na categoria “Other”.
- Configure os critérios de reelegibilidade.
- Adicione os públicos aplicáveis (neste caso, o atributo personalizado zendesk_ticket_open é true).