---
title: "Conector Zendesk"
description: "Guia completo de integração do Zendesk para sincronizar tickets, usuários, organizações e eventos de suporte com o Brevo via Tajo."
url: https://tajo.io/pt/docs/connectors/support/zendesk/
markdown: https://tajo.io/pt/docs/connectors/support/zendesk.md
lang: pt-BR
robots: noindex
---

Solicite acesso antecipado

Indique o seu nome e endereço de e-mail profissional. Enviaremos um link para confirmar o seu pedido de acesso ao Tajo.

# Conector Zendesk

Status do conector: Planejado Ainda não construído. O Tajo não executa este conector hoje.

| Campo de origem | Campo de destino | Valor de exemplo |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conecte sua instância do Zendesk Support ao Brevo via Tajo para obter dados de suporte ao cliente unificados, segmentação baseada em tickets, pontuação de satisfação e automação de marketing disparada por suporte.

## Visão geral

| Propriedade | Valor |
| --- | --- |
| **Plataforma** | Zendesk |
| **Categoria** | Suporte |
| **Complexidade de configuração** | Média |
| **Integração oficial** | Não |
| **Dados sincronizados** | Tickets, Usuários, Organizações, Eventos |
| **URL base da API** | `https://{subdomain}.zendesk.com/api/v2` |

## Recursos

- **Sincronização de usuários** - Sincronize end-users e agentes do Zendesk com contatos do Brevo
- **Rastreamento de tickets** - Sincronize dados de tickets para segmentação de marketing consciente do suporte
- **Mapeamento de organizações** - Associe contatos com organizações para workflows B2B
- **Pontuações de satisfação** - Sincronize dados CSAT e NPS como atributos do Brevo
- **Eventos de ticket** - Rastreie criação, resolução e escalação de tickets para gatilhos de automação
- **Integração com central de ajuda** - Rastreie visualizações de artigos e comportamento de busca
- **Suporte multicanal** - Sincronize dados de canais de e-mail, chat, voz e mensageria
- **Campos personalizados** - Mapeie campos personalizados de tickets e usuários do Zendesk para o Brevo

## Pré-requisitos

Antes de começar, certifique-se de ter:

1. Uma conta Zendesk Support (Team, Professional ou Enterprise)
2. Acesso de admin à sua instância do Zendesk
3. Token de API ou app OAuth configurado
4. Uma conta Brevo com acesso à API
5. Uma conta Tajo

## Autenticação

### Autenticação por token de API

Use autenticação por e-mail/token para configuração rápida.

```bash
curl https://{subdomain}.zendesk.com/api/v2/users.json \
  -u {email}/token:{api_token} \
  -H "Content-Type: application/json"
```

Gere um token de API em Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

### OAuth 2.0

Use OAuth para integrações multi-instância com acesso delegado de usuário.

```bash
# Authorization URL
https://{subdomain}.zendesk.com/oauth/authorizations/new?
  response_type=code&
  client_id={client_id}&
  redirect_uri={redirect_uri}&
  scope=read%20write
```

#### Escopos necessários

```
read          # Read access to all resources
write         # Write access to all resources
tickets:read  # Read tickets (granular)
users:read    # Read users (granular)
organizations:read  # Read organizations (granular)
```

## Configuração

### Configuração básica

```yaml
connectors:
  zendesk:
    enabled: true
    subdomain: "yourcompany"
    auth:
      email: "admin@yourcompany.com"
      api_token: "${ZENDESK_API_TOKEN}"

    # Data sync options
    sync:
      users: true
      tickets: true
      organizations: true
      satisfaction_ratings: true

    # Brevo list assignment
    lists:
      all_customers: 30
      active_tickets: 31
      satisfied_customers: 32
```

### Mapeamento de campos

Mapeie campos de usuário do Zendesk para atributos de contato do Brevo:

#### Default Mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Endereço de e-mail do usuário (identificador único) |
| `name` optional | string | Nome completo, dividido em FIRSTNAME/LASTNAME |
| `phone` optional | string | Mapeia para o atributo SMS para WhatsApp/SMS |
| `organization_id` optional | integer | Organização associada para mapeamento B2B |
| `role` optional | string | Função do usuário (end-user, agent, admin) |
| `tags` optional | array | Tags de usuário do Zendesk |
| `ticket_restriction` optional | string | Nível de acesso a tickets |
| `custom_fields` optional | object | Valores de campos personalizados do usuário |

#### Mapeamento de campos personalizados

```yaml
field_mapping:
  # Standard fields
  email: email
  name: FULLNAME
  phone: SMS

  # Support metrics
  open_tickets: OPEN_TICKETS
  total_tickets: TOTAL_TICKETS
  avg_satisfaction: CSAT_SCORE
  last_ticket_date: LAST_SUPPORT_DATE

  # Organization fields
  organization.name: COMPANY_NAME
  organization.tags: COMPANY_TAGS

  # Custom fields
  user_fields.customer_type: CUSTOMER_TYPE
  user_fields.account_tier: ACCOUNT_TIER
```

## Endpoints da API

### API de Ticketing

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/api/v2/tickets` | Listar tickets |
| `POST` | `/api/v2/tickets` | Criar um ticket |
| `PUT` | `/api/v2/tickets/{id}` | Atualizar um ticket |
| `GET` | `/api/v2/tickets/{id}` | Exibir um ticket |
| `GET` | `/api/v2/search.json?query={query}` | Buscar tickets |

### API de Usuários

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/api/v2/users` | Listar usuários |
| `POST` | `/api/v2/users` | Criar um usuário |
| `PUT` | `/api/v2/users/{id}` | Atualizar um usuário |
| `GET` | `/api/v2/users/{id}` | Exibir um usuário |
| `GET` | `/api/v2/users/search.json?query={query}` | Buscar usuários |

### API de Organizações

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/api/v2/organizations` | Listar organizações |
| `POST` | `/api/v2/organizations` | Criar uma organização |
| `GET` | `/api/v2/organizations/{id}/users` | Listar membros da organização |

### API de Avaliações de satisfação

| Método | Endpoint | Descrição |
| --- | --- | --- |
| `GET` | `/api/v2/satisfaction_ratings` | Listar avaliações de satisfação |
| `GET` | `/api/v2/satisfaction_ratings/{id}` | Exibir uma avaliação |

## Eventos

### Eventos de ticket

| Evento | Gatilho | Caso de uso |
| --- | --- | --- |
| `ticket.created` | Novo ticket enviado | Confirmação de suporte |
| `ticket.updated` | Status do ticket alterado | Notificação de status |
| `ticket.solved` | Ticket marcado como resolvido | Disparo de pesquisa CSAT |
| `ticket.reopened` | Ticket resolvido reaberto | Alerta de escalação |

### Eventos de usuário

| Evento | Gatilho | Caso de uso |
| --- | --- | --- |
| `user.created` | Novo usuário registrado | Boas-vindas ao suporte |
| `user.updated` | Perfil de usuário alterado | Sincronização de atributos |
| `user.merged` | Usuários mesclados | Desduplicação |

### Eventos de satisfação

| Evento | Gatilho | Caso de uso |
| --- | --- | --- |
| `satisfaction_rating.created` | CSAT enviado | Processamento de feedback |
| `satisfaction_rating.bad` | Avaliação negativa | Ação de recuperação |
| `satisfaction_rating.good` | Avaliação positiva | Campanhas de advocacy |

## Exemplos de código

### Inicializar o conector

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect Zendesk
await tajo.connectors.connect('zendesk', {
  subdomain: 'yourcompany',
  email: 'admin@yourcompany.com',
  apiToken: process.env.ZENDESK_API_TOKEN
});
```

### Sincronizar usuários e tickets

```javascript
// Full sync of users and ticket data
await tajo.connectors.sync('zendesk', {
  type: 'full',
  resources: ['users', 'tickets', 'organizations'],
  since: '2023-01-01'
});

// Check sync status
const status = await tajo.connectors.status('zendesk');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   usersSynced: 8400,
//   ticketsSynced: 34200,
//   organizationsSynced: 1200
// }
```

### Tratar webhooks do Zendesk

```javascript
app.post('/webhooks/zendesk', async (req, res) => {
  const signature = req.get('X-Zendesk-Webhook-Signature');

  // Verify webhook signature
  if (!verifyZendeskSignature(req.body, signature)) {
    return res.status(401).send('Unauthorized');
  }

  await tajo.connectors.handleWebhook('zendesk', {
    type: req.body.type,
    ticketId: req.body.ticket_id,
    userId: req.body.user_id,
    payload: req.body
  });

  res.status(200).send('OK');
});
```

## Limites de taxa

Os limites de taxa do Zendesk variam conforme o plano:

| Plano | Limite de taxa | Detalhes |
| --- | --- | --- |
| Team | 200 requisições/minuto | Por token de API |
| Professional | 400 requisições/minuto | Por token de API |
| Enterprise | 700 requisições/minuto | Por token de API |
| High Volume Add-on | 2.500 requisições/minuto | Por token de API |

Limites adicionais:

- **API de busca**: 6 requisições/minuto para anônimo, 100/minuto para autenticado
- **Exportações incrementais**: 10 requisições/minuto
- **API em lote**: 100 registros por requisição em lote
- **Entrega de webhook**: Retry automático com backoff exponencial

Cabeçalhos de limite de taxa

Monitore os cabeçalhos `X-Rate-Limit-Remaining` e `Retry-After` para gerenciar o uso da sua API.

## Solução de problemas

### Problemas comuns

| Problema | Causa | Solução |
| --- | --- | --- |
| 401 Unauthorized | Token de API inválido | Regere o token em Zendesk Admin |
| 403 Forbidden | Permissões insuficientes | Verifique os requisitos de função de agente ou admin |
| Usuário não sincronizado | Usuário é um agente, não end-user | Filtre por função na configuração de sincronização |
| Webhook não recebido | Trigger/target não configurado | Configure o target de webhook em Zendesk Admin |
| Busca retorna vazio | Atraso na indexação | Aguarde 1-2 minutos para atualização do índice de busca |

### Modo de depuração

Habilite logs detalhados:

```yaml
connectors:
  zendesk:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Testar conexão

```bash
tajo connectors test zendesk
# ✓ API connection successful
# ✓ Users readable
# ✓ Tickets readable
# ✓ Organizations readable
# ✓ Webhooks configured
```

## Melhores práticas

1. **Use exportações incrementais** - Use a API incremental para sincronização de dados em larga escala
2. **Filtre apenas end-users** - Exclua agentes e admins da sincronização de contatos do Brevo
3. **Sincronize dados CSAT** - Use pontuações de satisfação para segmentação de saúde do cliente
4. **Mapeie organizações** - Aproveite dados de organização para campanhas de marketing B2B
5. **Implemente retries de webhook** - Trate falhas temporárias com elegância
6. **Use side-loading** - Inclua registros relacionados nas respostas da API para reduzir a contagem de requisições

## Segurança

- **Autenticação por token de API** - Acesso baseado em token vinculado ao e-mail do admin
- **OAuth 2.0** - Acesso delegado baseado em token com controles de escopo
- **Assinatura de webhook** - Verificação de assinatura HMAC para payloads de webhook
- **Criptografia TLS** - Toda comunicação com a API é criptografada via HTTPS
- **Whitelisting de IP** - Restrinja o acesso à API por faixa de IP

## Recursos relacionados

- [Documentação da API do Zendesk](https://developer.zendesk.com/api-reference)
- [Guia de Webhooks do Zendesk](https://developer.zendesk.com/api-reference/webhooks/introduction/)
- [Conector Intercom](https://tajo.io/pt/docs/connectors/support/intercom)
- [Skill de sincronização de clientes](https://tajo.io/pt/docs/skills/data-sync/customer-sync)
- [API de contatos do Brevo](https://tajo.io/pt/docs/contact-management)
