# Referência completa de variáveis dos fluxos

Em qualquer campo de texto dos fluxos você pode usar **variáveis** no formato `{{grupo.nome}}` — elas são substituídas pelo valor real no momento da execução. Digite `{{` no editor para ver o autocompletar. Variável sem valor vira **texto vazio** (a mensagem não quebra).

## Contato — `{{contact.*}}`

| Variável | Conteúdo |
|---|---|
| `{{contact.name}}` | Nome cadastrado |
| `{{contact.full_name}}` | Nome completo (nome + sobrenomes) |
| `{{contact.first_name}}` | Primeiro nome (ex.: "João da Silva" → "João") |
| `{{contact.last_name}}` | Último sobrenome |
| `{{contact.phone_number}}` | Telefone |
| `{{contact.email}}` | E-mail |
| `{{contact.language}}` | Idioma detectado |
| `{{contact.lead_source}}` | Fonte do lead |
| `{{contact.labels}}` | Etiquetas do contato |
| `{{contact.custom_attributes.SEU_CAMPO}}` | Qualquer campo personalizado (ex.: `{{contact.custom_attributes.cnpj_cpf}}`) |

## Conversa — `{{conversation.*}}`

| Variável | Conteúdo |
|---|---|
| `{{conversation.display_id}}` | Número da conversa |
| `{{conversation.status}}` | Status (open, pending, resolved…) |
| `{{conversation.inbox_name}}` | Nome do canal |
| `{{conversation.labels}}` | Etiquetas da conversa |
| `{{conversation.is_assigned}}` | "true" se tem agente atribuído |
| `{{conversation.last_input}}` | Última mensagem recebida do contato |
| `{{conversation.last_input_type}}` | Tipo da última mensagem (text, image…) |
| `{{conversation.hours_since_last_contact_message}}` | Horas desde a última mensagem do contato (ótima para lógica de janela de 24h) |

## Agente, time e conta

| Variável | Conteúdo |
|---|---|
| `{{assigned_agent.name}}` / `{{assigned_agent.email}}` | Agente atribuído |
| `{{assigned_team.name}}` | Time atribuído |
| `{{account.name}}` | Nome da conta |

## Contexto — `{{context.*}}` (data, hora e situação)

| Variável | Conteúdo |
|---|---|
| `{{context.current_date}}` | Data de hoje (AAAA-MM-DD) |
| `{{context.current_time}}` | Hora atual (HH:MM) |
| `{{context.current_hour}}` / `{{context.current_day}}` / `{{context.current_month}}` | Hora / dia / mês numéricos |
| `{{context.current_weekday}}` | Dia da semana (monday, tuesday…) |
| `{{context.is_working_hours}}` | "true" dentro do horário de atendimento da caixa |
| `{{context.hours_since_interaction}}` | Horas desde a última interação |
| `{{context.has_opportunity}}` / `{{context.opportunity_status}}` | Se o contato tem oportunidade no CRM e o status (open/won/lost) |
| `{{context.completed_flows}}` | Fluxos já concluídos pelo contato |
| `{{context.flow_sent}}` | Se este fluxo já foi enviado ao contato |

## Variáveis do fluxo — `{{variables.*}}`

O grupo mais usado: tudo que **o próprio fluxo cria ou recebe** vive aqui.

- **Coleta de dados**: cada campo coletado vira `{{variables.nome_do_campo}}`.
- **Salvar como variável** (saveAsVar) e **mapeamentos de resposta** do nó Requisição HTTP.
- **Gatilho Webhook**: cada campo do payload recebido vira variável (ex.: um POST com `"cpf": "123"` vira `{{variables.cpf}}`).
- **Gatilho Evento de integração**: o evento popula variáveis específicas (veja abaixo).
- **Fonte de contatos** (disparo agendado): cada contato entra no fluxo com as variáveis da fonte.
- **Nós de integração**: cada nó grava suas variáveis de resultado.

### Por integração (nós, fontes e eventos)

**Asaas** — `asaas_cliente_id`, `asaas_cliente_nome`, `asaas_cobranca_id`, `asaas_cobranca_valor`, `asaas_cobranca_vencimento`, `asaas_link_pagamento`, `asaas_boleto_url`, `asaas_pix_copia_cola`, `asaas_pendentes_count`, `asaas_vencidas_count`, `asaas_total_aberto`; fonte de cobranças: `asaas_valor`, `asaas_vencimento`, `asaas_status`, `asaas_descricao`, `asaas_link_boleto`.

**Omie** — `omie_cliente_id`, `omie_cliente_nome`, `omie_cliente_documento`, `omie_titulo_id`, `omie_titulo_valor`, `omie_titulo_vencimento`, `omie_titulo_status`, `omie_titulos_count`, `omie_titulos_resumo`, `omie_boleto_link`, `omie_boleto_linha_digitavel`.

**Conta Azul** — `contaazul_cliente_id`, `contaazul_cliente_nome`, `contaazul_cliente_documento`, `contaazul_conta_valor`, `contaazul_conta_vencimento`, `contaazul_conta_situacao`, `contaazul_contas_count`, `contaazul_contas_resumo`.

**G-Click** — `gclick_tarefas_count`, `gclick_tarefas_resumo`, `gclick_primeira_tarefa`, `gclick_tarefa_id`, `gclick_solicitacao_id`, `gclick_documentos_enviados`.

**IXC** — `ixc_cliente_id`, `ixc_cliente_nome`, `ixc_cliente_ativo`, `ixc_fatura_id`, `ixc_fatura_valor`, `ixc_fatura_vencimento`, `ixc_fatura_linha_digitavel`, `ixc_fatura_pix`, `ixc_faturas_count`, `ixc_desbloqueio_ok`, `ixc_os_id`.

**Sienge** — `sienge_customer_id`, `sienge_customer_nome`, `sienge_bill_id`, `sienge_bills`, `sienge_boleto_url`, `sienge_boleto_linha_digitavel`, `sienge_overdue_count`, `sienge_overdue_total`.

**Superlógica Assinaturas** — `superlogica_customer_id`, `superlogica_customer_nome`, `superlogica_charge_id`, `superlogica_charge_valor`, `superlogica_charge_vencimento`, `superlogica_boleto_link`, `superlogica_inadimplente`, `superlogica_inadimplencia_total`.

**Superlógica Condomínios** — `slcond_condominio_nome`, `slcond_condomino_nome`, `slcond_unidade_nome`, `slcond_charge_id`, `slcond_charge_valor`, `slcond_charge_vencimento`, `slcond_boleto_link`, `slcond_found`.

**Nuvemshop** — `nuvemshop_cupom_codigo`, `nuvemshop_cupom_percentual`, `nuvemshop_cupom_validade` (+ variáveis do carrinho na fonte de carrinho abandonado).

**Magazord** — `magazord_pedido_codigo`, `magazord_pedido_situacao`, `magazord_pedido_total`, `magazord_pedido_data`, `magazord_rastreio_codigo`, `magazord_rastreio_situacao`, `magazord_frete_valor`, `magazord_frete_prazo`, `magazord_frete_transportadora`, `magazord_frete_opcoes`.

**Loja Integrada** — `li_cliente_nome`, `li_pedido_numero`, `li_pedido_situacao`, `li_pedido_total`, `li_pedido_rastreio`, `li_cupom_codigo`, `li_cupom_validade`.

**RD Station** — `rd_nome`, `rd_email`, `rd_lead_stage`, `rd_tags`, `rd_conversao`, `rd_opportunity_outcome`.

**CV CRM** — `cvcrm_idpessoa`, `cvcrm_person_nome`, `cvcrm_idlead`, `cvcrm_lead_criado`, `cvcrm_interacao_registrada`.

**Feegow** (fonte de consultas) — `feegow_agendamento_id`, `feegow_data`, `feegow_horario`, `feegow_especialidade`, `feegow_profissional_nome`, `feegow_paciente_nome`, `feegow_valor`, `feegow_telemedicina`.

**Consultorio.me** (fonte de consultas do dia) — `consultoriome_consulta_id`, `consultoriome_data`, `consultoriome_horario`, `consultoriome_profissional`, `consultoriome_paciente_nome`, `consultoriome_clinica`, `consultoriome_endereco`, `consultoriome_link_confirmacao`, `consultoriome_link_video`.

**SONAX Pabx** (evento de ligação) — `sonax_numero`, `sonax_status`, `sonax_atendida`, `sonax_atendente`, `sonax_ramal`, `sonax_duracao`, `sonax_data_inicio`, `sonax_data_fim`, `sonax_gravacao_url`, `sonax_id_chamada`, `sonax_id_fila`, `sonax_id_campanha`, `sonax_tabulacao`.

**Crefaz** (crédito) — `crefaz_proposta_id`, `crefaz_processo_id`, `crefaz_status_processamento` (nós de proposta); evento *Processo concluído (Motor de Crédito)* no gatilho "Evento de integração": `crefaz_aprovado` ("sim"/"nao"), `crefaz_proposta_id`, `crefaz_processo_id`, `crefaz_status`, `crefaz_mensagens`. *Disponível na próxima atualização da plataforma.*

**Google** — `gcal_event_url`, `gcal_meet_url` (evento criado), `sheets_linha` (linha lida/gravada).

> 📘 Cada nó de integração também grava `<integração>_erro` quando a consulta falha — útil na Condição Avançada para tratar o caminho de erro com mensagem própria.

## Avançadas

| Variável | Conteúdo |
|---|---|
| `{{http_response.NOME.campo}}` | Resposta JSON de um nó Requisição HTTP (prefira os mapeamentos de resposta do próprio nó) |
| `{{nodes.ID_DO_NO.campo}}` | Saída de um nó específico (aceita id ou rótulo do nó) |
| `{{saved_data.chave}}` | Dados salvos por nós de captura |

## Dicas

- **Teste com dados reais**: o painel de Logs mostra as variáveis finais de cada execução — confira o nome exato lá.
- Nomes diferenciam apenas o **caminho** (`variables.cpf` ≠ `variables.CPF` dependendo de como foi criado — padronize em minúsculas).
- Na **Condição Avançada**, compare variáveis com operadores como *contém*, *é igual*, *está vazio* — combine com `{{context.is_working_hours}}` e `{{conversation.hours_since_last_contact_message}}` para regras de horário e janela de 24h.
