Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

Calendly-kobling

Koblingsstatus: Planlagt Ikke bygget ennå. Tajo kjører ikke denne koblingen i dag.

Illustrasjon · eksempeldata

Eksempel på synkronisering

Se gjennom én oppføring

Kilde

Calendly

Koblingsstatus: Planlagt

Mål

Det andre verktøyet ditt

Koblingsstatus: Eget verktøy

KildefeltMålfeltEksempelverdi
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Utkast
  2. Se gjennom én oppføring
  3. Godkjenn denne versjonen

Status gjelder hver enkelt kobling og garanterer ikke at denne synkroniseringen er klar. Feltene er illustrative. Kontroller faktisk skjema og tillatelser før synkroniseringen kjører.

Koble Calendly til Brevo via Tajo for automatisk å synkronisere møte-invitees som kontakter, utløse e-postsekvenser basert på bookinghendelser og effektivisere salgs- og onboarding-arbeidsflytene dine.

Oversikt

EgenskapVerdi
PlattformCalendly
KategoriPlanlegging (Custom)
OppsettskompleksitetEnkel
Offisiell integrasjonNei
Synkroniserte dataHendelser, kontakter, bookinger, kanselleringer
AutentiseringsmetodeOAuth 2.0 / Personal Access Token

Funksjoner

  • Invitee-synkronisering - Opprett automatisk Brevo-kontakter fra møte-invitees
  • Booking-triggere - Utløs Brevo-automatiseringer når møter bookes
  • Håndtering av kanselleringer - Utløs re-engasjementsflyter ved kanselleringer
  • No-show-deteksjon - Oppdater kontaktstatus når invitees ikke dukker opp på møter
  • Mapping av hendelsestyper - Mapp ulike Calendly-hendelsestyper til Brevo-lister
  • Scheduling API - Bygg planlegging direkte inn i appen din uten redirects

Forutsetninger

Før du begynner, sørg for at du har:

  1. En Calendly-konto (Professional-plan eller høyere for API-tilgang)
  2. En Personal Access Token fra Calendly Integrations
  3. En Brevo-konto med API-tilgang
  4. En Tajo-konto med koblingstillatelser

Autentisering

Personal Access Token

Terminal window
# Generate at https://calendly.com/integrations/api_webhooks
export CALENDLY_ACCESS_TOKEN=your_personal_access_token
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key

OAuth 2.0

// OAuth 2.0 Authorization Code Flow
const authUrl = 'https://auth.calendly.com/oauth/authorize?' +
new URLSearchParams({
client_id: process.env.CALENDLY_CLIENT_ID,
redirect_uri: 'https://your-app.com/callback',
response_type: 'code'
});
// Exchange code for token
const tokenResponse = await fetch('https://auth.calendly.com/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
grant_type: 'authorization_code',
code: authorizationCode,
client_id: process.env.CALENDLY_CLIENT_ID,
client_secret: process.env.CALENDLY_CLIENT_SECRET,
redirect_uri: 'https://your-app.com/callback'
})
});

Konfigurasjon

Grunnleggende oppsett

connectors:
calendly:
enabled: true
access_token: "${CALENDLY_ACCESS_TOKEN}"
sync:
contacts: true
events: true
cancellations: true
event_mapping:
discovery_call:
list_id: 10
event_type_uri: "https://api.calendly.com/event_types/abc123"
demo:
list_id: 11
event_type_uri: "https://api.calendly.com/event_types/xyz789"
webhook:
signing_key: "${CALENDLY_WEBHOOK_SIGNING_KEY}"

Feltmapping

field_mapping:
email: email
name: FIRSTNAME
questions_and_answers:
company: COMPANY
role: JOB_TITLE
phone: SMS
event_type_name: CALENDLY_EVENT_TYPE
scheduled_at: MEETING_DATE
status: BOOKING_STATUS

API-endepunkter

EndepunktMetodeBeskrivelse
https://api.calendly.com/users/meGETHent gjeldende bruker
https://api.calendly.com/event_typesGETList hendelsestyper
https://api.calendly.com/scheduled_eventsGETList planlagte hendelser
https://api.calendly.com/scheduled_events/{uuid}GETHent en planlagt hendelse
https://api.calendly.com/scheduled_events/{uuid}/inviteesGETList invitees
https://api.calendly.com/scheduling_linksPOSTOpprett planleggingslenke
https://api.calendly.com/webhook_subscriptionsPOSTOpprett webhook
https://api.calendly.com/webhook_subscriptionsGETList webhooks
https://api.calendly.com/invitee_no_shows/{uuid}GETHent no-show-status

Kodeeksempler

Initialiser kobling

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('calendly', {
accessToken: process.env.CALENDLY_ACCESS_TOKEN
});

List planlagte hendelser

// Retrieve scheduled events
const response = await fetch(
'https://api.calendly.com/scheduled_events?' +
new URLSearchParams({
user: 'https://api.calendly.com/users/YOUR_USER_ID',
min_start_time: '2024-01-01T00:00:00Z',
max_start_time: '2024-12-31T23:59:59Z',
status: 'active',
count: 100
}),
{
headers: {
'Authorization': `Bearer ${process.env.CALENDLY_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
}
}
);
const events = await response.json();

Synkroniser invitees til Brevo

// Get invitees for a scheduled event and sync to Brevo
const inviteesResponse = await fetch(
`https://api.calendly.com/scheduled_events/${eventUuid}/invitees`,
{
headers: {
'Authorization': `Bearer ${process.env.CALENDLY_ACCESS_TOKEN}`
}
}
);
const { collection } = await inviteesResponse.json();
for (const invitee of collection) {
await tajo.contacts.sync({
email: invitee.email,
attributes: {
FIRSTNAME: invitee.name,
CALENDLY_EVENT_TYPE: invitee.event,
MEETING_DATE: invitee.created_at,
BOOKING_STATUS: invitee.status
},
listIds: [10]
});
}

Sett opp webhook-abonnementer

// Subscribe to Calendly events
const webhook = await fetch(
'https://api.calendly.com/webhook_subscriptions',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.CALENDLY_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://api.example.com/webhooks/calendly',
events: [
'invitee.created',
'invitee.canceled',
'invitee_no_show.created'
],
organization: 'https://api.calendly.com/organizations/YOUR_ORG_ID',
scope: 'organization',
signing_key: process.env.CALENDLY_WEBHOOK_SIGNING_KEY
})
}
);

Caution

Adressen example.com ovenfor er en plassholder til Tajo-endepunktet er tilgjengelig.

Håndter webhook-hendelser

app.post('/webhooks/calendly', async (req, res) => {
// Verify webhook signature
const signature = req.headers['calendly-webhook-signature'];
const isValid = verifyCalendlySignature(
req.rawBody, signature, process.env.CALENDLY_WEBHOOK_SIGNING_KEY
);
if (!isValid) return res.status(401).send('Unauthorized');
const { event, payload } = req.body;
switch (event) {
case 'invitee.created':
await tajo.contacts.sync({
email: payload.email,
attributes: { BOOKING_STATUS: 'booked' },
listIds: [10]
});
break;
case 'invitee.canceled':
await tajo.contacts.update(payload.email, {
attributes: { BOOKING_STATUS: 'cancelled' }
});
break;
case 'invitee_no_show.created':
await tajo.contacts.update(payload.email, {
attributes: { BOOKING_STATUS: 'no_show' }
});
break;
}
res.status(200).send('OK');
});

Hastighetsgrenser

RessursGrenseMerknader
API-forespørsler6 000/minOrganisasjonsomfattende grense
Webhook-abonnementer30 per organisasjonPå tvers av alle hendelsestyper
PlanleggingslenkerUbegrensetIngen per-minutt-grense

Paginering

Calendly API-responser bruker cursor-basert paginering. Bruk next_page_token fra pagination-objektet for å hente flere resultater. Standard sidestørrelse er 20 elementer, med maksimalt 100.

Feilsøking

ProblemÅrsakLøsning
Webhook ikke mottattFeil scopeBruk organization-scope for webhooks
401 UnauthorizedToken utløptGenerer ny token eller oppdater OAuth-token
Manglende invitee-dataSpørsmål ikke konfigurertLegg til egendefinerte spørsmål til hendelsestype
Dupliserte kontakterIngen dedup-logikkBruk e-post som unik identifikator for upserts
Hastighetsgrense 429For mange forespørslerImplementer backoff og batchfordeling av forespørsler

Feilsøkingsmodus

connectors:
calendly:
debug: true
log_level: verbose
log_webhooks: true

Beste praksis

  1. Bruk webhooks - Abonner på invitee.created og invitee.canceled for sanntidssynkronisering
  2. Legg til egendefinerte spørsmål - Samle inn selskap-, rolle- og telefondata for rikere kontaktprofiler
  3. Mapp hendelsestyper - Tildel ulike Brevo-lister per Calendly-hendelsestype
  4. Håndter no-shows - Spor no-shows for å justere lead-scoring og oppfølgingssekvenser
  5. Bruk planleggingslenker - Generer unike planleggingslenker for personaliserte bookingopplevelser
  6. Sett organisasjonsscope - Bruk org-nivå-webhooks for å fange hendelser fra alle teammedlemmer

Sikkerhet

  • OAuth 2.0 - Scopet tokenbasert autentisering
  • Webhook-signaturer - HMAC-signaturvalidering for innkommende webhooks
  • Kun HTTPS - Alle API-endepunkter krever TLS-kryptering
  • Token-utløp - OAuth-tokens utløper og krever refresh-flyter
  • Minimale scopes - Be kun om nødvendige OAuth-scopes
  • Sikker lagring - Lagre tokens i miljøvariabler eller secret managers

Relaterte ressurser

Be om tidlig tilgang

Skriv inn fornavn og e-postadresse på jobb. Vi sender deg en lenke for å bekrefte forespørselen om tilgang til Tajo.

AI-assistent

Hei! Spør meg om dokumentasjonen.

Denne siden som Markdown: calendly.md

Laster inn Markdown …
Åpne i Claude Åpne i ChatGPT