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

# Contexto & Variáveis

> Como os dados fluem para dentro, através e para fora de uma conversa

A Tig.ai tem um modelo de dados simples para passar informações por uma chamada. Entendê-lo é fundamental para criar agentes que pareçam personalizados e para extrair resultados úteis após uma chamada.

## Os três objetos de contexto

```
initial_context ──► Agente ──► gathered_context
                       │
                 [template variables](/pt/voice-agent/template-variables)
                 (usadas nos prompts)
```

### initial\_context

Dados disponíveis para o agente antes de a chamada começar — o nome do contato, os detalhes da conta, informações do agendamento, qualquer coisa que o agente deva saber de antemão. Pode ser definido de vários lugares:

* **[Pre-call data fetch](/pt/voice-agent/pre-call-data-fetch)** — enriqueça o contexto com dados do seu CRM ou ERP por meio de uma chamada HTTP conforme a chamada começa
* **[Pre-call data fetch](/pt/voice-agent/pre-call-data-fetch)** — enriqueça o contexto com dados do seu CRM ou ERP por meio de uma chamada HTTP assim que a chamada começa, antes de o agente falar
* **[Agent Settings](/pt/voice-agent/template-variables#usando-variáveis-de-template-para-testes)** — defina variáveis de contexto de template no agente para testes; elas são incluídas nas chamadas de teste do editor de workflow e ignoradas nas chamadas de produção

### Template variables

Os valores de `initial_context` ficam disponíveis no prompt do seu agente usando a sintaxe `{{double_brace}}`.

```
You are calling {{customer_name}} about their {{plan}} plan,
which renews on {{renewal_date}}. Be friendly and confirm
whether they'd like to continue.
```

Quando a chamada começa, a Tig.ai substitui os valores antes de enviar o prompt ao LLM — para que o agente fale naturalmente, como se já conhecesse o contato.

### Valores de fallback

Se uma variável pode estar ausente ou vazia, use uma barra vertical (`|`) para fornecer um valor padrão:

```
Hello {{customer_name | there}}, we're calling about your {{plan | current}} plan.
```

Quando `customer_name` não está definido, o agente dirá "Hello there" em vez de deixar um espaço em branco. A sintaxe é:

```
{{variable_name | fallback_value}}
```

Se a variável estiver presente e não vazia, o fallback é ignorado e o valor real é usado.

### Variáveis padrão

Variáveis integradas para hora e dia da semana atuais, disponíveis em qualquer prompt sem configurar `initial_context`.

| Variável                         | Descrição                                                     | Exemplo de saída          |
| -------------------------------- | ------------------------------------------------------------- | ------------------------- |
| `{{current_time}}`               | Hora atual em UTC (ou fuso horário inferido)                  | `2026-04-02 14:30:45 UTC` |
| `{{current_time_<TIMEZONE>}}`    | Hora atual no fuso horário especificado                       | `2026-04-02 20:00:45 IST` |
| `{{current_weekday}}`            | Nome do dia da semana atual em UTC (ou fuso horário inferido) | `Thursday`                |
| `{{current_weekday_<TIMEZONE>}}` | Nome do dia da semana atual no fuso horário especificado      | `Thursday`                |

Substitua `<TIMEZONE>` por um [nome de fuso horário IANA](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), como `Asia/Kolkata`, `America/New_York` ou `Europe/London`.

```
Today is {{current_weekday}} and the current time is {{current_time_America/New_York}}.
```

<Note>
  Quando você usa um sufixo de fuso horário em **qualquer** uma das variáveis `current_time` ou `current_weekday`, a outra variável sem sufixo usará automaticamente o mesmo fuso horário em vez de UTC. Por exemplo, se o seu prompt contiver `{{current_time_Asia/Kolkata}}` e `{{current_weekday}}`, o dia da semana também será resolvido em `Asia/Kolkata`.
</Note>

### Variáveis de telefonia

Para chamadas telefônicas recebidas, a Tig.ai adiciona automaticamente estas variáveis ao `initial_context`:

| Variável            | Descrição                                  | Exemplo        |
| ------------------- | ------------------------------------------ | -------------- |
| `{{caller_number}}` | O número de telefone que iniciou a chamada | `+14155550100` |
| `{{called_number}}` | O número de telefone que recebeu a chamada | `+18005550199` |

Para chamadas recebidas, `caller_number` é o número do cliente e `called_number` é o seu número da Tig.ai.

```
You are speaking with the caller at {{caller_number}}.
```

### gathered\_context

Dados que o agente extrai *durante* a chamada — na direção oposta do `initial_context`. Use-o para transformar uma conversa em dados estruturados: o que o cliente quer, se confirmou algo, um valor que ele informou em voz alta.

#### Como ele é preenchido

Ative a **extração** em um nó [Agent](/pt/voice-agent/agent) ou [End Call](/pt/voice-agent/end-call) e defina uma ou mais variáveis a extrair. Cada variável tem:

| Campo    | Descrição                                                                                              |
| -------- | ------------------------------------------------------------------------------------------------------ |
| `name`   | A chave sob a qual aparecerá em `gathered_context`                                                     |
| `type`   | `string`, `number` ou `boolean`                                                                        |
| `prompt` | Uma descrição em linguagem natural do que procurar, por exemplo *"O cliente confirmou o agendamento?"* |

<img src="https://mintcdn.com/callguard/w-VUnJAq_m6hhmzP/images/extracted_variables.png?fit=max&auto=format&n=w-VUnJAq_m6hhmzP&q=85&s=84b0cf5d4f608079399d98d68a5f71b1" alt="Variáveis extraídas" style={{border: "1px solid #d1d5db", borderRadius: "8px", maxWidth: "100%"}} width="2382" height="1317" data-path="images/extracted_variables.png" />

Quando a conversa alcança esse nó, o LLM lê a transcrição até aquele ponto e preenche cada variável com base no seu `prompt`. Se um valor não puder ser determinado a partir da conversa, a variável permanece vazia em vez de ser adivinhada — deixe o `prompt` específico o suficiente para que o LLM saiba exatamente o que conta como correspondência.

Você pode adicionar extração a mais de um nó. As variáveis extraídas de cada nó são mescladas no mesmo objeto `gathered_context` conforme a chamada avança, identificadas por `name` — reutilize um `name` em um nó posterior se quiser sobrescrever um valor anterior.

#### Como referenciá-lo a jusante

O `gathered_context` **não fica disponível nos prompts de Agent** — um prompt só pode referenciar campos de `initial_context`, porque a extração geralmente acontece depois da conversa que o usaria. Para agir sobre os dados extraídos, envie-os por meio de um nó:

| Onde                                                                                      | Sintaxe                           | Observações                                                                       |
| ----------------------------------------------------------------------------------------- | --------------------------------- | --------------------------------------------------------------------------------- |
| Payload de [nó Webhook](/pt/voice-agent/webhook)                                          | `{{gathered_context.field_name}}` | Com prefixo, pois o template do payload também pode referenciar `initial_context` |
| [Registro do run](/pt/developer/webhooks#variáveis-de-contexto-do-payload) (API / painel) | objeto `gathered_context`         | Retornado após a conclusão do run, junto com `recording_url` e `transcript_url`   |

```json theme={null}
{
  "customer": "{{initial_context.customer_name}}",
  "resolution": "{{gathered_context.resolution}}",
  "callback_requested": "{{gathered_context.wants_callback}}"
}
```

Consulte [Webhook Payloads](/pt/developer/webhooks) para ver a lista completa de variáveis disponíveis junto com `gathered_context` em um template de payload.

## Exemplo de fluxo de dados

```mermaid theme={null}
sequenceDiagram
    participant App as Seu Sistema
    participant Dog as Tig.ai
    participant LLM as LLM

    App->>Dog: initial_context: {customer_name: "Jane", plan: "premium"}
    Dog->>LLM: Prompt com {{customer_name}} e {{plan}} substituídos
    LLM-->>Dog: Resposta da conversa
    Note over Dog,LLM: A chamada avança...
    Dog->>LLM: Extrair: o cliente confirmou a renovação?
    LLM-->>Dog: gathered_context: {renewal_confirmed: true}
    Dog-->>App: Registro do run com gathered_context
```

## Onde as variáveis estão disponíveis

| Local                           | Variáveis disponíveis                                                                           |
| ------------------------------- | ----------------------------------------------------------------------------------------------- |
| Prompts de nós Agent            | campos de `initial_context` via `{{variable_name}}`                                             |
| Condições de aresta             | Avaliadas em relação à conversa ao vivo — sem necessidade de sintaxe explícita de variável      |
| Templates de payload de webhook | Todos os objetos de contexto via `{{initial_context.field}}`, `{{gathered_context.field}}` etc. |
