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

# Parar conversa do Treble e aguardar resposta do seu servidor

> Normalmente, o Treble espera que a resposta do seu servidor a um webhook seja menos de 10 segundos. Se você precisar de mais tempo, pode parar a conversa do Treble e aguardar a resposta do seu servidor com a opção `[REQUEST_TRIGGER]`. Aprenda a configurá-la neste artigo.

## Request Trigger

Todo webhook do Treble espera uma resposta do seu servidor em menos de 10 segundos. Se o tempo for excedido, o webhook será marcado como timeout e a conversa do fluxo no Treble continuará.

No entanto, há vezes em que a conversa do WhatsApp do Treble deve aguardar a resposta do seu servidor. Por exemplo, quando um cliente envia uma foto de sua identidade nacional para validar sua conta e seu servidor deve processar a imagem e validá-la. É possível que isso leve mais de 10 segundos.

Para isso, você pode parar a conversa do Treble e aguardar a resposta do seu servidor com a opção `[REQUEST_TRIGGER]`. Com a opção `[REQUEST_TRIGGER]`, o Treble aguardará que seu servidor chame o endpoint `POST /session/{session_external_id}/update` para continuar a conversa.

```mermaid theme={null}
sequenceDiagram
    participant Usuario
    participant Treble
    participant Servidor

    Usuario->>Treble: Envia mensagem (ex. foto de identidade)
    Treble->>Servidor: Envia webhook com session_id
    note right of Treble: Aguarda resposta do servidor
    Servidor-->>Treble: Processa e valida a informação
    Servidor->>Treble: Chama POST /session/{session_external_id}/update
    Treble->>Usuario: Continua a conversa
```

## Como configurar um request trigger?

A configuração de um request trigger consiste em duas partes:

1. A configuração do webhook que é feita no caminho que conecta ao nó (bloco de mensagem) onde você quer parar a conversa.
2. A configuração do bloco de mensagem que tem uma única opção de resposta que é o texto: `[REQUEST_TRIGGER]`.

Na imagem a seguir, você pode ver como deve configurar seu fluxo de mensagem para que pare e aguarde a resposta do seu servidor.

<img src="https://mintcdn.com/trebleai/woBrUvSBPp-ldiW5/images/request-trigger-1.png?fit=max&auto=format&n=woBrUvSBPp-ldiW5&q=85&s=220fa0458a566ed424ac85ed9b937786" alt="Configurar request trigger" width="2336" height="1346" data-path="images/request-trigger-1.png" />

<Warning>
  Tenha em mente que o bloco de mensagem que você deve usar para parar a conversa e aguardar a resposta do seu servidor deve ser um bloco de mensagem não-interativo. Ou seja, escolha a opção **Mensagem com opções** e não **Botões Interativos**.

  <img src="https://mintcdn.com/trebleai/woBrUvSBPp-ldiW5/images/request-trigger-2.png?fit=max&auto=format&n=woBrUvSBPp-ldiW5&q=85&s=b895478fd31664af4384b098f4cdd0d3" alt="Configurar request trigger" width="1564" height="924" data-path="images/request-trigger-2.png" />
</Warning>

Uma vez feito isso, quando seu usuário passar pelo caminho que conecta ao bloco de mensagem com o texto `[REQUEST_TRIGGER]`, o Treble parará a conversa e aguardará a resposta do seu servidor.

### Como continuar a conversa?

Para continuar a conversa, você deve obter o `session_id` da sessão do Treble que vem como parte do corpo da solicitação do webhook.

Por exemplo:

```json theme={null}
{
   "country_code": "+57",
   "cellphone":"3161234567",
   "session_id" : "abcsderfwer3252432423-1324325235",
   "conversation_id": 1234,
   "question": {
      "type": "open",
      "text": "Hello world"
   }
   "timeout_at": "2021-10-07 08:53:22.572123",
   "user_session_keys":[]
}
```

Aqui devemos extrair o `session_id` e usá-lo para chamar o endpoint `POST /session/{session_external_id}/update`.

<Card title="Atualizar uma sessão" icon="code" href="/pt/api-reference/endpoints/session-update">
  Atualizar uma sessão para continuar a conversa.
</Card>

Lembre-se que ao fazer a chamada ao endpoint `POST /session/{session_external_id}/update`, você também pode incluir no corpo da solicitação o `user_session_keys`, ou seja, variáveis de sessão que podem ser usadas para continuar a conversa.

<Check>
  Pronto! Você conseguiu configurar um request trigger no seu fluxo de mensagem.
</Check>
