O CSAT (pesquisa de pós-atendimento) pelo canal OpaSuite sai como template de WhatsApp com botão de link: o cliente toca no botão e responde numa página da Zapisp. Este guia mostra como criar o template no painel da OpaSuite, sincronizá-lo no Zapisp e defini-lo como padrão do canal — e o que o Zapisp preenche sozinho no disparo.

**Antes de começar, confira:**

* Zapisp 9.15.0 ou superior (necessário para o botão de link com variável)

* App OpaSuite ativo e canal conectado

* Pesquisa de pós-atendimento habilitada

## A régua do template

O Zapisp valida o template quando você o define como padrão de CSAT do canal. Um template fora dessa régua é recusado na hora de salvar — melhor já criá-lo certo.

**Anatomia aceita** (modo recomendado, com botão de link variável):

* Cabeçalho — opcional. Somente texto, sem variável. Imagem, vídeo ou documento no cabeçalho são recusados para template de pesquisa.

* Corpo — no máximo 1 variável (recomendado). O Zapisp preenche essa variável com o primeiro nome do cliente. Duas ou mais variáveis no corpo: recusado.

* Rodapé — opcional. Texto livre.

* Botão — obrigatório. 1 botão "Acessar website" com 1 variável no fim da URL: [https://zapisp.com.br/api/after-service/{{variavel}](https://zapisp.com.br/api/after-service/%7B%7Bvariavel%7D)}. O Zapisp preenche a variável com o código único da pesquisa. Nunca use dois botões de link — isso quebra o envio.

## Passo a passo

### 1. Crie o modelo no painel da OpaSuite

No painel da **OpaSuite** (o template nasce lá, não no Zapisp) — **Adicionar novo modelo de mensagem**.

Na etapa **Cadastro da mensagem**, preencha seguindo a régua:

* **Cabeçalho** (opcional): tipo de cabeçalho Texto e um título curto, ex.: “Como foi seu atendimento?”.

* **Corpo**: o convite à pesquisa, com uma variável inserida pelo botão { } do editor — ela vira o nome do cliente. Ex.: “Olá, {{variavel}}! Seu atendimento acabou de ser finalizado...”

* **Botões**: ative Exibir botões, adicione um botão e marque Tipo do botão: Acessar website. No Texto, algo como “Responder”; na URL, digite a base e acrescente a variável pelo controle do editor: [https://zapisp.com.br/api/after-service/{{variavel}](https://zapisp.com.br/api/after-service/%7B%7Bvariavel%7D)}

![](https://chat.zapisp.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBcTFOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--246081c86f32f39f670bff4d7870d60941fb8654/image.png)

![](https://chat.zapisp.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBcTVOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3a163d251a6b151ec089dadc56772e0cebaeec27/image.png)

> **Armadilha:** a variável precisa entrar como variável do editor, ficando literal na URL (｛｛...｝｝). URL colada com a variável já codificada (%7B%7B...%7D%7D) não é reconhecida pelo Zapisp — o template cai no modo antigo e o envio falha por contagem de variáveis.

Evite botões extras: além de nunca poder haver um segundo botão de link, manter só o botão da pesquisa é o cenário validado.

### 2. Envie para análise e aguarde a aprovação da Meta

Ainda no painel da OpaSuite — **Enviar para análise da Meta**.

Todo template de WhatsApp passa pela análise da Meta antes de poder ser disparado. Aguarde o status de aprovado no painel da OpaSuite. Qualquer edição posterior no template gera nova análise — e exige repetir os passos 3 e 4.

### 3. Sincronize os templates do canal no Zapisp

**Aplicativos › OpaSuite › aba Canais › Templates**

No canal desejado, clique em **Templates** e depois em **Sincronizar**. É isso que traz o template aprovado para dentro do Zapisp — e é na sincronização que o Zapisp reconhece a variável do botão.

> **Sempre re-sincronize** depois de criar ou editar um template na OpaSuite. Um template sincronizado por uma versão antiga do Zapisp (antes da 9.15.0) também precisa de uma nova sincronização para o botão variável ser reconhecido.

### 4. Defina o template como padrão de CSAT do canal

**Na mesma tela — Templates padrão**

Abra **Templates padrão**, escolha o seu template no seletor **CSAT** e salve. A validação da régua roda neste momento: se o template fugir das regras, o Zapisp recusa com uma mensagem dizendo o que ajustar (veja a tabela de erros abaixo).

Atalho por nome: se existir no canal um template chamado exatamente zapisp_pos_atendimento, ele é usado como padrão de CSAT quando nenhum outro foi selecionado (o seletor mostra “Usar padrão Zapisp”). O mesmo vale para zapisp_nps no NPS.

### 5. Pronto — o Zapisp preenche as variáveis sozinho

*Nenhuma configuração de variável é necessária para a pesquisa.*

No disparo do CSAT, o Zapisp monta os valores automaticamente:

* **Variável do corpo** → primeiro nome do cliente (ou “cliente”, se o cadastro não tiver nome).

* **Variável do botão** → o código único (hash) da pesquisa daquele atendimento. A URL base já está no botão do template — vai só o código.

> **Não confunda** com a tela “Editar variáveis do template” (coringas): ela serve para usar o template em campanhas. Para o CSAT automático, mapear coringa não é necessário — e o que estiver mapeado lá não é usado pelo disparo da pesquisa.

![](https://chat.zapisp.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBcTlOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a20968ae1a78d88faecb34da5056db9ff7402a7b/image.png)

Para conferir, finalize um atendimento de teste e verifique a mensagem: nome no corpo, botão abrindo a página da pesquisa.

![](https://chat.zapisp.com.br/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBckJOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3878d39df52ab09a72b83caf1594dea86e307957/image.png)

## Erros comuns e o que fazer

* **“Template de CSAT não configurado, defina o template padrão e envie novamente”** — Causa: o canal não tem template selecionado no seletor CSAT e não existe template chamado zapisp_pos_atendimento. O que fazer: passo 4 — definir o template em Templates padrão.

* **“...com botão de link variável, use uma variável no botão e no máximo uma no corpo (o nome do cliente)”** — Causa: template com botão variável, mas com 2+ variáveis no corpo — ou mais de uma variável em botões. O que fazer: ajustar o template na OpaSuite para a régua (1 no botão, até 1 no corpo), reenviar para análise, re-sincronizar.

* **“Template OpaSuite ... esperado: uma ou duas variáveis”** — Causa: template sem botão variável com 0 ou 3+ variáveis no total (modo antigo, link no corpo). O que fazer: preferir o modo botão deste guia; ou deixar o corpo com 1–2 variáveis (nome + link).

* **“Recusa ao salvar o padrão (cabeçalho)”** — Causa: cabeçalho de imagem, vídeo ou documento — não aceito em template de pesquisa. O que fazer: trocar o cabeçalho por texto (ou removê-lo).

* **OpaSuite: “Número de variáveis diferente do esperado”** — Causa: a OpaSuite recusou o envio: template com um segundo botão de link (invisível para a integração), variável codificada na URL, ou canal sem re-sincronizar após edição. O que fazer: deixar apenas 1 botão de link, variável literal ｛｛...｝｝, e sincronizar de novo.

## Limitações do canal

* **O domínio do link vem do template** — no modo botão, a URL base é a gravada no template ([zapisp.com.br](http://zapisp.com.br)); a configuração de domínio da empresa não se aplica. É a mesma limitação do canal Meta oficial.

* **Só um botão de link por template** — a API da OpaSuite expõe apenas um botão de URL, mesmo quando o template tem mais. Template com dois links sempre falha no envio — não há contorno hoje.

* **O modo antigo continua funcionando** — template sem botão variável (1–2 variáveis, link cru no corpo) segue aceito: o Zapisp manda nome + link completo no texto. Migre quando puder.

* **Toda a resposta acontece na página** — diferente do canal Meta com Flows, aqui não há formulário dentro do WhatsApp: nota, “problema resolvido?” e comentário são coletados na página que o botão abre. Reenvio da pesquisa reaproveita o mesmo link.

## E o NPS?

Idêntico, com duas trocas: a URL do botão aponta para [https://zapisp.com.br/api/nps/{{variavel}](https://zapisp.com.br/api/nps/%7B%7Bvariavel%7D)} e, no passo 4, o template entra no seletor NPS (atalho por nome: zapisp_nps). A régua de variáveis é a mesma.