Skip to main content
This guide shows you how to run customizable email sequences with Customer.io and Calendly when leads submit your Surface form—whether they complete it or drop off partway through. The sequence automatically exits when a lead books a meeting, so you never over-email someone who has already scheduled a call.

How It Works

1

Form submission

A lead submits your Surface form (partial or completed). Surface sends a webhook to the appropriate Customer.io URL based on the trigger.
2

Person & event

Two webhook-triggered campaigns in Customer.io (one for partial, one for completed) create or update the person and add the appropriate event.
3

Email sequence

An event-triggered campaign starts a customizable follow-up email sequence with delays between each email.
4

Meeting check

Before each follow-up (after the first), a webhook checks the Calendly API. If the lead has booked a meeting, the campaign exits. Otherwise, it continues.

Prerequisites

Before you begin, make sure you have:
  • A Surface account with a form that supports partial submissions (e.g., multi-step form with email capture)
  • A Customer.io account with Campaigns and Journeys access
  • A Calendly account with API access (Personal Access Token or OAuth)
  • Your Calendly event type URI for the meeting type you want to check

Setup Steps

Campaign Flow Diagram