Atualizar um rascunho de campanha de e-mail
const url = 'https://dattacrm.com.br/api/v1/email-campaigns/0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","subject":"example","preheader":"example","html":"example","text":"example","includeListIds":["0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f"],"excludeListIds":["0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f"],"includeTags":["example"],"excludeTags":["example"],"audienceMatch":"any","audienceFilter":{"signup":{"from":"example","to":"example","utmField":"source","utmValue":"example","pageContains":"example"},"purchase":{"mode":"bought","productName":"example","maxValue":1}},"utm":{"enabled":true,"source":"example","medium":"example","campaign":"example","content":"example","term":"example"},"desiredSendAt":"2026-10-19T12:00:00.000Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://dattacrm.com.br/api/v1/email-campaigns/0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "subject": "example", "preheader": "example", "html": "example", "text": "example", "includeListIds": [ "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" ], "excludeListIds": [ "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" ], "includeTags": [ "example" ], "excludeTags": [ "example" ], "audienceMatch": "any", "audienceFilter": { "signup": { "from": "example", "to": "example", "utmField": "source", "utmValue": "example", "pageContains": "example" }, "purchase": { "mode": "bought", "productName": "example", "maxValue": 1 } }, "utm": { "enabled": true, "source": "example", "medium": "example", "campaign": "example", "content": "example", "term": "example" }, "desiredSendAt": "2026-10-19T12:00:00.000Z" }'Altera um rascunho de campanha da conta. Só as chaves enviadas mudam; o resto fica como está, inclusive a identidade e o rastreamento definidos na tela. Listas e tags enviadas substituem as atuais; utm mescla chave a chave; desiredSendAt: null limpa o horário sugerido. Enviar html sem text limpa o texto puro (gerado do novo HTML no envio), e num rascunho montado no editor simples da tela passa a campanha para o editor HTML. Nunca agenda nem envia. Responde 404 quando a campanha não existe ou é de outra conta, 409 quando ela já saiu do rascunho (foi agendada na tela) ou mudou durante a edição, e 400 nos mesmos casos da criação.
Authorizations
Seção intitulada “Authorizations ”Parameters
Seção intitulada “ Parameters ”Path Parameters
Seção intitulada “Path Parameters ”Identificador da campanha.
Example
0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6fIdentificador da campanha.
Request Body required
Seção intitulada “Request Body required ”Campos do rascunho a alterar. Chaves omitidas não mudam; listas e tags enviadas substituem as atuais inteiras; utm mescla chave a chave. desiredSendAt: null limpa a sugestão. Exige pelo menos um campo.
object
Nome interno da campanha (1 a 150 caracteres, sem quebra de linha).
Assunto do e-mail (até 200 caracteres, sem quebra de linha).
Pré-cabeçalho, o texto curto depois do assunto na caixa de entrada (até 250 caracteres, sem quebra de linha).
Conteúdo HTML do e-mail (até 100 mil caracteres). É sanitizado ao gravar: scripts e atributos perigosos saem, e um HTML que fica vazio é recusado. Use {{first_name}} ou {{name}} para personalizar.
Versão em texto puro (até 100 mil caracteres). Vazia: no envio, ela é gerada a partir do HTML.
Listas cujos leads recebem a campanha (até 50, da própria conta; veja list_lists). O rascunho pode nascer sem lista, mas só é agendado na tela com pelo menos uma.
Listas cujos leads ficam de fora (até 50, da própria conta).
Tags cujos leads recebem a campanha (até 50), combinadas com as listas incluídas conforme audienceMatch.
Tags cujos leads ficam de fora (até 50).
Como as listas e tags incluídas se combinam: any (qualquer critério: está em alguma lista ou tem alguma tag) ou all (todos os critérios: está em todas as listas e tem todas as tags). As exclusões valem nos dois. Padrão: any.
Filtros além de listas e tags; {} sem filtro. signup (cadastro): período from/to em AAAA-MM-DD no dia de São Paulo, utmField (source, medium, campaign, content ou term) com utmValue (sem diferenciar maiúsculas) e pageContains (trecho do endereço da página), tudo no mesmo cadastro. purchase (compra): mode bought (comprou) ou not_bought (não comprou), com productName e maxValue (valor da venda até, sem order bump) na mesma venda aprovada. Na edição, o filtro enviado substitui o atual inteiro. Padrão: {}.
object
Cadastro: entra quem tem um cadastro que atende a todos os campos preenchidos.
object
Primeiro dia do cadastro (AAAA-MM-DD, dia de São Paulo), inclusive.
Último dia do cadastro (AAAA-MM-DD, dia de São Paulo), inclusive.
Qual UTM do cadastro comparar: source, medium, campaign, content ou term.
Valor da UTM, sem diferenciar maiúsculas (até 200 caracteres). Exige utmField.
Trecho do endereço da página do cadastro (até 500 caracteres).
Compra: considera só vendas aprovadas, venda a venda.
object
Bought (comprou) ou not_bought (não comprou).
Nome do produto, como chega do gateway (até 300 caracteres).
Valor da venda até, em reais, sem order bump.
UTMs acrescentadas aos links do e-mail. Com enabled: true, source, medium e campaign são obrigatórios.
object
Liga as UTMs nos links do e-mail.
Utm_source (até 200 caracteres).
Utm_medium (até 200 caracteres).
Utm_campaign (até 200 caracteres).
Utm_content (até 200 caracteres).
Utm_term (até 200 caracteres).
Responses
Seção intitulada “ Responses ”Sucesso.
object
Campanha de e-mail da conta.
object
Identificador da campanha.
Nome interno da campanha, como aparece no CRM.
Assunto do e-mail.
Pré-cabeçalho: o texto curto que aparece depois do assunto na caixa de entrada.
Conteúdo HTML do e-mail, já sanitizado (sem scripts).
Versão em texto puro. Vazia: no envio, ela é gerada a partir do HTML.
Situação: draft (rascunho, editável pela API), scheduled (agendada na tela), running (enviando), paused (pausada), completed (concluída) ou cancelled (cancelada).
Listas cujos leads recebem a campanha.
Listas cujos leads ficam de fora, mesmo que estejam numa lista ou tag incluída.
Tags cujos leads recebem a campanha, combinadas com as listas incluídas conforme audienceMatch.
Tags cujos leads ficam de fora.
Como as listas e tags incluídas se combinam: any (qualquer critério: está em alguma lista ou tem alguma tag) ou all (todos os critérios: está em todas as listas e tem todas as tags). As exclusões valem nos dois.
Filtros além de listas e tags; {} sem filtro. signup (cadastro): período from/to em AAAA-MM-DD no dia de São Paulo, utmField (source, medium, campaign, content ou term) com utmValue (sem diferenciar maiúsculas) e pageContains (trecho do endereço da página), tudo no mesmo cadastro. purchase (compra): mode bought (comprou) ou not_bought (não comprou), com productName e maxValue (valor da venda até, sem order bump) na mesma venda aprovada.
object
Cadastro: entra quem tem um cadastro que atende a todos os campos preenchidos.
object
Primeiro dia (AAAA-MM-DD), inclusive.
Último dia (AAAA-MM-DD), inclusive.
Qual UTM do cadastro comparar.
Valor da UTM.
Trecho do endereço da página do cadastro.
Compra: considera só vendas aprovadas, venda a venda.
object
Bought (comprou) ou not_bought (não comprou).
Nome do produto, como chega do gateway.
Valor da venda até (R$).
UTMs aplicadas aos links do e-mail no envio.
object
Se as UTMs são acrescentadas aos links do e-mail.
Utm_source.
Utm_medium.
Utm_campaign.
Utm_content.
Utm_term.
Quando a campanha foi criada.
Última alteração da campanha.
Endereço da campanha no CRM, onde uma pessoa revisa, testa e agenda o envio; null quando o endereço público do CRM não está configurado.
Example
{ "data": { "id": "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f", "state": "draft", "includeListIds": [ "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" ], "excludeListIds": [ "0b6f3c1e-8a4d-4f5b-9c2e-1a2b3c4d5e6f" ], "audienceMatch": "any", "audienceFilter": { "signup": { "utmField": "source" }, "purchase": { "mode": "bought" } }, "suggestedSendAt": "2026-10-19T12:00:00.000Z", "scheduledAt": "2026-10-19T12:00:00.000Z", "createdAt": "2026-10-19T12:00:00.000Z", "updatedAt": "2026-10-19T12:00:00.000Z" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Dados inválidos na requisição (validation_error), lead novo sem lista (list_required), campo que mudou de lugar (field_moved) ou chave enviada na URL (api_key_in_url).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Chave ausente, inválida (invalid_api_key), vencida (api_key_expired) ou revogada (api_key_revoked).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
A chave é somente leitura e a operação grava dados (insufficient_scope).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Recurso não encontrado (not_found).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Conflito com o estado atual (conflict), contato oculto, cujo negócio não muda (lead_hidden), ou limite do plano atingido (plan_limit).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
O corpo da requisição passa de 256 KB (payload_too_large).
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Limite de requisições atingido (rate_limited). Aguarde Retry-After segundos.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Máximo de requisições por janela de 60 segundos para esta chave.
Requisições restantes na janela atual.
Fim da janela atual, em milissegundos desde a época Unix (epoch ms).
Segundos até poder tentar de novo.
Erro interno (internal_error). Informe o requestId ao suporte.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
O CRM está em modo somente leitura durante uma migração (maintenance). Tente de novo depois de Retry-After segundos.
Formato de erro da API.
object
object
Código estável do erro, ex.: validation_error.
Mensagem legível em português.
Detalhes extras, ex.: lista de campos inválidos.
Identificador da requisição, para suporte.
Example generated
{ "error": { "code": "example", "message": "example", "details": "example", "requestId": "example" }}Headers
Seção intitulada “Headers ”Identificador da requisição, para suporte.
Segundos até poder tentar de novo.