{
  "info": {
    "name": "API da NexTags",
    "description": "Contatos, mensagens, etiquetas, campos, fluxos, pipelines, agentes de IA, e-commerce, disparos e ferramentas.\n\nAntes de usar, preencha a variável chave_api da coleção (ou de um ambiente) com a chave de API da sua conta: Configurações › Integrações › Chave de API do NexTags. Documentação: https://docs.nextags.com.br/",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-ACCESS-TOKEN",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{chave_api}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://app.nextagsai.com.br/api",
      "type": "string"
    },
    {
      "key": "chave_api",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Conta",
      "description": "Dados da conta, administradores, equipes e integrações ligadas.",
      "item": [
        {
          "name": "Consultar a conta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "me"
              ]
            },
            "description": "Devolve os dados da conta dona da chave de API: o ID, o nome, se o acesso ao painel está liberado, quando a conta foi criada e quantos contatos ela tem. É a chamada mais simples da API: use para conferir se a chave funciona. Veja [Sua primeira requisição](comecar/primeira-requisicao)."
          },
          "response": []
        },
        {
          "name": "Listar administradores",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/admins",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "admins"
              ]
            },
            "description": "Lista os administradores da conta, as pessoas da equipe que entram no painel, com o ID de cada um. Outras chamadas pedem esse ID: por exemplo, os responsáveis de uma oportunidade (`assigned_admins`) e a ação `assign_conversation`, que atribui a conversa a alguém. Veja [Administradores e permissões](help:configuracoes/administradores-e-permissoes)."
          },
          "response": []
        },
        {
          "name": "Listar equipes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/teams",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "teams"
              ]
            },
            "description": "Lista as equipes de atendimento da conta (as equipes da Caixa de Entrada), com o ID e o nome de cada uma. Veja [Equipes de caixa de entrada](help:caixa-de-entrada/equipes-de-atendimento)."
          },
          "response": []
        },
        {
          "name": "Listar integrações da conta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/integrations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "integrations"
              ]
            },
            "description": "Mostra quais integrações estão ligadas na conta: os provedores de IA (OpenAI, Gemini, Claude, xAI e DeepSeek), o Google Sheets e o e-mail. Cada uma vem com `active`: `true` quando está conectada. Veja [A aba Integrações](help:configuracoes/integracoes)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Contatos",
      "description": "Crie, encontre e consulte contatos.",
      "item": [
        {
          "name": "Consultar contato",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Devolve um contato, com os dados do perfil, as etiquetas e os campos personalizados. Vêm o nome, o canal atual, o gênero, o idioma, o fuso, as datas da última mensagem e da última interação e a inscrição. Para achar o ID a partir do telefone ou do e-mail, use [Buscar contato por campo personalizado](referencia/contatos/buscar-contato-por-campo-personalizado)."
          },
          "response": []
        },
        {
          "name": "Buscar contato por campo personalizado",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/find_by_custom_field?field_id=phone&value=5511988776655",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                "find_by_custom_field"
              ],
              "query": [
                {
                  "key": "field_id",
                  "value": "phone",
                  "description": "Onde procurar: `phone` (telefone), `email` (e-mail) ou o ID de um campo personalizado."
                },
                {
                  "key": "value",
                  "value": "5511988776655",
                  "description": "O valor procurado. O telefone vai completo e só com números, como `5511988776655`."
                }
              ]
            },
            "description": "Encontra contatos pelo valor de um campo: o telefone, o e-mail ou um campo personalizado. Devolve no máximo 100 contatos, os mais recentes primeiro, pela última mudança do campo. É o jeito de achar o `contact_id` de quem você conhece pelo telefone ou pelo e-mail: veja [Encontrar um contato pelo e-mail ou telefone](guias/buscar-contato-por-campo)."
          },
          "response": []
        },
        {
          "name": "Criar contato",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts"
              ]
            },
            "description": "Cria um contato e, na mesma chamada, roda ações nele: etiquetar, preencher campos e enviar um fluxo. O telefone vai completo, com o código do país e o DDD, só com números, como `5511988776655`: veja [O formato certo do telefone](help:contatos/formato-do-telefone). Para não criar o mesmo contato duas vezes, procure antes pelo telefone ou pelo e-mail em [Buscar contato por campo personalizado](referencia/contatos/buscar-contato-por-campo-personalizado). Veja [Criar ou atualizar um contato](guias/criar-ou-atualizar-contato).\n\nSe o contato nunca mandou mensagem para a conta, a janela de 24 horas do WhatsApp está fechada: o fluxo da ação `send_flow` precisa começar com um Modelo de Mensagem aprovado. Veja [A janela de 24 horas](help:canais/janela-de-24-horas).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone\": \"5511988776655\",\n  \"email\": \"ana@exemplo.com.br\",\n  \"first_name\": \"Ana\",\n  \"last_name\": \"Souza\",\n  \"gender\": \"female\",\n  \"actions\": [\n    {\n      \"action\": \"add_tag\",\n      \"tag_name\": \"cliente-vip\"\n    },\n    {\n      \"action\": \"set_field_value\",\n      \"field_name\": \"cidade\",\n      \"value\": \"São Paulo\"\n    },\n    {\n      \"action\": \"send_flow\",\n      \"flow_id\": 1000001\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Mensagens",
      "description": "Envie fluxos, textos, arquivos e conteúdos para um contato.",
      "item": [
        {
          "name": "Enviar fluxo",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/send/:flow_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "send",
                ":flow_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato que recebe."
                },
                {
                  "key": "flow_id",
                  "value": "1000001",
                  "description": "O ID do fluxo."
                }
              ]
            },
            "description": "Envia um fluxo ao contato, como o **Enviar Fluxo** da Caixa de Entrada: o contato recebe as mensagens e passa pelas ações do fluxo, na versão publicada. É o jeito mais completo de mandar conteúdo pela API, porque o fluxo pode ter botões, perguntas e o Modelo de Mensagem do WhatsApp. O ID do fluxo sai de [Listar fluxos](referencia/fluxos/listar-fluxos). Veja [Enviar um fluxo para um contato](guias/enviar-fluxo).\n\nNo WhatsApp, a mensagem livre só sai até 24 horas depois da última mensagem do contato. Fora dessa janela, o fluxo precisa começar com um Modelo de Mensagem aprovado: veja [Modelo de mensagem do WhatsApp no fluxo](help:fluxos/modelos-no-fluxo) e [A janela de 24 horas](help:canais/janela-de-24-horas). Para o Instagram e o Messenger, veja [Mensagens fora da janela](help:instagram-e-facebook/mensagens-fora-da-janela)."
          },
          "response": []
        },
        {
          "name": "Enviar texto",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/send/text",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "send",
                "text"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato que recebe."
                }
              ]
            },
            "description": "Envia uma mensagem de texto ao contato. Para mandar mais de uma mensagem, botões ou ações na mesma chamada, use [Enviar conteúdo](referencia/mensagens/enviar-conteudo). Veja [Enviar texto, imagem e arquivo](guias/enviar-texto-e-arquivos).\n\nNo WhatsApp, a mensagem livre só sai até 24 horas depois da última mensagem do contato. Fora dessa janela, use [Enviar fluxo](referencia/mensagens/enviar-fluxo) com um fluxo que comece com um Modelo de Mensagem aprovado. Veja [A janela de 24 horas](help:canais/janela-de-24-horas) e, para o Instagram e o Messenger, [Mensagens fora da janela](help:instagram-e-facebook/mensagens-fora-da-janela).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"text\": \"Oi, Ana! Seu pedido PED-1001 saiu para entrega.\",\n  \"channel\": \"whatsapp\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Enviar arquivo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/send/file",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "send",
                "file"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato que recebe."
                }
              ]
            },
            "description": "Envia ao contato uma imagem, um vídeo, um áudio ou um documento, a partir do endereço do arquivo. Os formatos e os tamanhos aceitos mudam de canal para canal: veja [Tipos de arquivo e limites por canal](help:canais/tipos-de-arquivo-e-limites) e [Enviar texto, imagem e arquivo](guias/enviar-texto-e-arquivos).\n\nNo WhatsApp, a mensagem livre só sai até 24 horas depois da última mensagem do contato. Fora dessa janela, use [Enviar fluxo](referencia/mensagens/enviar-fluxo) com um fluxo que comece com um Modelo de Mensagem aprovado. Veja [A janela de 24 horas](help:canais/janela-de-24-horas) e, para o Instagram e o Messenger, [Mensagens fora da janela](help:instagram-e-facebook/mensagens-fora-da-janela).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://exemplo.com.br/arquivos/catalogo.pdf\",\n  \"type\": \"file\",\n  \"channel\": \"whatsapp\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Enviar conteúdo",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/send_content",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "send_content"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato que recebe."
                }
              ]
            },
            "description": "Envia várias mensagens e roda ações no contato, numa chamada só. As mensagens (texto, botões, respostas rápidas, mídia e cartões) e as ações (`add_tag`, `set_field_value`, `send_flow` e as outras) seguem o formato de [Mensagens e ações em JSON](comecar/mensagens-e-acoes), e a NexTags converte cada mensagem para o canal do contato. No WhatsApp, `messages` aceita também mensagens no formato da API do WhatsApp (lista, localização, contatos), com `\"to\": null`: a NexTags preenche o número.\n\nNo WhatsApp, a mensagem livre só sai até 24 horas depois da última mensagem do contato. Fora dessa janela, use [Enviar fluxo](referencia/mensagens/enviar-fluxo) com um fluxo que comece com um Modelo de Mensagem aprovado. Veja [A janela de 24 horas](help:canais/janela-de-24-horas) e, para o Instagram e o Messenger, [Mensagens fora da janela](help:instagram-e-facebook/mensagens-fora-da-janela).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messages\": [\n    {\n      \"message\": {\n        \"text\": \"Oi, Ana! Seu pedido PED-1001 saiu para entrega.\"\n      }\n    },\n    {\n      \"message\": {\n        \"attachment\": {\n          \"type\": \"template\",\n          \"payload\": {\n            \"template_type\": \"button\",\n            \"text\": \"Quer falar com a equipe?\",\n            \"buttons\": [\n              {\n                \"type\": \"postback\",\n                \"title\": \"Falar com a equipe\",\n                \"payload\": \"1000001\"\n              }\n            ]\n          }\n        }\n      }\n    }\n  ],\n  \"actions\": [\n    {\n      \"action\": \"add_tag\",\n      \"tag_name\": \"cliente-vip\"\n    },\n    {\n      \"action\": \"set_field_value\",\n      \"field_name\": \"cidade\",\n      \"value\": \"São Paulo\"\n    }\n  ],\n  \"channel\": \"whatsapp\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Etiquetas",
      "description": "Etiquetas da conta e dos contatos.",
      "item": [
        {
          "name": "Listar etiquetas",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "tags"
              ]
            },
            "description": "Lista as etiquetas da conta, com o ID e o nome de cada uma. Use o ID para pôr ou tirar a etiqueta de um contato."
          },
          "response": []
        },
        {
          "name": "Criar etiqueta",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "tags"
              ]
            },
            "description": "Cria uma etiqueta na conta e devolve o ID dela. O nome vai em formulário (`application/x-www-form-urlencoded`), não em JSON.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "name",
                  "value": "cliente-vip",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Consultar etiqueta",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/tags/:tag_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "tags",
                ":tag_id"
              ],
              "variable": [
                {
                  "key": "tag_id",
                  "value": "2001",
                  "description": "O ID da etiqueta."
                }
              ]
            },
            "description": "Devolve o nome de uma etiqueta a partir do ID."
          },
          "response": []
        },
        {
          "name": "Apagar etiqueta",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/tags/:tag_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "tags",
                ":tag_id"
              ],
              "variable": [
                {
                  "key": "tag_id",
                  "value": "2001",
                  "description": "O ID da etiqueta."
                }
              ]
            },
            "description": "Apaga a etiqueta da conta, sem volta. Antes, confira os fluxos e os acionadores que usam a etiqueta. Para só tirar a etiqueta de um contato, use [Remover etiqueta do contato](referencia/etiquetas/remover-etiqueta-do-contato)."
          },
          "response": []
        },
        {
          "name": "Buscar etiqueta pelo nome",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/tags/name/:tag_name",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "tags",
                "name",
                ":tag_name"
              ],
              "variable": [
                {
                  "key": "tag_name",
                  "value": "cliente-vip",
                  "description": "O nome da etiqueta, codificado para URL."
                }
              ]
            },
            "description": "Encontra uma etiqueta pelo nome e devolve o ID dela. O nome vai no caminho, codificado para URL: `lead quente` vira `lead%20quente`."
          },
          "response": []
        },
        {
          "name": "Listar etiquetas do contato",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "tags"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Lista as etiquetas que o contato tem. O contato inteiro, com os campos personalizados, sai de [Consultar contato](referencia/contatos/consultar-contato)."
          },
          "response": []
        },
        {
          "name": "Adicionar etiqueta ao contato",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/tags/:tag_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "tags",
                ":tag_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "tag_id",
                  "value": "2001",
                  "description": "O ID da etiqueta."
                }
              ]
            },
            "description": "Põe a etiqueta no contato, como a ação **Adicionar Etiqueta** de um fluxo. Para usar o nome da etiqueta no lugar do ID, mande a ação `add_tag` em [Enviar conteúdo](referencia/mensagens/enviar-conteudo). Veja [Etiquetar contatos e preencher campos](guias/etiquetas-e-campos)."
          },
          "response": []
        },
        {
          "name": "Remover etiqueta do contato",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/tags/:tag_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "tags",
                ":tag_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "tag_id",
                  "value": "2001",
                  "description": "O ID da etiqueta."
                }
              ]
            },
            "description": "Tira a etiqueta do contato, como a ação **Remover Etiqueta** de um fluxo. A etiqueta continua na conta."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Campos personalizados",
      "description": "Campos da conta e os valores de cada contato.",
      "item": [
        {
          "name": "Listar campos personalizados",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/custom_fields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "custom_fields"
              ]
            },
            "description": "Lista os campos personalizados da conta. Cada campo traz o ID (`id`), o nome (`name`), o tipo (`type`: 0 texto, 1 número, 2 data, 3 data e hora, 4 sim/não, 5 texto longo, 6 seleção única, 7 seleção múltipla) e a descrição (`description`). Use o ID para ler ou preencher o valor de um contato."
          },
          "response": []
        },
        {
          "name": "Criar campo personalizado",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/accounts/custom_fields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "custom_fields"
              ]
            },
            "description": "Cria um campo personalizado na conta e devolve o ID dele. Pela API, o tipo vai de 0 a 4 (texto, número, data, data e hora e sim/não); texto longo e seleções se criam no app. Com `isBotField: true`, o campo nasce como [campo do bot](help:fluxos/campos-do-bot), com um valor só para a conta toda, que vai em `value`. Use um nome novo: no app, um nome repetido ou reservado é recusado.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"cidade\",\n  \"type\": 0,\n  \"description\": \"Cidade de entrega\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Consultar campo personalizado",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/custom_fields/:custom_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "custom_fields",
                ":custom_field_id"
              ],
              "variable": [
                {
                  "key": "custom_field_id",
                  "value": "3001",
                  "description": "O ID do campo personalizado."
                }
              ]
            },
            "description": "Devolve o nome, o tipo e a descrição de um campo personalizado a partir do ID."
          },
          "response": []
        },
        {
          "name": "Buscar campo pelo nome",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/custom_fields/name/:custom_field_name",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "custom_fields",
                "name",
                ":custom_field_name"
              ],
              "variable": [
                {
                  "key": "custom_field_name",
                  "value": "cidade",
                  "description": "O nome do campo, codificado para URL."
                }
              ]
            },
            "description": "Encontra um campo personalizado pelo nome e devolve o ID, o tipo e a descrição. O nome vai no caminho, codificado para URL: `data de nascimento` vira `data%20de%20nascimento`."
          },
          "response": []
        },
        {
          "name": "Listar campos do contato",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/custom_fields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "custom_fields"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Lista os campos personalizados do contato, com o valor de cada um. O contato inteiro, com as etiquetas, sai de [Consultar contato](referencia/contatos/consultar-contato)."
          },
          "response": []
        },
        {
          "name": "Consultar campo do contato",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/custom_fields/:custom_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "custom_fields",
                ":custom_field_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "custom_field_id",
                  "value": "3001",
                  "description": "O ID do campo personalizado."
                }
              ]
            },
            "description": "Devolve o valor de um campo personalizado do contato. Data e data e hora vêm em Unix timestamp, em segundos; sim/não vem como 1 ou 0."
          },
          "response": []
        },
        {
          "name": "Preencher campo do contato",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/custom_fields/:custom_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "custom_fields",
                ":custom_field_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "custom_field_id",
                  "value": "3001",
                  "description": "O ID do campo personalizado."
                }
              ]
            },
            "description": "Grava um valor num campo personalizado do contato, como a ação **Definir Campo Personalizado** de um fluxo. O valor vai em formulário, no formato do tipo do campo: data e data e hora em Unix timestamp (segundos) e sim/não como `1` ou `0`. Para preencher pelo nome do campo no lugar do ID, mande a ação `set_field_value` em [Enviar conteúdo](referencia/mensagens/enviar-conteudo). Veja [Etiquetar contatos e preencher campos](guias/etiquetas-e-campos).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "value",
                  "value": "São Paulo",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Limpar campo do contato",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/custom_fields/:custom_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "custom_fields",
                ":custom_field_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "custom_field_id",
                  "value": "3001",
                  "description": "O ID do campo personalizado."
                }
              ]
            },
            "description": "Apaga o valor de um campo personalizado do contato, como a ação **Limpar Campo Personalizado** de um fluxo. O campo continua na conta."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Campos do bot",
      "description": "Valores globais da conta, iguais para todos os contatos.",
      "item": [
        {
          "name": "Consultar campo do bot",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/bot_fields/:bot_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "bot_fields",
                ":bot_field_id"
              ],
              "variable": [
                {
                  "key": "bot_field_id",
                  "value": "3101",
                  "description": "O ID do campo do bot."
                }
              ]
            },
            "description": "Devolve o nome, o tipo e o valor de um campo do bot."
          },
          "response": []
        },
        {
          "name": "Preencher campo do bot",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/bot_fields/:bot_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "bot_fields",
                ":bot_field_id"
              ],
              "variable": [
                {
                  "key": "bot_field_id",
                  "value": "3101",
                  "description": "O ID do campo do bot."
                }
              ]
            },
            "description": "Troca o valor de um campo do bot: todos os fluxos que usam o campo passam a mostrar o valor novo. Use quando o valor vem de outro sistema, como o preço do dia ou o cupom da semana. O valor vai em formulário, no formato do tipo do campo: data e data e hora em Unix timestamp (segundos) e sim/não como `1` ou `0`.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "value",
                  "value": "Seg a sex, das 9h às 18h",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Limpar campo do bot",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/bot_fields/:bot_field_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "bot_fields",
                ":bot_field_id"
              ],
              "variable": [
                {
                  "key": "bot_field_id",
                  "value": "3101",
                  "description": "O ID do campo do bot."
                }
              ]
            },
            "description": "Apaga o valor de um campo do bot. O campo continua na conta, sem valor."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Fluxos e modelos",
      "description": "Liste os fluxos e instale modelos prontos.",
      "item": [
        {
          "name": "Listar fluxos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/flows",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "flows"
              ]
            },
            "description": "Lista os fluxos da conta, com o ID e o nome de cada um. Use o ID em [Enviar fluxo](referencia/mensagens/enviar-fluxo) e na ação `send_flow`."
          },
          "response": []
        },
        {
          "name": "Instalar modelo na conta",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/accounts/templates/:template_id/install",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "templates",
                ":template_id",
                "install"
              ],
              "variable": [
                {
                  "key": "template_id",
                  "value": "9001",
                  "description": "O ID do modelo: o `id` do link de instalação."
                }
              ]
            },
            "description": "Instala um modelo de **Templates** na conta dona da chave de API, sem abrir o link de instalação. O ID e a chave saem do link que o **Obter Link** copia, em **Ferramentas** › **Templates** › **⋮**: ele termina em `store/template?id=9001&key=b7Xk29QpLm4R`, e o `id` vai no caminho e o `key` vai em `template_key`. No app, a conta que criou o modelo não pode instalá-lo.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"template_key\": \"b7Xk29QpLm4R\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Gerar link de uso único do modelo",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/accounts/templates/:template_id/generateSingleUseLink",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "accounts",
                "templates",
                ":template_id",
                "generateSingleUseLink"
              ],
              "variable": [
                {
                  "key": "template_id",
                  "value": "9001",
                  "description": "O ID do modelo: o `id` do link de instalação."
                }
              ]
            },
            "description": "Gera um link de instalação do modelo que vale para um uso só. Use para entregar o modelo a uma pessoa sem passar o link fixo do **Obter Link**. O `template_id` é o `id` do link de instalação: veja [Instalar modelo na conta](referencia/fluxos/instalar-modelo-na-conta)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Pipelines e oportunidades",
      "description": "Pipelines, etapas, oportunidades e comentários do CRM.",
      "item": [
        {
          "name": "Listar pipelines",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines"
              ],
              "query": [
                {
                  "key": "offset",
                  "value": "",
                  "description": "Quantos registros pular antes do primeiro da página. Comece em 0 e some o `limit` a cada página.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Quantos registros trazer por página.",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os pipelines da conta, com o ID e o nome de cada um. É daqui que sai o `pipeline_id` das outras chamadas. A lista vem em páginas: ande por ela com `offset` e `limit`."
          },
          "response": []
        },
        {
          "name": "Consultar pipeline",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                }
              ]
            },
            "description": "Devolve um pipeline pelo ID: o ID e o nome. As colunas do quadro vêm em [Listar etapas do pipeline](referencia/pipelines/listar-etapas-do-pipeline)."
          },
          "response": []
        },
        {
          "name": "Listar etapas do pipeline",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/stages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "stages"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                }
              ]
            },
            "description": "Lista as etapas do pipeline (as colunas do quadro), com o ID e o nome de cada uma. O ID da etapa vai em `stage_id`, para criar a oportunidade numa etapa ou mudá-la de etapa, e em `target_stage_id`, para transferir. Veja [Etapas: criar, ordenar e configurar](help:pipelines/etapas)."
          },
          "response": []
        },
        {
          "name": "Listar campos do pipeline",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/custom_fields",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "custom_fields"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                }
              ]
            },
            "description": "Lista os campos do pipeline: os campos próprios das oportunidades, criados nas definições do pipeline em **Campo Personalizados**. Não são os campos personalizados do contato. Use o `id` ou o `name` deles em `custom_fields`, ao criar ou atualizar uma oportunidade. Veja [Comentários, anexos e campos do pipeline](help:pipelines/comentarios-e-anexos)."
          },
          "response": []
        },
        {
          "name": "Listar oportunidades",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities?contact_id=123456789",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                }
              ],
              "query": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID de um contato: traz só as oportunidades dele."
                },
                {
                  "key": "offset",
                  "value": "",
                  "description": "Quantos registros pular antes do primeiro da página. Comece em 0 e some o `limit` a cada página.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Quantos registros trazer por página.",
                  "disabled": true
                }
              ]
            },
            "description": "Lista as oportunidades de um pipeline, em páginas (`offset` e `limit`). Com `contact_id`, traz só as de um contato: o jeito de saber se o cliente já tem uma oportunidade aberta antes de criar outra."
          },
          "response": []
        },
        {
          "name": "Criar oportunidade",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                }
              ]
            },
            "description": "Cria uma oportunidade (ou um ticket, nos pipelines de suporte) para um contato. Sem `stage_id`, ela entra na primeira etapa do pipeline. Os IDs vêm de [Listar etapas do pipeline](referencia/pipelines/listar-etapas-do-pipeline), [Listar administradores](referencia/conta/listar-administradores) e [Listar campos do pipeline](referencia/pipelines/listar-campos-do-pipeline). Veja o guia [Criar e mover oportunidades no pipeline](guias/oportunidades-no-pipeline).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contact_id\": 123456789,\n  \"title\": \"Plano Pro anual\",\n  \"description\": \"Quer começar em novembro, com 3 atendentes.\",\n  \"stage_id\": 4101,\n  \"value\": 1500,\n  \"status\": \"open\",\n  \"priority\": \"high\",\n  \"assigned_admins\": [\n    10001\n  ],\n  \"custom_fields\": [\n    {\n      \"id\": 3201,\n      \"value\": \"Anúncio no Instagram\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Consultar oportunidade",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                }
              ]
            },
            "description": "Devolve uma oportunidade: o contato, o título, o valor, o estado, a prioridade, a etapa, os responsáveis e as datas."
          },
          "response": []
        },
        {
          "name": "Atualizar oportunidade",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                }
              ]
            },
            "description": "Muda uma oportunidade: o título, a descrição, a etapa, o valor, o estado, a prioridade, os responsáveis e os campos do pipeline. Para mudar de etapa, mande o `stage_id` novo; para fechar, o `status` com `won` (ganha) ou `lost` (perdida); para reabrir, `open`. O `title` vai sempre, mesmo quando não muda. Veja [Valor, prioridade, vencimento e responsáveis](help:pipelines/campos-do-card).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Plano Pro anual\",\n  \"stage_id\": 4103,\n  \"status\": \"won\",\n  \"value\": 1800,\n  \"custom_fields\": [\n    {\n      \"name\": \"Origem do lead\",\n      \"value\": \"Indicação\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Apagar oportunidade",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                }
              ]
            },
            "description": "Apaga a oportunidade do pipeline, como o **Excluir** do menu do cartão."
          },
          "response": []
        },
        {
          "name": "Transferir oportunidade de pipeline",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id/transfer-to-pipeline",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id",
                "transfer-to-pipeline"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline onde a oportunidade está agora."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                }
              ]
            },
            "description": "Leva a oportunidade para outro pipeline, numa etapa escolhida, como o **Transferir para o Pipeline** do cartão. A etapa é do pipeline de destino: pegue o ID dela em [Listar etapas do pipeline](referencia/pipelines/listar-etapas-do-pipeline), com o ID do pipeline novo. Veja [Oportunidades e tickets](help:pipelines/oportunidades).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"target_pipeline_id\": 4002,\n  \"target_stage_id\": 4111\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Listar comentários da oportunidade",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id/comments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id",
                "comments"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                }
              ],
              "query": [
                {
                  "key": "offset",
                  "value": "",
                  "description": "Quantos registros pular antes do primeiro da página. Comece em 0 e some o `limit` a cada página.",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "",
                  "description": "Quantos registros trazer por página.",
                  "disabled": true
                }
              ]
            },
            "description": "Lista os comentários de uma oportunidade (a seção **Comentários** do cartão), em páginas (`offset` e `limit`). Veja [Comentários, anexos e campos do pipeline](help:pipelines/comentarios-e-anexos)."
          },
          "response": []
        },
        {
          "name": "Comentar na oportunidade",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id/comments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id",
                "comments"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                }
              ]
            },
            "description": "Escreve um comentário na oportunidade, como o **Adicionar Comentário** do cartão. Serve para registrar no pipeline o que aconteceu no seu sistema, como uma proposta enviada ou um pagamento.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"content\": \"Proposta enviada por e-mail: Plano Pro anual com 10% de desconto.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Apagar comentário",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/pipelines/:pipeline_id/opportunities/:opportunity_id/comments/:comment_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "pipelines",
                ":pipeline_id",
                "opportunities",
                ":opportunity_id",
                "comments",
                ":comment_id"
              ],
              "variable": [
                {
                  "key": "pipeline_id",
                  "value": "4001",
                  "description": "O ID do pipeline (veja [Listar pipelines](referencia/pipelines/listar-pipelines))."
                },
                {
                  "key": "opportunity_id",
                  "value": "4201",
                  "description": "O ID da oportunidade (veja [Listar oportunidades](referencia/pipelines/listar-oportunidades))."
                },
                {
                  "key": "comment_id",
                  "value": "4301",
                  "description": "O ID do comentário (veja [Listar comentários da oportunidade](referencia/pipelines/listar-comentarios-da-oportunidade))."
                }
              ]
            },
            "description": "Apaga um comentário da oportunidade, como o **Excluir** do menu do comentário."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Agentes de IA",
      "description": "Agentes, funções, servidores MCP, arquivos e histórico da IA.",
      "item": [
        {
          "name": "Salvar mensagens no histórico da IA",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/ai/save_messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "ai",
                "save_messages"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Põe mensagens no histórico de conversa que a IA guarda do contato, sem enviar nada a ele. Use para dar contexto à IA sobre uma conversa que aconteceu fora da NexTags, como um atendimento por telefone, por e-mail ou na loja: nas próximas respostas, ela já sabe o que foi dito. Nos fluxos, a ação **Excluir histórico de mensagens** apaga o histórico da IA do contato; veja [Chamar a IA no fluxo](help:fluxos/ia-no-fluxo).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"type\": \"text\",\n      \"text\": \"Liguei ontem para trocar o tamanho do tênis do pedido PED-1001.\"\n    },\n    {\n      \"role\": \"assistant\",\n      \"type\": \"text\",\n      \"text\": \"Combinado, Ana! A troca para o 38 foi aberta e o novo par sai amanhã.\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Listar agentes de IA",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/agents/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agents",
                ""
              ]
            },
            "description": "Lista os agentes de IA da conta (a aba **Agentes de IA** do AI Hub), com o ID e o nome de cada um. O endereço termina com barra: `/agents/`. Veja [Conheça o AI Hub](help:ia/ia-hub)."
          },
          "response": []
        },
        {
          "name": "Consultar agente de IA",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/agents/:agent_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agents",
                ":agent_id"
              ],
              "variable": [
                {
                  "key": "agent_id",
                  "value": "5001",
                  "description": "O ID do agente (veja [Listar agentes de IA](referencia/agentes-de-ia/listar-agentes-de-ia))."
                }
              ]
            },
            "description": "Devolve um agente de IA pelo ID: o nome, quem criou e quando. Veja [Criar um agente de IA](help:ia/criar-agente)."
          },
          "response": []
        },
        {
          "name": "Atualizar agente de IA",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/agents/:agent_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agents",
                ":agent_id"
              ],
              "variable": [
                {
                  "key": "agent_id",
                  "value": "5001",
                  "description": "O ID do agente (veja [Listar agentes de IA](referencia/agentes-de-ia/listar-agentes-de-ia))."
                }
              ]
            },
            "description": "Muda a configuração de um agente: a **Mensagem do sistema (Prompt)**, o **Max tokens** e o modelo de cada provedor. Os três campos são opcionais. Veja [Escrever a mensagem do sistema](help:ia/escrever-o-prompt) e [Modelo, temperatura e limite de tokens](help:ia/modelo-e-parametros).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"prompt\": \"Você é a Bia, atendente da Loja Exemplo. Responda em português, em até 3 frases. Quando o cliente pedir troca, passe para a equipe.\",\n  \"max_output_tokens\": 2048,\n  \"model\": {\n    \"openAI\": \"gpt-6-luna\",\n    \"gemini\": \"models/gemini-3.5-flash-lite\",\n    \"claude\": \"claude-haiku-4-5-20251001\",\n    \"xAI\": \"grok-4.3\",\n    \"deepseek\": \"deepseek-v4-flash\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Listar funções dos agentes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/agents/functions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agents",
                "functions"
              ]
            },
            "description": "Lista as **Funções de IA** da conta (AI Hub › **Ferramentas de IA**): as tarefas que o agente executa durante a conversa, como coletar dados e acionar um fluxo. Cada função é ligada ao agente na lista **Ferramentas de IA** do editor dele. Veja [Funções de IA: coletar dados e acionar fluxos](help:ia/funcoes-do-agente)."
          },
          "response": []
        },
        {
          "name": "Listar servidores MCP",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/agents/mcp",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agents",
                "mcp"
              ]
            },
            "description": "Lista os **Servidores MCP** da conta (AI Hub › **Ferramentas de IA**): os sistemas externos que o agente consulta pelo protocolo MCP, como o estoque de uma loja. A aba aparece com a OpenAI, o xAI, o Claude ou o Gemini conectados. Veja [Servidores MCP no agente](help:ia/mcp-no-agente)."
          },
          "response": []
        },
        {
          "name": "Listar arquivos dos agentes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/agents/files",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "agents",
                "files"
              ]
            },
            "description": "Lista os **Arquivos** da conta (AI Hub › **Ferramentas de IA**): a base de conhecimento que o agente consulta para responder. A aba **Arquivos** só aparece com a OpenAI conectada. Veja [Arquivos: a base de conhecimento do agente](help:ia/base-de-conhecimento)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "E-commerce",
      "description": "Produtos, carrinho e pedidos de cada contato.",
      "item": [
        {
          "name": "Enviar produtos ao contato",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/send/products",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "send",
                "products"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Manda ao contato uma mensagem com um ou mais produtos do E-commerce, como o **Enviar Produtos** da Caixa de Entrada. Veja [Enviar produtos na conversa](help:ecommerce/enviar-produtos-na-conversa).\n\nNo WhatsApp, no Instagram e no Messenger, a mensagem só chega dentro da [janela de 24 horas](help:canais/janela-de-24-horas).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"product_id\": [\n    6001,\n    6002\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Consultar carrinho",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/cart",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "cart"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Devolve o carrinho do contato: os itens, a quantidade de cada um, o cupom e os totais. Os totais vêm em centavos; o `price` de cada item, não."
          },
          "response": []
        },
        {
          "name": "Esvaziar carrinho",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/cart",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "cart"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                }
              ]
            },
            "description": "Tira todos os itens do carrinho do contato, como a operação **Limpar Carrinho de Compras** da ação **Ecommerce** dos fluxos."
          },
          "response": []
        },
        {
          "name": "Marcar pedido como pago",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/pay/:order_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "pay",
                ":order_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "order_id",
                  "value": "PED-1001",
                  "description": "O ID do pedido (texto). Ele vem em `order_id`, no carrinho e no pedido."
                }
              ]
            },
            "description": "Marca um pedido como pago, quando o contato pagou fora da NexTags (Pix, link de pagamento, na loja). O valor recebido precisa cobrir o total do pedido. O corpo vai em formulário (`application/x-www-form-urlencoded`). Veja [Receber pagamentos no e-commerce](help:ecommerce/pagamentos).\n\nO `amount_received` vai em centavos: R$ 80,82 = `8082`.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "amount_received",
                  "value": "8082",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Consultar pedido",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/order/:order_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "order",
                ":order_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "order_id",
                  "value": "PED-1001",
                  "description": "O ID do pedido (texto). Ele vem em `order_id`, no carrinho e no pedido."
                }
              ]
            },
            "description": "Devolve um pedido do contato, no mesmo formato do carrinho: os itens, o cupom e os totais em centavos (menos o `price` de cada item). Veja [Pedidos, cupons e vendedores](help:ecommerce/pedidos-cupons-e-vendedores)."
          },
          "response": []
        },
        {
          "name": "Alterar pedido",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/order/:order_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "order",
                ":order_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "order_id",
                  "value": "PED-1001",
                  "description": "O ID do pedido (texto). Ele vem em `order_id`, no carrinho e no pedido."
                }
              ]
            },
            "description": "Muda a situação de um pedido e os dados de entrega. A situação vai em `status`, pelo código: `6` **Aceito** (em processamento), `7` **Entregando** (enviado), `10` **Concluído** e `13` **Cancelado**. O **Não processado** (código 4) não pode ser escolhido aqui. Veja [Pedidos, cupons e vendedores](help:ecommerce/pedidos-cupons-e-vendedores).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"status\": 7,\n  \"name\": \"Ana Souza\",\n  \"phone\": \"5511988776655\",\n  \"city\": \"São Paulo\",\n  \"state\": \"SP\",\n  \"zip_code\": \"01310-100\",\n  \"street_1\": \"Av. Paulista, 1578\",\n  \"street_2\": \"Apto 45\",\n  \"note\": \"Entregar na portaria.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Adicionar produto ao carrinho",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/cart/:product_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "cart",
                ":product_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "product_id",
                  "value": "6001",
                  "description": "O ID do produto."
                }
              ]
            },
            "description": "Põe um produto no carrinho do contato, com a quantidade. O corpo vai em formulário (`application/x-www-form-urlencoded`), não em JSON.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "quantity",
                  "value": "2",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Remover produto do carrinho",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/contacts/:contact_id/cart/:product_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "contacts",
                ":contact_id",
                "cart",
                ":product_id"
              ],
              "variable": [
                {
                  "key": "contact_id",
                  "value": "123456789",
                  "description": "O ID do contato."
                },
                {
                  "key": "product_id",
                  "value": "6001",
                  "description": "O ID do produto."
                }
              ]
            },
            "description": "Tira um produto do carrinho do contato."
          },
          "response": []
        },
        {
          "name": "Consultar produto",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/products/:product_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "products",
                ":product_id"
              ],
              "variable": [
                {
                  "key": "product_id",
                  "value": "6001",
                  "description": "O ID do produto."
                }
              ]
            },
            "description": "Devolve um produto do E-commerce: o nome, os preços, o estoque, a categoria, a descrição curta e a imagem. Os preços vêm na moeda da loja, não em centavos. Veja [Cadastrar produtos](help:ecommerce/cadastrar-produtos)."
          },
          "response": []
        },
        {
          "name": "Atualizar produto",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/products/:product_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "products",
                ":product_id"
              ],
              "variable": [
                {
                  "key": "product_id",
                  "value": "6001",
                  "description": "O ID do produto."
                }
              ]
            },
            "description": "Muda o preço, o estoque e o **Ativo** de um produto, para a loja acompanhar o seu sistema de estoque. Os três campos são opcionais. Veja [Cadastrar produtos](help:ecommerce/cadastrar-produtos).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"price\": 44.9,\n  \"stock\": 85,\n  \"active\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Disparos",
      "description": "Consulte, reenvie e cancele disparos (broadcasts).",
      "item": [
        {
          "name": "Listar disparos",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/broadcasts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "broadcasts"
              ]
            },
            "description": "Lista os Broadcasts da conta, com o nome, o estado e as datas de cada um. Não há chamada para criar um Broadcast: ele é criado na tela, em **Broadcasts** › **Enviar** ([Criar um Broadcast](help:disparos/criar-disparo))."
          },
          "response": []
        },
        {
          "name": "Consultar disparo",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/broadcasts/:broadcast_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "broadcasts",
                ":broadcast_id"
              ],
              "variable": [
                {
                  "key": "broadcast_id",
                  "value": "7001",
                  "description": "O ID do Broadcast (veja [Listar disparos](referencia/disparos/listar-disparos))."
                }
              ]
            },
            "description": "Devolve um Broadcast pelo ID, com o estado: use para acompanhar um envio até `SENT`. Os números de entregues, vistos, cliques e falhas não vêm aqui: ficam na lista **Broadcasts** ([Resultados: entregues, abertos, clicados e falhas](help:disparos/resultados-e-custos))."
          },
          "response": []
        },
        {
          "name": "Reenviar disparo",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/broadcasts/:broadcast_id/resend",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "broadcasts",
                ":broadcast_id",
                "resend"
              ],
              "variable": [
                {
                  "key": "broadcast_id",
                  "value": "7001",
                  "description": "O ID do Broadcast (veja [Listar disparos](referencia/disparos/listar-disparos))."
                }
              ]
            },
            "description": "Manda o Broadcast de novo, como o **Reenviar** do menu da lista, que aparece em qualquer estado. Antes de reenviar, pense em quem já recebeu: mensagem repetida aumenta os bloqueios e as denúncias. Veja [Reenviar, cancelar e exportar um Broadcast](help:disparos/reenviar-e-cancelar)."
          },
          "response": []
        },
        {
          "name": "Cancelar disparo",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/broadcasts/:broadcast_id/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "broadcasts",
                ":broadcast_id",
                "cancel"
              ],
              "variable": [
                {
                  "key": "broadcast_id",
                  "value": "7001",
                  "description": "O ID do Broadcast (veja [Listar disparos](referencia/disparos/listar-disparos))."
                }
              ]
            },
            "description": "Para um Broadcast que ainda não saiu, como o **Cancelar** do menu da lista. Na tela, o **Cancelar** só aparece enquanto o Broadcast está **Agendado**, **Pendente** ou no começo do envio; depois disso, não dá mais para parar. Cancelado, o estado vira `CANCELLED`. Veja [Reenviar, cancelar e exportar um Broadcast](help:disparos/reenviar-e-cancelar)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Agenda",
      "description": "Calendários usados nos agendamentos.",
      "item": [
        {
          "name": "Listar calendários",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/calendars",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "calendars"
              ]
            },
            "description": "Lista os calendários da conta, com o ID, o nome e a duração de cada um. A API não lista os agendamentos: eles ficam na aba **Agendamentos** ([Ver e cancelar agendamentos](help:agenda/ver-agendamentos))."
          },
          "response": []
        },
        {
          "name": "Consultar calendário",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/calendars/:calendar_id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "calendars",
                ":calendar_id"
              ],
              "variable": [
                {
                  "key": "calendar_id",
                  "value": "8001",
                  "description": "O ID do calendário (veja [Listar calendários](referencia/agenda/listar-calendarios))."
                }
              ]
            },
            "description": "Devolve um calendário pelo ID: o nome, a duração de cada agendamento, quem criou e quando. Para usar o calendário numa conversa, veja [Agendar pela conversa](help:agenda/agendar-pelo-fluxo)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Ferramentas",
      "description": "Utilitários para usar nas requisições externas dos fluxos: texto, números, URLs, QR Code, hash e distância.",
      "item": [
        {
          "name": "Formatar número",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/format_number",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "format_number"
              ]
            },
            "description": "Formata um número com as casas decimais e os separadores que você escolher: `1995.5` vira `1.995,50`. Use para mostrar um valor em reais numa mensagem.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "number",
                  "value": "1995.5",
                  "type": "text"
                },
                {
                  "key": "decimals",
                  "value": "2",
                  "type": "text"
                },
                {
                  "key": "decimal_separator",
                  "value": ",",
                  "type": "text"
                },
                {
                  "key": "thousands_separator",
                  "value": ".",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Dividir um texto em partes",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/split",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "split"
              ]
            },
            "description": "Divide um texto em partes a cada separador e devolve a lista e o total: `Camiseta,Boné,Meia` com o separador `,` vira três partes. No **Mapeamento de resposta**, `$.data[0]` é a primeira parte.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "Camiseta,Boné,Meia",
                  "type": "text"
                },
                {
                  "key": "delimiter",
                  "value": ",",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Codificar texto para URL",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/urlencode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "urlencode"
              ]
            },
            "description": "Codifica um texto para usar numa URL, no formato de formulário: o espaço vira `+`, e os acentos e os outros caracteres especiais viram `%XX`. Use no valor de um parâmetro, depois do `?`. Para `%20` no lugar do `+`, use [Codificar para URL (RFC 3986)](referencia/ferramentas/codificar-para-url-rfc-3986).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "Olá, quero o pedido PED-1001",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Decodificar texto de URL",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/urldecode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "urldecode"
              ]
            },
            "description": "Desfaz a codificação de URL: troca as sequências `%XX` pelos caracteres e o `+` por espaço. Use para ler um valor que chegou codificado, como um parâmetro de link.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "Ol%C3%A1%2C+quero+o+pedido+PED-1001",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Codificar para URL (RFC 3986)",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/rawurlencode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "rawurlencode"
              ]
            },
            "description": "Codifica um texto para URL pela RFC 3986: o espaço vira `%20`, e não `+`. Use quando o outro sistema não aceita o `+`, como num trecho do caminho da URL.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "Olá, quero o pedido PED-1001",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Decodificar de URL (RFC 3986)",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/rawurldecode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "rawurldecode"
              ]
            },
            "description": "Desfaz a codificação da RFC 3986: troca as sequências `%XX` pelos caracteres. O `+` continua `+`; para virar espaço, use [Decodificar texto de URL](referencia/ferramentas/decodificar-texto-de-url).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "S%C3%A3o%20Paulo%20-%20SP",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Gerar QR Code",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/qrcode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "qrcode"
              ]
            },
            "description": "Gera um QR Code com o texto ou o link que você mandar e devolve o endereço da imagem, para enviar como imagem numa mensagem. Para o QR Code de um fluxo, a tela tem o [Gerador de Código QR](help:ferramentas/qr-code).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "https://wa.me/5511988776655",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Converter texto para minúsculas",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/text_to_lower",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "text_to_lower"
              ]
            },
            "description": "Passa o texto para letras minúsculas. Use para padronizar um e-mail antes de comparar, salvar ou gerar um hash.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "ANA@EXEMPLO.COM.BR",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Converter texto para maiúsculas",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/text_to_upper",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "text_to_upper"
              ]
            },
            "description": "Passa o texto para letras maiúsculas. Use para padronizar códigos, como o de um cupom ou de um pedido.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "bemvindo10",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Contar os caracteres de um texto",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/text_length",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "text_length"
              ]
            },
            "description": "Conta os caracteres de um texto. Use para conferir um dado antes de seguir, como o celular com DDI e DDD, que tem 13 dígitos no Brasil.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "5511988776655",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Recortar parte de um texto",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/substring",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "substring"
              ]
            },
            "description": "Recorta um pedaço do texto: a partir da posição `offset` (o primeiro caractere é a posição 0), com `length` caracteres; sem `length`, vai até o fim. No celular `5511988776655`, o DDD está na posição 2, com 2 caracteres.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "5511988776655",
                  "type": "text"
                },
                {
                  "key": "offset",
                  "value": "2",
                  "type": "text"
                },
                {
                  "key": "length",
                  "value": "2",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Substituir um texto",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/text_replace",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "text_replace"
              ]
            },
            "description": "Troca, no texto, todas as vezes que um trecho aparece por outro: com `.` trocado por `,`, o preço `49.90` vira `49,90`. Para várias trocas de uma vez, use [Substituir vários textos](referencia/ferramentas/substituir-varios-textos).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "49.90",
                  "type": "text"
                },
                {
                  "key": "search",
                  "value": ".",
                  "type": "text"
                },
                {
                  "key": "replace",
                  "value": ",",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Substituir vários textos",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/text_replaces",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "text_replaces"
              ]
            },
            "description": "Faz várias trocas de uma vez: cada item de `search` é trocado pelo item na mesma posição de `replace`. No formulário, cada item da lista vai num par próprio, com o nome seguido de colchetes: `search[]=...&search[]=...` (veja os exemplos de código).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "text",
                  "value": "Olá, {nome}! Seu pedido {pedido} saiu para entrega.",
                  "type": "text"
                },
                {
                  "key": "search[]",
                  "value": "{nome}",
                  "type": "text"
                },
                {
                  "key": "search[]",
                  "value": "{pedido}",
                  "type": "text"
                },
                {
                  "key": "replace[]",
                  "value": "Ana",
                  "type": "text"
                },
                {
                  "key": "replace[]",
                  "value": "PED-1001",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Ler os parâmetros de uma URL",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/get_url_parameters",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "get_url_parameters"
              ]
            },
            "description": "Lê os parâmetros de uma URL (o que vem depois do `?`) e devolve cada um com o seu valor. Use para pegar a origem de quem chegou por um link com UTM, como `utm_source` e `utm_campaign`.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "url",
                  "value": "https://loja.exemplo.com.br/?utm_source=instagram&utm_campaign=black-friday&ref=ana",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Devolver o JSON enviado (eco)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/tools/echo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "echo"
              ]
            },
            "description": "Devolve, igual, o JSON que você mandar. Serve para gerar mensagens dinâmicas na [requisição externa](help:fluxos/requisicao-externa) do fluxo sem ter um servidor seu: monte no corpo o JSON de [mensagens e ações](comecar/mensagens-e-acoes), com as variáveis do contato, e a resposta traz esse JSON de volta. Veja [Requisição externa: o fluxo chama o seu sistema](webhooks/requisicao-externa-no-fluxo).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messages\": [\n    {\n      \"message\": {\n        \"text\": \"Oi, Ana! Seu pedido PED-1001 saiu para entrega.\"\n      }\n    }\n  ],\n  \"actions\": [\n    {\n      \"action\": \"add_tag\",\n      \"tag_name\": \"cliente-vip\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Gerar um hash",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/hash",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "hash"
              ]
            },
            "description": "Gera o hash de um texto com o algoritmo escolhido; sem `algo`, usa o SHA-256. Use, por exemplo, para mandar o e-mail do contato com hash SHA-256, como a API de Conversões da Meta pede (antes, passe o e-mail para minúsculas com [Converter texto para minúsculas](referencia/ferramentas/converter-texto-para-minusculas)).",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "data",
                  "value": "ana@exemplo.com.br",
                  "type": "text"
                },
                {
                  "key": "algo",
                  "value": "sha256",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Calcular a distância entre duas coordenadas",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/tools/location_distance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tools",
                "location_distance"
              ]
            },
            "description": "Calcula a distância entre dois pontos de latitude e longitude, em metros e em milhas. Use para saber se o contato está na área de entrega ou para calcular o frete a partir da localização que ele mandou ([Pedir e enviar localização](help:fluxos/localizacao)). Com uma chave da API do Google Maps em `googleMapsApiKey`, o cálculo é feito pelo Google Maps.",
            "body": {
              "mode": "urlencoded",
              "urlencoded": [
                {
                  "key": "source_latitude",
                  "value": "-23.5614",
                  "type": "text"
                },
                {
                  "key": "source_longitude",
                  "value": "-46.6559",
                  "type": "text"
                },
                {
                  "key": "destination_latitude",
                  "value": "-23.5505",
                  "type": "text"
                },
                {
                  "key": "destination_longitude",
                  "value": "-46.6333",
                  "type": "text"
                }
              ]
            }
          },
          "response": []
        }
      ]
    }
  ]
}