Skip to content

Zapier

BytePhase has a Zapier app. It uses the endpoints documented here; this page explains what the app can do and what you are handing to Zapier when you connect it.

  1. In BytePhase, open Settings → Integrations and choose Zapier. The wizard’s Connect step shows the API key (“Copy this key now. You will not be able to see it again.”) and the API base URL. Copy both.
  2. “In Zapier, search for BytePhase, then connect your account using the API Key and API Base URL.” One connection powers all triggers and actions.
  3. Zapier tests the connection with a ping. A success means the key, the host and the workspace all line up.

The connection test is GET /api/zapier/ping; it returns "status": "connected" together with the workspace’s display name and the key’s provider type. See the reference for the full response.

All triggers are polling triggers: Zapier asks BytePhase for the most recent records on a schedule and acts on the ones it has not seen. Each returns a bare array, newest first, limit up to 100 (default 50).

Trigger Endpoint Fires for
New Repair GET /api/zapier/triggers/jobs A new repair ticket
New Customer GET /api/zapier/triggers/customers A new customer
New Lead GET /api/zapier/triggers/leads A new lead, however it was created
New Payment GET /api/zapier/triggers/payments A payment received
Repair Status Changed GET /api/zapier/triggers/job-status-changes Each status change on a repair, with the new status, its stage, who changed it and any comment
New Outsourced Repair GET /api/zapier/triggers/outsourced-jobs Work sent to an outside vendor

Records carry readable values — status, status_stage, customer_name, device_brand, assigned_to — not internal ids. Field lists are in the reference.

Polling cadence. Zapier polls on its own schedule, typically every 1 to 15 minutes depending on your Zapier plan. A Zap therefore reacts within that window, not instantly. If more than limit records are created between two polls the oldest are not seen; for a busy trigger, raise the limit in the Zap’s settings if the app exposes it, or ask us about your volume.

Branch on status_stage, not status. Statuses are named per workspace; stages are fixed. A filter on status_stage = completed keeps working when the shop renames “Ready for Pickup”.

Step What it does
Create Lead Creates a lead — name plus mobile_number or email, with optional device and address details
Create Customer Creates a customer
Create Self Check-in Creates a self check-in booking
Find Customer GET /api/zapier/search/customers?search_term=… — searches name, email and mobile; returns up to 25 matches, newest first

Zapier’s own field pickers show the available inputs for each step. Duplicate handling for leads follows the workspace’s rule: by default a lead whose mobile number or email already exists is returned rather than created twice.

Using a Zapier key with Webhooks by Zapier

Section titled “Using a Zapier key with Webhooks by Zapier”

You can also call the intake endpoints directly from a Webhooks by Zapier or Code by Zapier step with the same key — for example to create a lead with a custom field the app step does not expose. Use POST /api/integrations/leads with Authorization: Bearer bp_…, Content-Type: application/json, and an Idempotency-Key built from something stable in the trigger data so a re-run does not create duplicates. See Custom Integrations and Idempotency.

  • 60 requests per minute per key, shared across all Zaps that use the same connection. See Rate Limits.
  • A failed step shows the HTTP status and the error message. The code and request_id are in the response body; see Errors.

Rotating the key in BytePhase stops the old key immediately. Reconnect the Zapier connection with the new key straight away, or every Zap on that connection will error until you do.