# MANUAL TÉCNICO - API E INTEGRAÇÕES - ZAMMAD **Código:** ITGENG 0002/26 | **Classificação:** INTERNO **Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}} ## 1. HISTÓRICO DE REVISÃO | Data | Versão | Descrição | Autor | | :--- | :--- | :--- | :--- | | {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves | ## 2. OBJETIVO Utilizar a REST API do Zammad para integrações com sistemas externos (CRM, ERP) e configurar Webhooks de saída. ## 3. PRÉ-REQUISITOS * [ ] Token de Acesso (Gerado no Perfil do Usuário). * [ ] Conhecimento de JSON/HTTP ou `curl`. ## 4. PASSO A PASSO (EXECUÇÃO) ### Etapa 1: Gerar Token de Acesso 1. Clique no seu Avatar > **Perfil** > **Token de Acesso**. 2. Clique em **Criar Token**. 3. Nome: `Integracao ERP`. 4. Permissões: Marque apenas o necessário (ex: `ticket.create`, `user.check`). 5. **Copie o Token agora.** Ele não será mostrado novamente. ### Etapa 2: Usar a API (Exemplos) **Endpoint Base:** `https://seu-zammad.com/api/v1` **A. Criar um Ticket (CURL)** ```bash curl -X POST -H "Authorization: Token token=SEU_TOKEN" \ -H "Content-Type: application/json" \ --data '{ "title": "Ajuda com Impressora", "group": "Service Desk", "customer": "email@cliente.com", "article": { "subject": "Socorro", "body": "Impressora pegou fogo", "type": "note", "internal": false } }' \ https://zammad.local/api/v1/tickets ``` **B. Buscar Usuário por Email** ```bash curl -H "Authorization: Token token=SEU_TOKEN" \ https://zammad.local/api/v1/users/search?query=email:joao@itguys.com ``` ### Etapa 3: Webhooks (Saída) Notificar sistema externo (ex: Slack, Discord, n8n) quando algo acontece no Zammad. 1. Acesse **Admin** > **Gerenciar** > **Gatilhos**. 2. Crie um novo Gatilho. 3. **Condição:** (ex: Ticket Priority mudou para 3 High). 4. **Ação:** `Webhook`. 5. **Endpoint:** URL do seu n8n/Slack. 6. **Método:** `POST`. 7. **Custom Payload (JSON):** ```json { "ticket_id": "#{ticket.id}", "title": "#{ticket.title}", "state": "#{ticket.state}" } ``` ## 5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING) !!! warning "Pânico: Integração Quebrou" Erros de Autenticação e Payload. **Problema 1: Erro 401 Unauthorized** * **Causa:** Token inválido ou cabeçalho mal formatado. * **Solução:** O header deve ser EXATAMENTE `Authorization: Token token=XYZ`. Cuidado com espaços extras. **Problema 2: Erro 422 Unprocessable Entity** * **Causa:** JSON inválido ou campo obrigatório faltando (ex: `group` incorreto). * **Solução:** Verifique se o nome do `group` existe exatamente como escrito. **Problema 3: Rate Limiting** * **Nota:** O Zammad não documenta um rate limit fixo, mas abusos travam o Webserver. Use intervalos de 1s entre requests em scripts de lote. ## 6. DADOS TÉCNICOS | Recurso | Info | | :--- | :--- | | **Doc Oficial** | `docs.zammad.org/en/latest/api/intro.html` | | **Auth** | Bearer Token ou HTTP Basic (User/Pass). | | **Paginação** | Parâmetros `?page=1&per_page=10`. | ## 7. VALIDAÇÃO FINAL - [ ] O comando CURL de teste criou um ticket? - [ ] O Webhook disparou para o endpoint de teste (Use `webhook.site` para testar)?