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.
support@crisphive.com and we’ll send you the link.What you can do
| Type | Name in Zapier | What it does |
|---|---|---|
| Trigger (instant) | New Customer | Starts 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 Job | Starts when a job is booked, from any channel (dashboard, website widget, phone agent, API, another Zap). Delivers the full job. |
| Trigger (instant) | Job Completed | Starts when a technician (or the office) completes a job. Delivers the full job. |
| Trigger (instant) | Job Rescheduled | Starts when a job moves to a new time. Delivers the full job. |
| Trigger (instant) | New Event | Starts on any Crisphive event you pick from a live list: job confirmed, assigned, archived, priority changed, customer updated, technician created, and more. |
| Search | Find Customer by Phone | Finds a customer by exact phone number — for example to greet or route a returning caller differently. |
| Action | Book Job | Books 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 needsjob_createandjob_manage; Find Customer by Phone needscustomers_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.
Step 1 — Add the app to Zapier
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.
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
- In the Zap editor, select the step you want to use Crisphive in, then search for and select Crisphive.
- 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.)
- 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
- 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.
- 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.
- The screen reads “Authorize Zapier — Zapier wants to access your Crisphive business” and lists what the connection may do. Read it, then click Approve.
- Wait while Crisphive shows “Taking you back to Zapier…” and the window closes. Zapier now lists the connection in the Account field as Crisphive.
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.
In any Crisphive step click Sign in in the Account field. Sign in to Crisphive with your email and one-time code.
On the screen Authorize Zapier, click Approve. The window closes and the connection appears in Zapier.
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.
In the Crisphive dashboard go to Settings → Developer → MCP connections and find the Zapier row.
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.
| Trigger | Crisphive event | Input fields | Output | Permission needed (besides Developer access) |
|---|---|---|---|---|
| New Customer | customer.created | None | The customer: ID, UID, full name, phone, email and tier, plus event_id and event_type | customers_view |
| New Job | job_request.created | None | The full job (read from Crisphive after the event) | job_view + job_manage |
| Job Completed | job_request.completed | None | The full job | job_view + job_manage |
| Job Rescheduled | job_request.rescheduled | None | The full job, with its new time | job_view + job_manage |
| New Event | The event you choose | Event (required, dropdown) | Job events: the full job. Customer and technician events: the object in the event | Depends 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:
| Field | Example | Notes |
|---|---|---|
| ID | 7c1f2a90-3b4d-… | The job’s ID. Use it to look the job up later. |
| Short Code | REQ-CA-8K2M4Q7X | The human reference shown on the dashboard and in customer messages. Good for invoices and channel posts. |
| Job Type Name | AC Repair | |
| Current Status Key / Display Name | completed / Completed | The workflow status. |
| Priority | p2 | p0 is an emergency, p3 the lowest. |
| Description | No cooling upstairs | |
| Customer ID / Name / Phone / Email | Alex Martin, +16135550177 | Phone is always in international (E.164) format. |
| Address Line / City / State / Postal / Country / Formatted | 145 Laurier Avenue West | Formatted is the one-line address. |
| Schedule Scheduled At | 2026-10-13T14:00:00Z | UTC (the Z). Convert it before showing it to a customer — see Field mapping tips. |
| Schedule Business Timezone | America/Toronto | Use it to convert UTC times. |
| Assignment Technician ID | … | The assigned technician. |
| Customer URL | https://… | The link the customer uses to see and manage this job. |
| Completed At / Created At | 2026-10-13T16:05:00Z | UTC. |
| Event ID / Event Type | evt_… / job_request.completed | Which 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 label | Event | Fires when | Permission |
|---|---|---|---|
| Job Created | job_request.created | A job is booked. | job_view + job_manage |
| Job Confirmed | job_request.confirmed | A time is confirmed (by the customer, the office or Book Job). | job_view + job_manage |
| Job Assigned | job_request.assigned | A technician or crew is assigned or reassigned. | job_view + job_manage |
| Job Rescheduled | job_request.rescheduled | A job moves to a new time. | job_view + job_manage |
| Job Priority Changed | job_request.priority_changed | A job’s priority changes (for example raised to an emergency). | job_view + job_manage |
| Job Status Changed | job_request.status_changed | Any other workflow step (on the way, arrived, …). | job_view + job_manage |
| Job Completed | job_request.completed | A job is completed. | job_view + job_manage |
| Job Archived | job_request.archived | A job is archived or cancelled. | job_view + job_manage |
| Customer Created / Updated / Deleted | customer.created / .updated / .deleted | A customer record changes. | customers_view |
| Technician Created / Updated / Deleted | technician.created / .updated / .deleted | A 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
- In the trigger step, select Crisphive, choose New Event in Trigger event, and pick your Crisphive connection in Account.
- Click Continue. In the Configure tab, open the Crisphive Event dropdown and choose the event, for example Job Assigned.
- Click Continue, then Test trigger. Zapier loads up to three recent jobs as sample data so you can map fields in the next steps.
Step 4 — Search: Find Customer by Phone
| Field | Required | What to enter |
|---|---|---|
| Phone (E.164) | Yes | The 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
- Add a step, select Crisphive, choose Find Customer by Phone in Action event, then your Crisphive connection.
- 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.
- 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.
| Field | Required | What to enter | Example |
|---|---|---|---|
| Customer ID | No | Leave 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 Name | When Customer ID is empty | The customer’s name. | Alex Martin |
| Phone (E.164) | Phone or Email, when Customer ID is empty | International format. Crisphive matches an existing customer with this phone (or email) and never creates a duplicate. | +16135550177 |
| Phone or Email, when Customer ID is empty | The customer’s email. | alex.martin@example.com | |
| SMS Consent | No | True 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 Line | When Customer ID is empty | Street address of the job. | 145 Laurier Avenue West |
| City | City or Postal Code, when Customer ID is empty | Crisphive needs one of the two to find a technician who covers the area. | Ottawa |
| State / Province | No | Two-letter code. | ON |
| Postal Code | City or Postal Code, when Customer ID is empty | K1P 5J3 | |
| Country | No | Two-letter country code. | CA |
| Job Type | No | Dropdown 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) | Yes | When 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) | No | Length of the work in minutes. Empty = the job type’s default duration. | 90 |
| Description | No | What 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
- Add a step, choose App: Crisphive and Event: Book Job, and pick your Crisphive connection.
- 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.
- Map Phone (E.164) from the Formatter step that converted the number, and Email from the form.
- Set SMS Consent to True only if your form has a consent box the customer ticked; otherwise choose False.
- Map the address. Address Line is required for a new customer, together with City or Postal Code.
- 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.
- 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
| Field | Meaning |
|---|---|
| Job ID | The new job’s ID. |
| Short Code | The human reference, for example REQ-CA-8K2M4Q7X. |
| Customer ID | The matched or newly created customer. |
| Customer URL | The link the customer uses to see and manage the job. |
| Confirmed | true: the job is scheduled and a technician is assigned. false: the job is saved but waits in your coordinator queue — see below. |
| Scheduled At | The confirmed start time, in UTC. |
| Assigned Technician ID | Who was assigned. |
| Refusal Stage / Error Code / Message / Data | Only when Confirmed is false: why no technician could take that time (for example JOB_REQUEST_NO_TECHNICIAN_AVAILABLE). |
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
- Add a step and choose App: Formatter by Zapier, Event: Numbers.
- In Transform, choose Format Phone Number. In Input, map the phone field from your form.
- 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.
- 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
- Add a step: App Formatter by Zapier, Event Date / Time. Choose Transform: Format.
- In Input, map the date and time from your form (both, side by side, if the form has two fields).
- 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.
- Click Test step. The Output reads 2026-10-13T10:00:00 — map it into Start (business local time).
- Never send a value ending in
Zor-04:00unless 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 asdddd, 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.
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.
Input = the form’s phone. To Format = the +15558001212 option.
Input = the form’s date and time. To Format = YYYY-MM-DDTHH:mm:ss. From/To Timezone = your business time zone.
Map the fields as in the table below.
Confirmed (Boolean) is true → send the customer a confirmation. Otherwise → notify the office that a job waits in the queue.
| Book Job field | Map from |
|---|---|
| Customer ID | Leave empty |
| Customer Full Name | Form → Name |
| Phone (E.164) | Formatter (phone) → Output |
| Form → Email | |
| SMS Consent | Form → consent checkbox (True only when ticked) |
| Address Line / City / Postal Code | Form → Street / City / Postal code |
| State / Province / Country | Form fields, or type ON / CA |
| Job Type | A fixed job type, a Lookup Table output, or empty |
| Start (business local time) | Formatter (date) → Output |
| Description | Form → Message |
Recipe B — Job completed → review request
No input fields.
One or two hours, so the message does not arrive while the technician is still packing up.
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
QuickBooks Online, Xero, FreshBooks or Stripe: Name = Customer Name, Email = Customer Email.
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
Or New Event with Event = Job Assigned to post once a technician is on it.
Input = Schedule Scheduled At, From Timezone UTC, To Timezone your business zone, To Format ddd MMM D, h:mm A.
Text: Short Code · Customer Name · Address Formatted · the formatted time · Job Type Name.
Recipe E — New customer → CRM or mailing list
Fires for customers created anywhere: dashboard, website widget, phone agent, Book Job.
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
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.
Trigger: Schedule by Zapier → Every Day (any trigger works). Action: Crisphive → Book Job.
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.
Success: Zapier shows Confirmed: true, a Short Code like REQ-CA-… and an Assigned Technician ID.
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.
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.
Archive the test job in Crisphive and turn off test Zaps you do not need — turning a Zap off frees its webhook slot.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
Turning the Zap on fails with FORBIDDEN | The 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_REACHED | The 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 fires | The 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 them | The 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_EXPIRED | The 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_INVALID | The 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_INPUT | Start 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_REQUIRED | A 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_INVALID | The 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_AVAILABLE | No 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 Zap | No 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 off | A 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 response | The 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_BODY | A 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 retries | More 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 Zap | Zapier 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.
In the dashboard, switch from Rehearsal to Live. If your business has not gone live yet, confirm go-live first (Owner or Administrator).
In any Crisphive step of your Zap, open Account → + Connect a new account, sign in and Approve. Rename it “Crisphive live”.
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.
Publish the Zap. Triggers re-subscribe on the live environment; the sandbox subscription is removed when the old version is turned off.
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.
Related guides and reference
- Automation platforms overview — what every automation integration shares
- Make — the same booking and triggers in Make scenarios
- n8n — the Crisphive node for self-hosted n8n, plus n8n AI Agents
- Pipedream — HTTP and Node.js steps against the API
- Webhooks reference — events, signatures and retries
- Book and confirm a job — the API call behind every booking step
FAQ
Is the Crisphive Zapier integration free?
How do I add Crisphive to my Zapier account?
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?
chsk_…) are for n8n, Pipedream, voice agents and your own code.Who in my business can connect Zapier?
job_create and job_manage.How do I test without contacting real customers?
Why did my job not confirm?
What time zone does the start time use?
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?
Crisphive-Signature), and the app drops any delivery whose signature does not match.