# Calendly

> Receba os agendamentos do Calendly num webhook de entrada da NexTags: quem agenda vira contato, com o horário num campo, e recebe um fluxo.

Endereço: https://help.nextags.com.br/integracoes/calendly/
Tipo: Integração

Atualizado em: 25/10/2026

O Calendly não tem conexão nativa com a NexTags. O caminho é o webhook de entrada: a cada agendamento, o Calendly envia os dados da pessoa para um link da NexTags, que acha ou cria o contato, salva os dados nos campos e inicia um fluxo. Do lado do Calendly, o webhook é criado pela API dele, com um token pessoal: ele não tem tela para isso. Os webhooks só funcionam nos planos pagos do Calendly; veja a [Central de Ajuda do Calendly](https://calendly.com/help/calendly-api-overview).

## O que dá para fazer

- Mandar uma mensagem para quem agendou, com o nome e o horário. Veja [Webhooks de entrada: receber dados de outro sistema](https://help.nextags.com.br/tutoriais/ferramentas/webhook-de-entrada/).
- Começar a conversa no WhatsApp com um modelo de mensagem aprovado, para quem ainda não falou com você. Veja [Modelo de mensagem do WhatsApp no fluxo](https://help.nextags.com.br/tutoriais/fluxos/modelos-no-fluxo/).
- Guardar o horário marcado e o tipo de evento em campos do contato. Veja [Criar campos personalizados](https://help.nextags.com.br/tutoriais/fluxos/campos-personalizados/).
- Criar a oportunidade no pipeline pelo fluxo que o webhook inicia. Veja [Criar e mover oportunidades pelo fluxo](https://help.nextags.com.br/tutoriais/fluxos/pipeline-no-fluxo/).

## Como conectar

### Passo 1: Crie o webhook de entrada e copie o link

Na NexTags, clique em **Ferramentas** e no cartão **Webhooks de entrada**. Clique em **Adicionar Novo**, dê um nome, como "Agendamentos do Calendly", e clique em **Continuar**. No topo do editor, clique no ícone de link para copiar o link.

![Topo do editor do webhook de entrada Lead do site, com o ícone de link e a dica Obter Link.](https://help.nextags.com.br/_img/ferr-automacao/entrada-link.webp)
*O ícone Obter Link, no topo do editor.*

1. **Obter Link**: copia o link deste webhook. Não publique o link em lugares abertos.

### Passo 2: Crie o token pessoal no Calendly

No Calendly, abra a página **Integrations** e o cartão **API & Webhooks**. Em **Personal Access Tokens**, clique em **Get a token now** (ou **Generate new token**, se já tiver um), dê um nome, clique em **Create Token** e em **Copy token**. O Calendly mostra o token uma vez só.

Tutorial oficial: [documentação do Calendly](https://developer.calendly.com/docs/authentication/how-to-authenticate-with-personal-access-tokens).

### Passo 3: Crie o webhook pela API do Calendly

Primeiro, consulte o seu usuário no Calendly. Troque `SEU_TOKEN` pelo token, sem mandar o token para ninguém:

```bash
curl https://api.calendly.com/users/me \
  --header "Authorization: Bearer SEU_TOKEN"
```

Na resposta, copie o `uri` (o seu usuário) e o `current_organization` (a sua organização). Depois, crie o webhook com o link da NexTags em `url`:

```bash
curl --request POST https://api.calendly.com/webhook_subscriptions \
  --header "Authorization: Bearer SEU_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "url": "LINK_DO_WEBHOOK_DA_NEXTAGS",
    "events": ["invitee.created"],
    "organization": "SEU_CURRENT_ORGANIZATION",
    "user": "SEU_URI",
    "scope": "user"
  }'
```

`invitee.created` é o evento de um agendamento novo. Com `"scope": "user"`, o webhook recebe só os seus agendamentos; donos e administradores da organização no Calendly podem usar `"scope": "organization"`, sem o `user`, para receber os de toda a equipe.

Tutorial oficial: [documentação do Calendly](https://developer.calendly.com/receive-data-from-scheduled-events-in-real-time-with-webhook-subscriptions).

### Passo 4: Cole um exemplo do Calendly e diga onde estão os dados

No editor do webhook, cole em **Sample JSON** um exemplo do que o Calendly envia e clique em **Load sample JSON**. Os dados da pessoa ficam dentro de `payload`. Este exemplo segue a estrutura da documentação do Calendly, resumida:

```json
{
  "event": "invitee.created",
  "payload": {
    "email": "rafael@exemplo.com.br",
    "name": "Rafael Costa",
    "questions_and_answers": [
      { "question": "Seu WhatsApp com DDD", "answer": "+5511900000000", "position": 0 }
    ],
    "scheduled_event": {
      "name": "Avaliação gratuita",
      "start_time": "2026-10-29T13:00:00.000000Z",
      "end_time": "2026-10-29T13:30:00.000000Z"
    },
    "text_reminder_number": null,
    "timezone": "America/Sao_Paulo"
  }
}
```

![Quadro Sample JSON com um exemplo do evento invitee.created do Calendly (e-mail, nome, resposta com o WhatsApp e o horário marcado), o botão Load sample JSON e o aviso Sample loaded.](https://help.nextags.com.br/_img/integracoes-1/calendly-amostra.webp)
*Um exemplo do evento invitee.created do Calendly no quadro Sample JSON.*

1. O exemplo, com o e-mail, o nome, a resposta da pergunta do WhatsApp e o horário em `scheduled_event`.
2. **Load sample JSON**: lê o exemplo.

Em **Find or create contact**, escreva onde estão o telefone, o e-mail e o nome:

![Quadro Find or create contact com os caminhos do Calendly: o WhatsApp na primeira resposta, o e-mail e o nome de quem agendou, com o resultado de cada um embaixo.](https://help.nextags.com.br/_img/integracoes-1/calendly-contato.webp)
*Os caminhos do Calendly no quadro Find or create contact.*

1. **Número de telefone**: o Calendly só manda o telefone se você pedir. Com uma pergunta de telefone no evento, use `$.payload.questions_and_answers[0].answer`: o `0` é a primeira das perguntas que você criou no evento, o `1` é a segunda, e assim por diante (o mesmo número do `position` no exemplo). Peça o número com o código do país e o DDD.
2. **Endereço de e-mail**: `$.payload.email`.
3. **Nome completo**: `$.payload.name`.

Em **Save incoming data**, guarde o horário com `$.payload.scheduled_event.start_time` e o tipo de evento com `$.payload.scheduled_event.name`. O horário vem no fuso UTC, como `2026-10-29T13:00:00.000000Z`, que é 10h no horário de Brasília. Escolha o fluxo em **Enviar Fluxo** e clique em **Salvar**.

Para conferir, faça um agendamento de teste no seu link do Calendly e procure o contato em **Contatos**. O passo a passo completo do webhook, com a lupa que escolhe os caminhos, está em [Webhooks de entrada: receber dados de outro sistema](https://help.nextags.com.br/tutoriais/ferramentas/webhook-de-entrada/).

> **Cancelamentos:**
> O Calendly também avisa os cancelamentos, com o evento `invitee.canceled`. Para tratar os cancelamentos com outro fluxo, crie um segundo webhook de entrada na NexTags e uma segunda assinatura no Calendly, com esse evento e o link do segundo webhook.

## Se não funcionou

### O Calendly recusou a criação do webhook

Confira se o seu plano do Calendly é pago e se o token foi colado inteiro, depois de `Bearer`. Confira também se o `uri` e o `current_organization` vieram da sua consulta ao `users/me`. Com `"scope": "organization"`, só donos e administradores conseguem.

### O agendamento não chegou na NexTags

Confira se o webhook está **Ativo** na lista **Webhooks de entrada** e se o link em `url` é o deste webhook. Veja [Meu webhook de entrada não recebe os dados](https://help.nextags.com.br/perguntas/integracoes/webhook-nao-recebe/).

### O contato foi criado sem telefone

O Calendly não manda o telefone sozinho. Acrescente ao evento uma pergunta de telefone e confira a posição dela no caminho, ou use `$.payload.text_reminder_number`, que só vem preenchido quando o evento do Calendly tem lembrete por mensagem de texto e a pessoa informa o número.

### O contato entrou, mas não recebeu a mensagem no WhatsApp

Se quem agendou não falou com você no WhatsApp nas últimas 24 horas, a janela está fechada: o fluxo precisa começar por um modelo de mensagem aprovado. Confira também se o telefone tem o código do país. Veja [A janela de 24 horas](https://help.nextags.com.br/tutoriais/canais/janela-de-24-horas/).

### Faça com a IA

Cole este pedido no ChatGPT ou no Claude:

```text
Quero receber os agendamentos do Calendly na NexTags com um webhook de entrada. Leia esta página: https://help.nextags.com.br/integracoes/calendly.md

Meu evento no Calendly pergunta: [liste as perguntas, na ordem]. Me diga o caminho (JSONPath) de cada dado, quais campos personalizados criar e me guie no comando curl para criar a assinatura, sem me pedir o token: eu troco o SEU_TOKEN no meu computador.
```
