Calendly Payload Doesn’t Refresh Properly

Hello community,

I really need your help. I’m building a customized CRM using n8n, calendly and gsheets. Everything works fine, excepted the answers and questions data of the payload.

When someone reschedules an appointment, the payload is not being refreshed properly. It always returns the entries of the previous event instead of the new one (in answers and questions - the other stuff is working fine).

For example:
Appointment created → first reschedule → second reschedule…->

  • First reschedule provides the answers of “appointment created”

  • Second reschedule provides the answers of “ first reschedule”

  • Third reschedule provides the answers of “second reschedule”

Google Calendar receives the correct data.

Is there a fix? Do I have to use the Data of Google Calendar and merge those to the payload of calendly?

I hope this post is not confusing :sweat_smile:

BTW: I’m so in love with n8n :heart: - it’s the best automation software ever!

Welcome to the community @Niels!

Sorry can sadly currently not follow what your problem is exactly. Can you maybe explain some more or best build a very simple example workflow which shows the problem?

And thanks for the kind words! Always great to hear if somebody really enjoys using n8n!

1 Like

Thank you @jan!

Alright I’ll create some samples to show the problem more precisely.

Cheers

Great, thanks a lot!

1 Like

Hello @jan,

I spent several hours reviewing my workflows and finally found the problem!

The calendly node contains two trigger:

  1. invitee.created
  2. invitee.canceled

Calendy basically has four different types of actions:

  1. Invitee submits a form (invitee.created)
  2. Invitee changes submitted entries (invitee.canceled,invitee.created)
  3. Invitee reschedules an appointment (invitee.canceled,invitee.created)
  4. Invitee cancels an appointment (invitee.canceled)

Problem:
When it comes to rescheduling an appointment, the trigger fires (invitee.canceled and invitee.created) almost simultaneously. That’s the reason I couldn’t see the latest (invitee.created) in the payload, ‘cause the webhook is just able to record the first event, in this case (invitee.canceled).

Solution:
invitee.created has to be used for rescheduled appointments. There has to be a IF node right behind the calendy trigger, looking for payload.old_invitee.is_reschedule=true to split the flow into “new” and “rescheduled” appointments.

Note: The actions containing invitee.canceled have to be handled in the same way. Split the canceled flow with a IF node, looking for payload.invitee.is_reschedule=true. (You don’t want rescheduled appointments to be mixed up with canceled ones).

Workflow

(Example for new and rescheduled appointments in combination with gsheets and multiple tabs in one sheet. I´m using a script in gsheet to switch data between different tabs)

Use cases:

– Send new appointments to a google sheet.
– Update appointments in google sheet.

  • Update reschedules (date, time)
  • Change entries (phone number, answers…)
  • Set canceled (mark and record cancel reason)

I hope this will save time for other n8n users. Maybe it’s useful for the calendly use cases or documentation. :smiley: