Zapier Integration Guide

Connect ALICE webhook events to thousands of apps through Zapier. Automate workflows when visitors check in, appointments are created, and more.

Pending validation This guide has not been validated in a live Zapier environment. Steps and screenshots may differ from the current Zapier interface.

1. Create a Webhook Subscription

Register a webhook subscription with the ALICE API. You will need a valid JWT token and the target URL from Zapier (which you will get in step 2).

Send a POST request to /api/webhooks with the event type and your Zapier webhook URL:

curl
curl -X POST https://your-api-url/api/webhooks \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
  -H "Content-Type: application/json" \
  -d '{
    "eventType": "appointment.checked_in",
    "targetUrl": "https://hooks.zapier.com/hooks/catch/123456/abcdef/",
    "description": "Notify on visitor check-in"
  }'

A successful response (HTTP 201) includes the subscription details and a secret for signature verification:

Response (201 Created)
{
  "id": 1,
  "eventType": "appointment.checked_in",
  "targetUrl": "https://hooks.zapier.com/hooks/catch/123456/abcdef/",
  "description": "Notify on visitor check-in",
  "secret": "whsec_a1b2c3d4e5f6g7h8i9j0...",
  "isActive": true
}
Important: The secret value is shown only once in this response. Copy and store it securely. You will need it if you want to verify webhook signatures.

2. Set Up a Zap with Webhooks by Zapier

Create a Zap that receives incoming webhook events from ALICE using the "Webhooks by Zapier" trigger.

  1. Open Zapier

    Navigate to https://zapier.com and sign in to your account. Click Create or + Create Zap to start a new Zap.

  2. Choose the trigger app

    In the trigger step, search for "Webhooks by Zapier" and select it. This is a built-in Zapier app (available on paid plans) that allows your Zap to receive HTTP requests.

  3. Select the trigger event

    Choose "Catch Hook" as the trigger event. This tells Zapier to listen for incoming POST requests. Click Continue.

  4. Copy the webhook URL

    Zapier generates a unique webhook URL for your Zap (e.g., https://hooks.zapier.com/hooks/catch/123456/abcdef/). Copy this URL — you will use it as the targetUrl when creating your ALICE webhook subscription (see step 1 above).

  5. Send a test event

    Before proceeding, send a test event from ALICE so Zapier can detect the payload structure. Use the test endpoint described in section 4 below, or create the ALICE webhook subscription first and send a test delivery. Zapier will parse the incoming data and make each field available for mapping in subsequent Zap steps.

  6. Add an action

    After Zapier detects the test payload, click Continue and configure your action step (e.g., send an email, create a Slack message, add a row to Google Sheets, or update a CRM record). Use the mapped ALICE fields as described in section 3 below.

Tip: If you are setting this up for the first time, start with step 2 to get the Zapier webhook URL, then go back to step 1 and create the ALICE webhook subscription using that URL as the targetUrl.

3. Map ALICE Payload Fields

After Zapier receives a test event, the ALICE webhook payload fields become available as dynamic values in your Zap actions. Here is how the ALICE fields map to common action fields.

ALICE Payload Field Zapier Label Common Action Mapping
data.first_name Data First Name Contact First Name
data.last_name Data Last Name Contact Last Name
data.email Data Email Contact Email
event Event Event Type (use in filters)
data.start_date Data Start Date Appointment Start
data.employee_id Data Employee Id Host Employee ID
data.id Data Id Appointment ID
data.end_date Data End Date Appointment End
data.directory_id Data Directory Id Directory / Location Identifier
test Test Use in a Zapier Filter to skip test deliveries

Example: Send a Slack notification on check-in

Here is how you might configure a Slack action in your Zap to send a notification when a visitor checks in:

Slack Message Template
Visitor Check-In Notification

Name: {{data__first_name}} {{data__last_name}}
Email: {{data__email}}
Appointment: {{data__start_date}} - {{data__end_date}}
Event: {{event}}
Employee ID: {{data__employee_id}}
Note: Zapier uses double underscores (__) to represent nested fields. The ALICE payload field data.first_name appears in Zapier as data__first_name.

Filtering by event type

If you subscribe to multiple ALICE event types, you can add a Filter by Zapier step to only continue the Zap for specific events:

Filter Field Condition Value
event (Text) Exactly matches appointment.checked_in

This filter will halt the Zap if the event type does not match, preventing unwanted actions from firing.

4. Test Your Integration

Use the ALICE webhook test endpoint to send a test event to your Zapier Zap and confirm everything is wired up correctly.

Send a test event

Send a POST request to the test endpoint using your subscription ID:

curl
curl -X POST https://your-api-url/api/webhooks/1/test \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

What the test payload looks like

ALICE sends a test event with "test": true so your Zap can distinguish test deliveries from real ones:

Test Payload
{
  "event": "appointment.checked_in",
  "version": "1.0",
  "timestamp": "2026-03-12T14:30:00Z",
  "delivery_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "test": true,
  "data": {
    "id": 42,
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane.smith@example.com",
    "start_date": "2026-03-12T09:00:00Z",
    "end_date": "2026-03-12T10:00:00Z",
    "directory_id": 10,
    "employee_id": 100
  }
}

Verify in Zapier

After sending the test event:

  1. Open your Zap in the Zapier editor
  2. Navigate to the Zap History tab (or go to Home > Zap History in the left sidebar)
  3. You should see a new task run corresponding to the test event
  4. Click the task to inspect the incoming data and verify the ALICE payload fields are present
  5. Confirm that the action step (e.g., Slack message, email, spreadsheet row) executed successfully
Tip: You can use a Zapier Filter step to skip test deliveries in production. Set the filter to only continue when test is false (or does not equal true).

Delivery troubleshooting

If the test event does not appear in Zapier, check the ALICE delivery log for error details:

curl
curl https://your-api-url/api/webhooks/1/deliveries \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Common issues:

Issue Cause Resolution
Zap not triggering Zap is turned off or paused Ensure the Zap is published and turned on
410 Gone response Zapier webhook URL expired or Zap deleted Create a new Zap and update the ALICE subscription targetUrl
Missing fields in Zapier Zapier did not receive an initial sample Send a test event before configuring action steps; re-test the trigger in the Zap editor
Duplicate task runs Multiple subscriptions for the same event Check GET /api/webhooks for duplicate subscriptions and deactivate extras