get_template
devolve e o que update_template aceita, em qualquer subconjunto de blocos. Esta
página lista todos os blocos: o que cada um é, como cada item é reconhecido numa
escrita e o que a escrita faz de diferente nele.
As regras que valem para todos os blocos (lista inteira, órfãos, campo vazio,
ligar e desligar, referências por nome) estão em
Como uma escrita funciona.
Visão geral
“
slug (ou nome)”: casa pelo slug quando o item traz um; sem slug, pelo nome.
Só os blocos com slug renomeiam.
Os blocos
version
A versão do formato, hoje"1.0". Obrigatória no arquivo completo; num envio
parcial pelo MCP, não precisa vir.
meta
O nome e a descrição do projeto.icon viaja, mas não é gravado.
Na escrita: trocar meta.name renomeia o projeto. A partir daí, o MCP exige o
nome novo no par project_id + project_name.
llm_attendant
Os ajustes do agente que ficam no projeto, fora do config. Valem para os dois motores: buffer (segundos), pausa humana (minutos), segmentação e voz (ElevenLabs). Os demais campos (prompt, modelo, temperatura, mídia, busca na web) são do motor antigo; no LangChain Agent, isso fica no blocolangchain.
Na escrita:
functionsviaja na leitura e é ignorada na escrita: carrega endereços e alvos do motor antigo. Se a lista enviada for diferente da atual, uma nota avisa.- O motor (
llm) não muda por aqui. Migrar é pelo painel. - Campo
nullou omitido não grava. Atenção às chaves:api_keyeeleven_labs_api_keycom""(string vazia) gravam vazio por cima da chave atual. Omita o campo ou devolva o valor lido.
tags
As tags do projeto, com cor, descrição e vínculo (contato ou conversa). Na escrita: renomeia peloslug. Cor obrigatória, no formato #RRGGBB.
columns
As colunas do funil, na ordem, com as três chaves de comportamento. Na escrita: renomeia peloslug. order é obrigatório. A coluna com
order 0 é a de entrada: recebe leads novos e é para onde o lead volta ao
encerrar o atendimento.
properties
As propriedades personalizadas: texto livre ou lista fechada de valores. Na escrita:is_enum: trueevaluesandam juntos.valuessemis_enum: trueé ignorado, com nota.- Propriedade de texto livre já preenchida em algum contato não vira lista. A nota traz a contagem de contatos.
- Valor retirado de
valuescontinua existindo: pode haver lead preenchido com ele. send_to_aidecide se o valor entra no contexto do agente. Padrão:true(propriedade criada pelo painel vai para a IA). Não aparece no formulário do painel; só se altera pelo template.
skills
As skills do agente: conhecimento carregado só quando o agente precisa. Na escrita: grava a skill no projeto e, se o projeto está no LangChain Agent, acrescenta ao config do agente as skills que ele ainda não tem (cria uma versão não publicada). Uma skill que o agente já tem não é sobrescrita: para mudar o texto dela, altere a toolskill no bloco langchain. Skill sem conteúdo não
entra, com nota.
follow_ups
Follow-ups (template da Meta depois de um tempo) e reengajamentos (texto livre antes de a janela de 24h fechar), no mesmo bloco, diferenciados pormethod.
Na escrita:
- Nasce desligado se
statusnão vier. - O template da Meta vai por nome (
template_name). Se ele ainda não existe sincronizado no projeto, o follow-up entra sem template e guarda o nome; uma nota avisa, e o vínculo é feito quando o template for sincronizado. - Em
RE_ENGAGEMENT,delaysão os minutos antes de a janela fechar, e a unidade é sempre minutos. - Colunas e tags inexistentes são retiradas dos filtros, com nota.
- Item sem
nameé ignorado.
webhooks
Webhooks de eventos: a Zatten avisa um sistema externo quando algo acontece (lead criado, conversa, kanban, tags, erros). Na escrita: nasce desligado (e sem endereço, seurl não vier). Só liga
com endereço. url vazia não grava; preenchida troca o endereço do cliente.
Item sem name é ignorado.
integration_webhooks
Webhooks por inatividade: enviam os dados do lead para um sistema externo depois de um tempo sem interação. Na escrita: mesmas regras de endereço e estado dowebhooks. Colunas e tags
inexistentes são retiradas dos filtros, com nota.
mcps
Servidores MCP cadastrados no projeto para o motor antigo. No LangChain Agent, os servidores MCP ficam como tools no blocolangchain.
Na escrita: nasce desligado (e sem endereço, se url não vier). Só liga
com endereço. url e headers vazios não gravam. Mantenha request_approval desligado.
conversions
Eventos enviados ao Meta Ads quando um lead que veio de anúncio entra numa coluna. Na escrita: nasce desligada. A coluna vai por nome (column_name); se não
existir, a conversão é ignorada, com nota.
unseen_message
A resposta automática para mensagens que chegam por anúncio e não aparecem no CRM (conexão com coexistência). Existe no máximo uma por projeto. Na escrita: a chave é fixa. Mandar outroname renomeia a mesma resposta.
Nasce desligada.
attendant_teams
Os departamentos do projeto. Na escrita: renomeia peloslug. Os membros não viajam: departamento
criado nasce vazio, e alguém adiciona as pessoas no painel.
meta_templates
Os templates da Meta do projeto.get_template traz todos.
Na escrita pelo MCP: nada é criado nem alterado. Template existente nunca é
atualizado (o estado é da Meta). Template que falta não é enviado à Meta: a nota
lista quais faltam e sugere submit_meta_templates: true, opção que o MCP não
tem. O envio é feito por uma pessoa, no painel.
inactivity_handovers
Transbordos por inatividade: depois de um tempo sem interação, o lead vai para uma coluna de atendimento humano, com mensagem dentro e fora do horário comercial. Na escrita: nasce desligado. A coluna de destino vai por nome; se não existir, o transbordo é ignorado, com nota. Colunas e tags de origem inexistentes são retiradas, com nota.custom_actions
Ações personalizadas: botões no lead que fazem uma chamada HTTP quando um humano clica. Na escrita: semwebhook_url, nasce pendente: sem endereço e desligada. O estado é
is_active (boolean). Só liga com endereço. webhook_url, headers,
query_params e body_params vazios não gravam.
quick_messages
Mensagens rápidas: blocos de texto e mídia que o humano envia com/comando.
Na escrita: nasce desligada se is_active não vier. O comando é gravado sem
barra, em minúsculas e com hífens no lugar de espaços. O filtro por departamento
não viaja: a mensagem nova vale para todos.
flows
Os fluxos do Trigger Flow: gatilho, condições e ações, desenhados no editor. Na escrita:- Fluxo novo é criado desligado (se
statusnão vier). Referências a coluna, tag e departamento dentro do grafo vão por nome; se alguma não existir, o fluxo não é criado, com nota. - Fluxo que já existe (mesmo nome) não tem o grafo reescrito: só o
statusmuda. O desenho é do editor. - Responsável não viaja: é uma pessoa, não configuração.
- Não mande
execution_plan; ele é refeito a partir dos nós. - Fluxo sem nó de gatilho não é criado. Dois fluxos com o mesmo caminho de webhook de entrada também não.
- Gatilhos em breve (
lead.created,lead.message_received,lead.property_changed,lead.inactive) não rodam hoje, nem pela API. Não monte fluxos com eles.
langchain
O config do agente no LangChain Agent: modelo, instruções, tools, skills e ajustes (retry, fallback, resumo, LangSmith e outros). Na escrita:- Cria uma versão nova, não publicada. Quem publica é uma pessoa, no painel.
- Config igual ao atual não cria versão.
- A chave do modelo (
model.api_key) e a do LangSmith (settings.tracing.api_key) já gravadas são mantidas só quando o campo não vem.""grava vazio por cima e o agente para de responder. Oget_templatedevolve as chaves preenchidas: devolva o valor lido ou omita o campo, nunca""nem um texto de exemplo. - Headers de tools vazios ou ausentes mantêm os atuais.
- Aprovação humana é sempre desligada, com nota.
- Tools cujo alvo não existe no projeto não entram, com nota.
- Gravar por cima de uma versão ainda não publicada gera nota.
- Projeto no motor antigo: o bloco é ignorado, com nota.
- A regra editável de uma ação da Zatten fica em
_zatten.note, mas o modelo lêdescription. A escrita pelo MCP não recompõedescriptiona partir da nota (só o painel faz isso, ao salvar a ação). Para mudar a regra pelo MCP, altere os dois:_zatten.notee o fim dedescription, com o mesmo texto. Veja Ações da Zatten.
Armadilhas
- Lista inteira, sempre. Qualquer bloco de lista enviado com itens faltando deixa os que faltam como órfãos.
- Renomear sem
slugcria um item novo. Sócolumns,tags,attendant_teams,propertieseskillsrenomeiam. - Nos blocos identificados por nome, mudar o
namecria outro item e deixa o antigo como órfão. - Renomear coluna, tag ou departamento que o agente usa: mande também o bloco
langchain(como veio doget_template) na mesma escrita. Só assim as tools do agente passam a apontar para o nome novo (o que cria uma versão não publicada). Sem isso, numa escrita futura do blocolangchain, a tool que aponta para o nome antigo é descartada, com nota.