Skip to main content
A API de template lê e altera a configuração de um projeto (funil, tags, propriedades, automações, agente) por HTTP. É o mesmo motor do update_template do MCP: cria o que falta, atualiza o que existe e nunca apaga. Use quando um sistema seu precisa manter projetos sem passar por um assistente de IA.
Esta API fica no endereço do painel (app.zatten.com), não em api.zatten.com, e a chave vai em outro header: Authorization: Bearer <chave do projeto>. O x-api-key não funciona aqui.
Antes de escrever, leia Como uma escrita funciona: envio parcial, órfãos, renomear pelo slug, campos vazios e ligar ou desligar valem igual aqui. O formato de cada bloco está na Referência do template.

Autenticação

O id do projeto aparece em Configurações → Projetos, abaixo do nome de cada projeto (clique para copiar; tela de Admin). Pelo MCP, vem de list_projects. O token da conexão de IA (MCP) não serve aqui, e a chave do projeto não serve no MCP.

GET: ler o template

200
  • Traz todos os blocos e todos os templates da Meta do projeto.
  • O agente vem na versão mais nova, mesmo se ainda não publicada.
  • A revision é a marca do estado lido. Duas leituras sem mudança no meio têm a mesma.
O template volta com URLs, headers e chaves preenchidos (endereços de webhook, chave do modelo, credenciais de tools). Nunca mostre, registre em log nem versione esse JSON. Guarde cópias só em pastas que estão no .gitignore.

POST: aplicar

Corpo

Cada bloco enviado é a lista completa daquele tipo: o que existe no projeto e não veio na lista volta em orphans, sem ser apagado.

Resposta: 200

A resposta não traz a revision nova. Para registrar o estado novo, faça um GET de novo.

Erros

Os erros desta API usam ok e message, não o { "error" } da API do dia a dia.

Diferenças para o MCP

Não há modo de sobrescrever em nenhum dos dois. Ver Sobrescrever x atualizar.

Armadilhas

  • Endereço e header diferentes da API do dia a dia. app.zatten.com e Authorization: Bearer. Com x-api-key, a resposta é 401.
  • Sem conferência de revision. Se alguém mudou o projeto pelo painel entre o seu GET e o seu POST, o POST aplica por cima do que estiver lá. Leia logo antes de escrever.
  • Bloco com um item só transforma o resto em órfãos (não apagados, mas fora da sua lista). Devolva sempre a lista inteira do bloco.
  • publish_agent: true põe o agente no ar para todos os leads, sem teste. Prefira publicar pelo painel depois de testar.
  • submit_meta_templates: true manda conteúdo para revisão da Meta na conta do cliente final. Template rejeitado pesa na qualidade do número.
  • Credenciais no GET. O JSON lido tem chaves e URLs preenchidas. Trate como segredo.
  • Endereço preenchido grava por cima. Uma url de webhook no POST troca o endereço do cliente sem pedir confirmação. Campo vazio não grava, com uma exceção: no bloco langchain, a chave do modelo (model.api_key) e a do LangSmith (settings.tracing.api_key) só são preservadas quando o campo está ausente. Mandar "" grava vazio e o agente para de responder. Devolva o valor lido no GET ou tire o campo; nunca mande "" nem um texto de exemplo.

Para saber mais