Things to do beforehand:
- Have your Calendly integration set up beforehand
- A campaign you will use should be created, most customers simply name the campaign they'll use "Scheduled Calendly Call"
- Let your CSM or Implementation manager know you are setting this up, since one of the webhooks required hits the Regal end point and will require your account's API key which is hidden on our backend
Setting up the journey:
- Set up the trigger
- 'Condition Type': Custom Event
- 'Event Name': Calendly Call Scheduled
- Connect to the action node 'Cancel Task'
- 'Select Cancelation Criteria': Task Type
- Select 'Outbound Call Tasks'
- Connect the node cancelling Outbound Tasks to a webhook
- Name the webhook "Set Calendly Agent As Contact Attribute"
- 'Endpoint URL': https://events.regalvoice.com/events
- 'Method': POST
- 'Custom Headers'
- 'Authorization' : [INSERT KEY - reach out to the Regal team]
- JSON Payload
-
{
"traits": {
"phone": "{{contact.contactPhone}}",
"calendlyAgentEmail": "{{event.properties.calendlyAgentEmail}}"
}
}
-
- 'Custom Headers'
- Connect the webhook node to a delay node
- 'Delay type': Delay Using Time from Property
- 'Delay Until': Triggering Event
- 'Select property name': properties.scheduledTime
- Select 'Minus' rather than 'Plus' and then set 5 minutes
- Connect the delay node to a conditional node where we'll check that the Calendly call hasn't been canceled since scheduling it
- Name the node "Call Canceled?"
- 'Condition Type': Custom Event
- 'Event Name': Calendly Call Canceled
- Click the plus sign 'Add Property Condition'
- 'Select property name': properties.calendlyEventId;
- 'Operator': Equals
- 'Property Value':
-
{{event.properties.calendlyEventId}}
- This checks whether the Canceled event ID matches the original ID scheduled, if they match then the call was canceled
- 'Operator': Equals
- Connect from the "No" on the Conditional Node to an Action node "Create Call Task"
- Select the campaign that you created, most likely "Scheduled Calendly Call"
What your journey should look like:
Configuring Routing Rules:
To ensure that the booked for the call is the agent that receives the corresponding task, create a new routing step in your Outbound Call Routing Rules.
Task Expression:
campaignInfo.friendly_id == '(numeric campaign ID)'
Agent Expression:
task.calendlyAgentEmail == worker.email
Ensure that your Calendly routing step is placed above `Quiet Hours` routing step, and that you've set the task priority higher than all other outbound call campaign.
Once configured, your routing rule step should look like this:
Next Steps:
Open a Support Ticket to have the calendlyAgentEmail property added as a task routing attribute so it will be added to tasks and referenceable in Routing Rules.
Once you receive confirmation from our Customer Experience team that the attribute has been added, you're good to go!