Chamados de suporte (MCP)
- Como abrir e acompanhar chamados de suporte da AutoTalk a partir de um assistente de IA
- Como funcionam anexos, markdown e prioridade
- O ciclo de vida do chamado e quais transições você mesmo pode fazer
Seu assistente pode abrir chamados com a equipe da AutoTalk em seu nome, acompanhar a conversa e encerrar o assunto — sem que você saia do editor. Isso é útil justamente quando você já está ali: o assistente tem em mãos a requisição que falhou, a mensagem de erro e a captura de tela, então o chamado chega com os detalhes que o suporte teria que pedir depois.
create_support_ticket escreve na fila de suporte da AutoTalk. Para falar com os seus usuários finais, use send_message — veja Servidores MCP.
Pré-requisitos
O mesmo token de API e o mesmo endpoint MCP de qualquer outra ferramenta — não há nada extra para habilitar.
As ferramentas
| Ferramenta | O que faz |
|---|---|
create_support_ticket | Abre um chamado. subject, body e, opcionalmente, category, priority, attachments, requesterUserId |
reply_to_support_ticket | Adiciona sua resposta ao chamado e notifica a equipe de suporte |
get_support_ticket | Retorna um chamado com todo o histórico de respostas |
list_support_tickets | Lista seus chamados, com atividade mais recente primeiro. Opcionais: status, page, limit (padrão 20, máximo 50) |
resolve_support_ticket | Marca o chamado como resolvido porque o problema foi corrigido |
reopen_support_ticket | Reabre um chamado resolvido quando o problema volta |
Todas as ferramentas são restritas à sua própria empresa. Um chamado de terceiros simplesmente aparece como ticket_not_found.
Abrindo um chamado
Peça em linguagem natural — o assistente preenche o resto:
Abra um chamado técnico de prioridade alta sobre o canal do Telegram perdendo mensagens desde hoje de manhã, e anexe a captura de tela que acabei de tirar.
O body é markdown, e é renderizado como markdown na tela do chamado e no e-mail de notificação. Listas, code, negrito e links são preservados, então cole o payload que falhou em um bloco de código em vez de espremê-lo em uma frase.
{
"subject": "Canal do Telegram parou de entregar mensagens recebidas",
"body": "Desde ~09:00 UTC de hoje, as mensagens recebidas param no webhook.\n\n- Canal: `tg-main`\n- Última mensagem entregue: 09:04 UTC\n- O envio continua funcionando\n\nResposta do webhook:\n\n```\n502 Bad Gateway\n```",
"category": "technical",
"priority": "high"
}
category aceita billing, technical, account, feature_request ou other — o padrão é other. Um valor não reconhecido cai no padrão em vez de fazer a chamada falhar.
Anexos
create_support_ticket aceita até 6 anexos como referências de armazenamento:
"attachments": [{ "bucket": "autotalk-prod", "fullPath": "companies/<id>/api/images/mcp_upload/<id>.png" }]
Obtenha essas referências com upload_file_inline, ou com begin_file_upload + complete_file_upload — o mesmo fluxo descrito em Enviando arquivos. Uma captura da tela quebrada costuma resolver um chamado mais rápido do que parágrafos descrevendo-a.
As referências são validadas contra o prefixo de armazenamento da sua própria empresa. Um caminho pertencente a outro cliente é descartado do chamado em vez de anexado — então um anexo que some sem aviso normalmente é um caminho da empresa errada.
Anexos são aceitos na abertura do chamado. Para adicionar um a um chamado existente, envie o arquivo e inclua a referência como link no corpo de uma resposta.
De quem é o chamado
O /v1 autentica uma empresa, não uma pessoa, então um chamado aberto via MCP é atribuído por padrão ao dono da empresa.
Para atribuí-lo a alguém específico do time, informe requesterUserId. Esse usuário precisa pertencer à sua empresa — caso contrário a chamada falha com requester_not_in_company, o que é proposital: impede que um chamado seja aberto em nome de outra pessoa.
Prioridade e prazos de resposta
priority define o prazo de resposta que o suporte busca cumprir:
| Prioridade | Prazo |
|---|---|
urgent | 2 horas |
high | 8 horas |
normal | 24 horas (padrão) |
low | 72 horas |
São prazos corridos, contados a partir do momento em que a bola está com o suporte — quando você abre o chamado e, de novo, a cada resposta sua. Reserve urgent para quando o suporte realmente parou; inflar a prioridade não acelera nada.
Ciclo de vida do chamado
| Status | Significado |
|---|---|
open | Aberto, ainda não assumido |
pending_agent | Aguardando a AutoTalk |
pending_customer | Aguardando você |
resolved | Resolvido — reversível |
closed | Encerrado em definitivo |
O que você mesmo pode fazer:
- Responder a qualquer momento, exceto em um chamado
closed. Responder a um chamadoresolvedo reabre, então você não precisa dereopen_support_ticketsó para dizer "voltou a acontecer". - Resolver a partir de
open,pending_agentoupending_customer. É a forma elegante de encerrar quando você mesmo resolveu — evita que o suporte continue investigando um problema que não existe mais. - Reabrir somente a partir de
resolved. closedé definitivo. Abra um novo chamado; se tentar responder, você recebeticket_closed.
Por que não usar create_document?
support_tickets é somente leitura para clientes nas ferramentas genéricas de documento, e isso é intencional. Um chamado escrito diretamente ficaria sem solicitante, sem prazo de resposta e sem notificação para a equipe — ficaria no banco sem nunca chegar a uma pessoa. As ferramentas acima executam o mesmo caminho de código do formulário de suporte no painel, então um chamado aberto do seu editor é indistinguível de um aberto no aplicativo.
Você ainda pode ler chamados com query_documents; support_tickets é um slug reservado, portanto não pode ser usado como nome de tipo personalizado.
Erros
| Erro | Significado |
|---|---|
missing_params | subject ou body veio vazio |
invalid_ticket_id | Id de chamado inválido |
ticket_not_found | Não existe esse chamado na sua empresa |
ticket_closed | Não é possível responder a um chamado encerrado — abra um novo |
ticket_not_resolvable | Já está resolvido ou encerrado |
ticket_not_reopenable | Só um chamado resolved pode ser reaberto |
requester_not_in_company | O requesterUserId não pertence à sua empresa |
invalid_requester_user_id | O requesterUserId não é um id de usuário válido |
no_requester_available | Não foi possível identificar o dono da empresa para atribuir o chamado |