en

Connect Crisphive to Zapier

By the end of this guide your Zaps will book and confirm jobs in Crisphive from any form, CRM or spreadsheet, and start the moment a job is booked, completed or rescheduled — with every field mapped correctly.

Zapier is a service that connects apps without code: a Zap starts on a trigger (something happens in one app) and runs actions (it does something in another). Crisphive is a field operations platform: constraint-based scheduling on a deterministic solver that books each job and assigns the right technician automatically — and it is manageable from Claude or ChatGPT too. The Crisphive app for Zapier puts both together.

To add the Crisphive app to your Zapier account, email support@crisphive.com and we’ll send you the link.

What you can do

TypeName in ZapierWhat it does
Trigger (instant)New CustomerStarts the moment a customer is added in the Crisphive dashboard or through the API. A customer that Crisphive creates by itself while booking a job (website widget, phone agent, Book Job) does not start it — use New Job for those. Delivers the customer.
Trigger (instant)New JobStarts when a job is booked, from any channel (dashboard, website widget, phone agent, API, another Zap). Delivers the full job.
Trigger (instant)Job CompletedStarts when a technician (or the office) completes a job. Delivers the full job.
Trigger (instant)Job RescheduledStarts when a job moves to a new time. Delivers the full job.
Trigger (instant)New EventStarts on any Crisphive event you pick from a live list: job confirmed, assigned, archived, priority changed, customer updated, technician created, and more.
SearchFind Customer by PhoneFinds a customer by exact phone number — for example to greet or route a returning caller differently.
ActionBook JobBooks a job and confirms it at the time you give, in one step. Crisphive picks the technician automatically.

“Instant” means Crisphive pushes the event to Zapier the moment it happens — there is no 15-minute polling delay. Under the hood each trigger is a webhook: a message Crisphive sends to a web address Zapier gives it. Zapier creates that webhook when you turn the Zap on and deletes it when you turn the Zap off. Every delivery is signed, and the app checks the signature, so a forged request cannot start your Zap.

Before you start

  • A Zapier account. On Zapier’s Free plan a Zap can have only one action step; a Zap with more steps — including a Formatter step, a search, a filter or paths — needs a paid plan, and filters, paths and lookup tables need Professional or higher. Most recipes below have several steps, so check your plan and its tasks per month.
  • A Crisphive account with a business. You sign in with your email and a one-time code; there is no password.
  • The right Crisphive role. The connection acts as you and can only do what your role allows. Turning on a trigger needs Developer access (permission developer_manage_api_keys), which by default only the business Owner has. Book Job needs job_create and job_manage; Find Customer by Phone needs customers_view. The simplest set-up: the Owner connects.
  • The link that adds the Crisphive app to your Zapier account (see the note above).
  • A default duration on every job type the Zap will book (Crisphive → Settings → Job Types). An automation cannot know how long a repair takes. The default job type, “General”, already has one (60 minutes).
  • Working hours, technicians and service areas set up in Crisphive. Book Job only confirms a time when a technician who covers that address is free.
  • About 15 minutes for the connection and your first Zap.
Test in Rehearsal first. Rehearsal is your business’s sandbox: isolated test data where no real customer or technician is ever texted or emailed. The Zapier connection works in the environment your Crisphive dashboard is in at the moment you click Approve. Before you connect, click Rehearsal in the Rehearsal | Live switch in the dashboard’s left sidebar and confirm with Switch. New businesses start in Rehearsal until they go live.

Step 1 — Add the app to Zapier

1
Open the link

Open the link you received from Crisphive while signed in to Zapier, and click the button to accept it. The app now appears as Crisphive when you search for an app in the Zap editor.

2
Check the app is there

In Zapier click + Create → Zap workflows, select the trigger step and search for Crisphive. If it does not appear, open the link again in the same browser where you are signed in to Zapier.

Step 2 — Connect your Crisphive account (OAuth)

Zapier connects with OAuth: instead of copying a secret key, you sign in to Crisphive in a pop-up window and click Approve. Zapier then receives a token that lets it act as you. You do not need an API key for Zapier.

Step 1 of 3In the Zap editor, select the step you want to use Crisphive in, then search for and select Crisphive.

All steps
  1. In the Zap editor, select the step you want to use Crisphive in, then search for and select Crisphive.
  2. In Action event, choose Book Job. (In a trigger step the field is called Trigger event and lists the Crisphive triggers, such as Job Completed.)
  3. In the Account field, click Sign in. A Crisphive window opens. Allow pop-ups for zapier.com if nothing opens.

Step 1 of 4If you are not signed in to Crisphive in this browser, type your email and click Send Verification. Crisphive emails you a 6-digit code and a sign-in link.

All steps
  1. If you are not signed in to Crisphive in this browser, type your email and click Send Verification. Crisphive emails you a 6-digit code and a sign-in link.
  2. Type the 6-digit code from the email in Enter your code (or click the link in the email). You come back to the authorization screen.
  3. The screen reads “Authorize Zapier — Zapier wants to access your Crisphive business” and lists what the connection may do. Read it, then click Approve.
  4. Wait while Crisphive shows “Taking you back to Zapier…” and the window closes. Zapier now lists the connection in the Account field as Crisphive.
1
Pick the right environment first

In the Crisphive dashboard (crisphive.com/app), use the Rehearsal | Live switch in the left sidebar: Rehearsal to test, Live for real work. The connection is locked to the environment you are in when you click Approve.

2
Sign in from Zapier

In any Crisphive step click Sign in in the Account field. Sign in to Crisphive with your email and one-time code.

3
Approve

On the screen Authorize Zapier, click Approve. The window closes and the connection appears in Zapier.

4
Name the connection

Zapier names every Crisphive connection “Crisphive”. If you connect both environments, rename them in Zapier: open the App Connections page (zapier.com/app/assets/connections), click the menu icon next to the connection, choose Rename, type “Crisphive sandbox” or “Crisphive live” and click Save, so you never pick the wrong one.

Then set the connection to last a year. A new connection lasts 90 days. So that Zapier does not stop on that day, the Owner sets it to 365 days right after connecting. Settings → Developer → MCP connections (crisphive.com/app/settings/developer/mcp-servers) lists every app connected by signing in to Crisphive, not only AI apps, so Zapier appears there.

1
Open MCP connections

In the Crisphive dashboard go to Settings → Developer → MCP connections and find the Zapier row.

2
Set lifetime

Click Set lifetime, enter 365 in Lifetime (days) and click Save. The days count from when Zapier was first authorized, not from today.

What the connection is allowed to do

  • Exactly what your role can do — nothing more. Crisphive checks your current role on every request. If an Owner later narrows your role, the connection narrows with it; if you are removed or suspended, it stops working immediately.
  • Only one business and one environment — the business and the sandbox/live environment you were in when you approved.
  • Only what this app uses. The app reads job types, reads and books jobs, looks up customers, and creates and deletes its own webhook subscriptions. It never sees prices (Crisphive stores none) and cannot change your settings.
  • It expires. A connection lasts 90 days from approval by default (1–365 days with Set lifetime under Settings → Developer → MCP connections), and also stops if it is not used for 30 days. The Owner and Administrators are emailed 14 days before the 90-day limit. To renew, reconnect in Zapier (sign in and approve again). See Go live.

Step 3 — Triggers

All five triggers are instant. When you turn the Zap on, the app subscribes in Crisphive to exactly one event; when you turn it off, the subscription is deleted. Each live trigger takes one of the 25 webhook slots your business has per environment.

TriggerCrisphive eventInput fieldsOutputPermission needed (besides Developer access)
New Customercustomer.createdNoneThe customer: ID, UID, full name, phone, email and tier, plus event_id and event_typecustomers_view
New Jobjob_request.createdNoneThe full job (read from Crisphive after the event)job_view + job_manage
Job Completedjob_request.completedNoneThe full jobjob_view + job_manage
Job Rescheduledjob_request.rescheduledNoneThe full job, with its new timejob_view + job_manage
New EventThe event you chooseEvent (required, dropdown)Job events: the full job. Customer and technician events: the object in the eventDepends on the event (see below)

Fields a job trigger gives you

Job triggers read the full job from Crisphive before the Zap runs, so you always get current data. Zapier builds each label from the field’s name and puts the parent name in front of nested values (for example customer name, address city); its exact capitalisation may differ slightly from this list. The most useful ones:

FieldExampleNotes
ID7c1f2a90-3b4d-…The job’s ID. Use it to look the job up later.
Short CodeREQ-CA-8K2M4Q7XThe human reference shown on the dashboard and in customer messages. Good for invoices and channel posts.
Job Type NameAC Repair
Current Status Key / Display Namecompleted / CompletedThe workflow status.
Priorityp2p0 is an emergency, p3 the lowest.
DescriptionNo cooling upstairs
Customer ID / Name / Phone / EmailAlex Martin, +16135550177Phone is always in international (E.164) format.
Address Line / City / State / Postal / Country / Formatted145 Laurier Avenue WestFormatted is the one-line address.
Schedule Scheduled At2026-10-13T14:00:00ZUTC (the Z). Convert it before showing it to a customer — see Field mapping tips.
Schedule Business TimezoneAmerica/TorontoUse it to convert UTC times.
Assignment Technician ID…The assigned technician.
Customer URLhttps://…The link the customer uses to see and manage this job.
Completed At / Created At2026-10-13T16:05:00ZUTC.
Event ID / Event Typeevt_… / job_request.completedWhich delivery started this run.

New Event — every event you can choose

The Event dropdown is read live from Crisphive (GET /v1/webhooks/event-types), so new Crisphive events appear without a new version of the app. Today the list is:

Dropdown labelEventFires whenPermission
Job Createdjob_request.createdA job is booked.job_view + job_manage
Job Confirmedjob_request.confirmedA time is confirmed (by the customer, the office or Book Job).job_view + job_manage
Job Assignedjob_request.assignedA technician or crew is assigned or reassigned.job_view + job_manage
Job Rescheduledjob_request.rescheduledA job moves to a new time.job_view + job_manage
Job Priority Changedjob_request.priority_changedA job’s priority changes (for example raised to an emergency).job_view + job_manage
Job Status Changedjob_request.status_changedAny other workflow step (on the way, arrived, …).job_view + job_manage
Job Completedjob_request.completedA job is completed.job_view + job_manage
Job Archivedjob_request.archivedA job is archived or cancelled.job_view + job_manage
Customer Created / Updated / Deletedcustomer.created / .updated / .deletedA customer record changes.customers_view
Technician Created / Updated / Deletedtechnician.created / .updated / .deletedA team member is added, edited (including suspended) or removed.team_view

Step 1 of 3In the trigger step, select Crisphive, choose New Event in Trigger event, and pick your Crisphive connection in Account.

All steps
  1. In the trigger step, select Crisphive, choose New Event in Trigger event, and pick your Crisphive connection in Account.
  2. Click Continue. In the Configure tab, open the Crisphive Event dropdown and choose the event, for example Job Assigned.
  3. Click Continue, then Test trigger. Zapier loads up to three recent jobs as sample data so you can map fields in the next steps.
Sample data is not a real event. While you build a Zap, the test step shows the three most recent jobs as samples — whatever their status, and also when New Event is set to a customer or technician event. Only New Customer shows recent customers. A Job Completed sample may therefore be a job that is not completed. The real event arrives only after you turn the Zap on.
FieldRequiredWhat to enter
Phone (E.164)YesThe phone number in international format: a plus sign, the country code and the number, no spaces needed — for example +16135550177. Spaces, dashes and brackets are tolerated; a number without the country code is refused (PHONE_INVALID).

It is an exact match on the stored number and returns up to five customers. Output fields (Zapier’s labels may be capitalised slightly differently): ID, UID (your own reference, for example a CRM ID), Full Name, Tier (regular or vip), Status, Request Count (number of jobs), Last Request At, SMS Opt In, Updated At. Phone and email are not part of the search result — you already have the phone.

Step 1 of 3Add a step, select Crisphive, choose Find Customer by Phone in Action event, then your Crisphive connection.

All steps
  1. Add a step, select Crisphive, choose Find Customer by Phone in Action event, then your Crisphive connection.
  2. In Phone (E.164), map the phone number from an earlier step — ideally the output of a Formatter step that turned it into +1… format.
  3. Set “Should this step be considered a success when nothing is found?” to True, so a first-time customer does not stop the Zap. Then click Continue and Test step.

Step 5 — Action: Book Job

Book Job calls POST /v1/job-requests/book-and-confirm. In one step it creates the job, sizes it (from the job type’s default duration, or the Duration you give), confirms it at the start time, and lets Crisphive’s solver assign a technician. Send the customer and the job address in the customer fields and leave Customer ID empty: Crisphive matches an existing customer by phone or email and never creates a duplicate. If Customer ID is filled, the customer and address fields are ignored.

FieldRequiredWhat to enterExample
Customer IDNoLeave empty (recommended). Book Job then matches an existing customer by phone or email — never creating a duplicate — and books the job at the address you send. Fill it only with the ID of a customer whose address on file is the job address: with a Customer ID the customer fields and the address fields are ignored, and a customer with no stored address is refused (JOB_REQUEST_ADDRESS_REQUIRED).3f6c8e21-…
Customer Full NameWhen Customer ID is emptyThe customer’s name.Alex Martin
Phone (E.164)Phone or Email, when Customer ID is emptyInternational format. Crisphive matches an existing customer with this phone (or email) and never creates a duplicate.+16135550177
EmailPhone or Email, when Customer ID is emptyThe customer’s email.alex.martin@example.com
SMS ConsentNoTrue only if the customer explicitly agreed to receive text messages (for example ticked an unticked box on your form). Without it they still get email.False
Address LineWhen Customer ID is emptyStreet address of the job.145 Laurier Avenue West
CityCity or Postal Code, when Customer ID is emptyCrisphive needs one of the two to find a technician who covers the area.Ottawa
State / ProvinceNoTwo-letter code.ON
Postal CodeCity or Postal Code, when Customer ID is emptyK1P 5J3
CountryNoTwo-letter country code.CA
Job TypeNoDropdown of your active job types. Empty = the business’s default job type (“General”). You can also map a job type ID.AC Repair
Start (business local time)YesWhen the job starts, on your business’s own clock, with no time zone: YYYY-MM-DDTHH:MM:SS. It must be in the future; it should be inside working hours or the job will not be confirmed.2026-10-13T10:00:00
Duration (minutes)NoLength of the work in minutes. Empty = the job type’s default duration.90
DescriptionNoWhat needs doing. Technicians see it.No cooling upstairs

Step 1 of 7Add a step, choose App: Crisphive and Event: Book Job, and pick your Crisphive connection.

All steps
  1. Add a step, choose App: Crisphive and Event: Book Job, and pick your Crisphive connection.
  2. Leave Customer ID empty — Book Job matches a returning customer by phone or email itself. Map the name from your form into Customer Full Name.
  3. Map Phone (E.164) from the Formatter step that converted the number, and Email from the form.
  4. Set SMS Consent to True only if your form has a consent box the customer ticked; otherwise choose False.
  5. Map the address. Address Line is required for a new customer, together with City or Postal Code.
  6. Choose the Job Type from the dropdown (or leave it empty for the default type). Map Start (business local time) from the Formatter step that produced YYYY-MM-DDTHH:mm:ss.
  7. Leave Duration empty to use the job type’s default. Click Continue, then Test step: Zapier books a real job in the environment of your connection.

What Book Job returns

FieldMeaning
Job IDThe new job’s ID.
Short CodeThe human reference, for example REQ-CA-8K2M4Q7X.
Customer IDThe matched or newly created customer.
Customer URLThe link the customer uses to see and manage the job.
Confirmedtrue: the job is scheduled and a technician is assigned. false: the job is saved but waits in your coordinator queue — see below.
Scheduled AtThe confirmed start time, in UTC.
Assigned Technician IDWho was assigned.
Refusal Stage / Error Code / Message / DataOnly when Confirmed is false: why no technician could take that time (for example JOB_REQUEST_NO_TECHNICIAN_AVAILABLE).
“Confirmed: false” is not an error. The job exists and waits in your queue for a coordinator to schedule. Do not re-run the step or replay the Zap run with changed data — that books a second job. Add a Filter or Paths step on Confirmed to send a “we’ll call you to confirm a time” message instead of a confirmation.

Retries are safe: Book Job sends an Idempotency-Key built from the Zap and the step run, so if Zapier retries the same step after a network error, Crisphive returns the first answer instead of booking twice.

Field mapping tips

Most failed runs come from two fields: the phone number and the start time. Get these two right and the rest maps one to one.

Phone numbers: convert to E.164 with Formatter

Crisphive refuses a phone number it cannot place in a country, rather than guessing. Forms usually collect 613-555-0177 or (613) 555-0177; Crisphive needs +16135550177. Add a Formatter by Zapier step before the Crisphive step:

Step 1 of 4Add a step and choose App: Formatter by Zapier, Event: Numbers.

All steps
  1. Add a step and choose App: Formatter by Zapier, Event: Numbers.
  2. In Transform, choose Format Phone Number. In Input, map the phone field from your form.
  3. In To Format, choose the international format that starts with a plus sign and has no spaces (+15558001212). Set the country to Canada or United States for numbers typed without a country code.
  4. Click Test step. The Output is +16135550177 — map this Output into the Crisphive Phone field.

Start time: business-local, no time zone

Start (business local time) is read on your business’s own clock (the time zone set in Crisphive → Settings). Send 2026-10-13T10:00:00 for 10 am at your business. If your form gives a date and a time in another shape, convert it with Formatter by Zapier → Date / Time → Format:

Step 1 of 4Add a step: App Formatter by Zapier, Event Date / Time. Choose Transform: Format.

All steps
  1. Add a step: App Formatter by Zapier, Event Date / Time. Choose Transform: Format.
  2. In Input, map the date and time from your form (both, side by side, if the form has two fields).
  3. In To Format choose Custom and type YYYY-MM-DDTHH:mm:ss. Set To Timezone and From Timezone to your business time zone, so the hour is not shifted.
  4. Click Test step. The Output reads 2026-10-13T10:00:00 — map it into Start (business local time).
  • Never send a value ending in Z or -04:00 unless it names the same wall-clock time at your business. Crisphive refuses an offset that disagrees with your business time zone (JOB_REQUEST_INVALID_INPUT, with the local reading in the error) rather than guessing which hour you meant.
  • Times coming out of Crisphive are UTC (Scheduled At, Completed At). Before putting one in a customer message, convert it with the same Formatter step: From Timezone UTC, To Timezone your business zone, and a friendly To Format such as dddd, MMMM D [at] h:mm A.
  • Country codes are two letters (CA, US); State / Province likewise (ON).
  • Job Type from a form: if a dropdown on your form names the service, use a Formatter → Utilities → Lookup Table step to turn the label into a Crisphive job type ID, or simply leave Job Type empty and let the default type apply.

Ready-made Zaps (recipes)

Five workflows to start with. Each lists the steps in order and exactly which field maps where.

Recipe A — Website form → booked and confirmed job

Google Forms, Typeform, Jotform, Webflow or WordPress → Crisphive. The customer picks a time on your form and the job lands on the board already confirmed, with a technician.

1
Trigger: your form app — New Form Response

Your form must collect: name, phone, email, street address, city or postal code, preferred date and time, and (optionally) the service and an SMS consent box that is not pre-ticked.

2
Formatter → Numbers → Format Phone Number

Input = the form’s phone. To Format = the +15558001212 option.

3
Formatter → Date / Time → Format

Input = the form’s date and time. To Format = YYYY-MM-DDTHH:mm:ss. From/To Timezone = your business time zone.

4
Crisphive → Book Job

Map the fields as in the table below.

5
Filter or Paths on Confirmed

Confirmed (Boolean) is true → send the customer a confirmation. Otherwise → notify the office that a job waits in the queue.

Book Job fieldMap from
Customer IDLeave empty
Customer Full NameForm → Name
Phone (E.164)Formatter (phone) → Output
EmailForm → Email
SMS ConsentForm → consent checkbox (True only when ticked)
Address Line / City / Postal CodeForm → Street / City / Postal code
State / Province / CountryForm fields, or type ON / CA
Job TypeA fixed job type, a Lookup Table output, or empty
Start (business local time)Formatter (date) → Output
DescriptionForm → Message
Why there is no customer search in this recipe. Book Job matches an existing customer by phone or email itself, so a returning customer is never duplicated, and the job is booked at the address the customer just typed. Use Find Customer by Phone only when you want to branch on whether the caller is new — not to fill Customer ID, which would book at the address stored on the customer (and is refused if there is none).

Recipe B — Job completed → review request

1
Trigger: Crisphive → Job Completed

No input fields.

2
Delay by Zapier → Delay For (optional)

One or two hours, so the message does not arrive while the technician is still packing up.

3
Gmail / Outlook → Send Email (or an SMS app)

To = Customer Email. Subject = Thanks for choosing us, + Customer Name. Body: your Google review link and the Short Code. For SMS, use Customer Phone and only text customers who agreed to texts.

Recipe C — Job completed → invoice

1
Trigger: Crisphive → Job Completed

2
Accounting app → Find or Create Customer

QuickBooks Online, Xero, FreshBooks or Stripe: Name = Customer Name, Email = Customer Email.

3
Accounting app → Create Invoice

Customer = the previous step. Reference / memo = Short Code. Line item = Job Type Name. Crisphive stores no prices, so set the amount here — a Lookup Table from job type to price works well.

Recipe D — Every new or assigned job → your team channel

1
Trigger: Crisphive → New Job

Or New Event with Event = Job Assigned to post once a technician is on it.

2
Formatter → Date / Time → Format

Input = Schedule Scheduled At, From Timezone UTC, To Timezone your business zone, To Format ddd MMM D, h:mm A.

3
Slack / Microsoft Teams / Google Chat → Send Channel Message

Text: Short Code · Customer Name · Address Formatted · the formatted time · Job Type Name.

Recipe E — New customer → CRM or mailing list

1
Trigger: Crisphive → New Customer

Fires for customers created anywhere: dashboard, website widget, phone agent, Book Job.

2
HubSpot / Mailchimp / Google Sheets / Airtable → Create or Update Contact (or Add Row)

Map Full Name, Email, Phone and the address fields. Store the Crisphive ID in a custom field so later Zaps can find the same customer. Only add the customer to a marketing list if they agreed to it.

Reference: what the app sends

You never type this — it is what Book Job sends to Crisphive for recipe A, useful when you read Zap history or ask support for help.

POST https://api.crisphive.com/v1/job-requests/book-and-confirm
Authorization: Bearer <your connection's OAuth token>
Idempotency-Key: zap-<zap id>-<step run id>-book-and-confirm
Content-Type: application/json

{
  "customer": {
    "full_name": "Alex Martin",
    "phone": "+16135550177",
    "email": "alex.martin@example.com",
    "sms_opt_in": false
  },
  "address": {
    "line": "145 Laurier Avenue West",
    "city": "Ottawa",
    "state": "ON",
    "postal_code": "K1P 5J3",
    "country": "CA"
  },
  "scheduled_at": "2026-10-13T10:00:00",
  "description": "No cooling upstairs"
}

Empty fields are left out. When a trigger is turned on, the app sends POST /v1/webhooks with one event type and expires_in_days: 365; turning the Zap off sends DELETE /v1/webhooks/{id}. See Automation platforms for the full protocol.

Test it

1
Switch to Rehearsal and connect

In the Crisphive dashboard switch to Rehearsal, then connect Zapier (Step 2). Nobody is ever contacted from Rehearsal, and phone numbers in the 555-01xx range and @example.com addresses are never messaged anyway.

2
Build a two-step test Zap

Trigger: Schedule by Zapier → Every Day (any trigger works). Action: Crisphive → Book Job.

3
Fill Book Job with the test values

Customer Full Name Alex Martin · Phone +16135550177 · Email alex.martin@example.com · SMS Consent False · Address Line 145 Laurier Avenue West · City Ottawa · State / Province ON · Postal Code K1P 5J3 · Country CA · Start 2026-10-13T10:00:00 (any future weekday time inside your working hours) · Description Zapier test.

4
Click Test step

Success: Zapier shows Confirmed: true, a Short Code like REQ-CA-… and an Assigned Technician ID.

5
Check Crisphive

Open the dashboard (still in Rehearsal). The job appears on the board at 10:00 with status Confirmed (opened, its window is titled Booking Confirmed) and a technician, and Alex Martin appears under Customers. Run the step again with the same values: no second customer is created.

6
Test a trigger

Create a Zap with Crisphive → New Customer and any action (for example Email by Zapier), publish it, then create a customer in the dashboard (in Rehearsal). Within seconds the Zap history shows a successful run with that customer’s name.

7
Clean up

Archive the test job in Crisphive and turn off test Zaps you do not need — turning a Zap off frees its webhook slot.

Troubleshooting

SymptomCauseFix
Turning the Zap on fails with FORBIDDENThe connected person lacks Developer access, which every trigger needs.Have the Owner connect, or ask the Owner to grant the Developer module to your group in Settings → Permissions.
Turning the Zap on fails with WEBHOOK_EVENT_NOT_PERMITTED (needs permission: customers_view)Your role cannot read the data that event carries.Ask the Owner for the permission named in brackets, or connect with an account that has it.
Turning the Zap on fails with WEBHOOK_LIMIT_REACHEDThe business already has 25 active webhook endpoints in this environment.Turn off Zaps you no longer use, or delete old endpoints in Crisphive → Settings → Developer → Webhooks.
The trigger never firesThe event happened in the other environment, the Zap is off, or the subscription was stopped (connection disconnected, connecting member removed or suspended, or 5 failed deliveries in a row).Make the event in the same environment as the connection; turn the Zap off and on again to re-subscribe.
Jobs are booked but you cannot see themThe connection was approved while the dashboard was in the other environment (often sandbox, where new businesses start).Switch the dashboard to the other environment to find them. To book live, switch to Live and add a new connection.
Zapier asks you to reconnect, or a step fails with OAUTH_GRANT_EXPIREDThe connection reached its 90-day limit, was unused for 30 days, or was disconnected in Crisphive.In Zapier, Apps → Crisphive → Reconnect, sign in and Approve.
PHONE_INVALIDThe phone number has no country code or is not a real number.Add a Formatter → Format Phone Number step and map its Output.
JOB_REQUEST_INVALID_INPUTStart is missing, not in YYYY-MM-DDTHH:MM:SS, in the past, or carries an offset that disagrees with your business time zone; or Customer ID is empty and the name, address line, or both phone and email are missing; or the job type is inactive.Fix the field named in the message. Check Start against your business clock.
JOB_REQUEST_ADDRESS_REQUIREDA new customer was sent without City or Postal Code, or Customer ID points at a customer with no address on file.Map City or Postal Code. For returning customers, leave Customer ID empty and send the address fields.
JOB_REQUEST_QUOTE_INVALIDThe job type has no default duration and Duration is empty, or Duration is 0.Give the job type a default duration in Settings → Job Types, or fill Duration.
Confirmed: false with refusal JOB_REQUEST_NO_TECHNICIAN_AVAILABLENo technician who covers that address and has the skills is free at that time (outside working hours, time off, fully booked).Nothing to retry: the job waits in the coordinator queue. Schedule it from the dashboard and, if it keeps happening, check working hours and service areas.
“Nothing could be found” stops the ZapNo customer has that exact phone number.Set the search’s “success when nothing is found” option to True, or drop the search (Book Job matches customers itself).
The job is booked hours offA UTC time or a time with a different offset was mapped into Start, or the Formatter time zones were left on the Zapier account default.Format Start as business-local YYYY-MM-DDTHH:mm:ss with From/To Timezone set to your business zone.
Two jobs for one form responseThe Zap run was replayed with edited data, or the Zap was duplicated.Archive the duplicate. Replaying an unchanged run is safe; changing the data makes it a new booking.
A step fails with INVALID_REQUEST_BODYA field has the wrong type, for example text in Duration.Map a whole number into Duration, or leave it empty.
Zapier shows “Crisphive rate limit” and retriesMore than about 240 requests per minute on one connection.Zapier retries on its own. Spread large imports over time.
You cannot turn on your first ZapZapier requires a confirmed email address, and a Zap needs at least one app action (a Formatter step alone does not count).Confirm your Zapier email; add a real action step.

Go live

Zapier does not use API keys, so there is no chsk_test_ → chsk_live_ swap. Going live means making a new connection while your dashboard is in Live.

1
Switch Crisphive to Live

In the dashboard, switch from Rehearsal to Live. If your business has not gone live yet, confirm go-live first (Owner or Administrator).

2
Add a live connection

In any Crisphive step of your Zap, open Account → + Connect a new account, sign in and Approve. Rename it “Crisphive live”.

3
Point every Crisphive step at it

Change the Account of each Crisphive trigger, search and action to the live connection. Re-pick the Job Type dropdown — sandbox and live have separate job types.

4
Publish

Publish the Zap. Triggers re-subscribe on the live environment; the sandbox subscription is removed when the old version is turned off.

5
Remember the renewal date

A connection lasts 90 days from approval and stops after 30 days without use. The Owner and Administrators get an email 14 days before the limit; set your own calendar reminder too, then reconnect. Each trigger’s signing secret lasts 365 days; turning the Zap off and on renews it.

Removing access

  • In Zapier: turn off the Zaps (this deletes their webhook subscriptions), then delete the connection under Apps → Crisphive.
  • In Crisphive: the Owner can disconnect Zapier for everyone under Settings → Developer → MCP connections (/app/settings/developer/mcp-servers). Its tokens stop working and the webhooks it created are disabled.
  • Automatically: removing or suspending the member who connected Zapier stops the connection and the triggers they turned on.

FAQ

Is the Crisphive Zapier integration free?
The Crisphive app itself costs nothing extra. Zapier bills you for tasks and plan features (for example multi-step Zaps); check your Zapier plan. On the Crisphive side, use any plan whose features you need, such as technicians and service areas.
How do I add Crisphive to my Zapier account?
Email support@crisphive.com and we’ll send you the link. Open it while signed in to Zapier and accept; Crisphive then appears in your Zap editor.
Do I need an API key for Zapier?
No. Zapier connects with OAuth: you sign in to Crisphive and click Approve. API keys (chsk_…) are for n8n, Pipedream, voice agents and your own code.
Who in my business can connect Zapier?
Anyone with a Crisphive login can connect, and the connection can do exactly what their role allows. Turning on a trigger needs Developer access, which by default only the Owner has; booking needs job_create and job_manage.
How do I test without contacting real customers?
Switch the Crisphive dashboard to Rehearsal before you approve the connection. Rehearsal is the sandbox: its own isolated data, and it never texts or emails anyone. Make a separate connection in Live when you are ready.
Why did my job not confirm?
Book Job answered Confirmed: false because no technician who covers that address was free at that time — often a start outside working hours. The job is saved in your coordinator queue; schedule it from the dashboard and do not re-run the step.
What time zone does the start time use?
Your business’s own clock, set in Crisphive. Send 2026-10-13T10:00:00 for 10 am at your business, with no offset. Times Crisphive sends back (Scheduled At, Completed At) are in UTC.
Can a forged request start my Zap?
No. Every Crisphive delivery is signed with a secret only your subscription knows (Crisphive-Signature), and the app drops any delivery whose signature does not match.
How long does the connection last?
90 days from approval, and it also stops after 30 days without use. The Owner and Administrators are emailed 14 days before the 90-day limit. Reconnect in Zapier to renew.
How do I remove Zapier’s access?
Turn off the Zaps and delete the connection in Zapier, or disconnect Zapier in Crisphive under Settings → Developer → MCP connections. Removing the member who connected it also stops it.