Create Apex controller to receive webhook payload
@RestResource(urlMapping='/fe92da7d')
global class CalendlyWebhookController {
@HttpPost
global static void doPost() {
String signingKey = 'YOUR_WEBHOOK_SIGNING_KEY';
String requestBody = RestContext.request.requestBody.toString();
String webhookSignature = RestContext.request.headers.get('Calendly-Webhook-Signature');
CalendlyApi.VerifyWebhookResult result = CalendlyApi.verifyWebhookSignature(webhookSignature, signingKey, requestBody);
if (!result.isValid) {
RestContext.response.responseBody = Blob.valueOf(result.errorMessage);
RestContext.response.statusCode = 403;
} else {
JSONParser parser = System.JSON.createParser(requestBody);
CalendlyApi.WebhookPayload webhookPayload = (CalendlyApi.WebhookPayload) parser.readValueAs(CalendlyApi.WebhookPayload.class);
System.debug(webhookPayload.event + ' event received!');
}
}
}
Last updated
Was this helpful?