How to Connect Typeform to BytePhase (Repair Shop Setup Guide)

By Published On: August 13th, 2026Categories: Integrations10.2 min read
Table of contents
Share Post

Connect a Typeform form to BytePhase and every response lands in your repair shop CRM automatically — as a new Lead or a Self Check-in, mapped to whichever fields you choose, with no copy-paste and no Zapier account required. Typeform posts straight to a webhook URL that BytePhase gives you, so the whole setup is: generate the URL in BytePhase, paste it into Typeform’s webhook settings, send a test response, map the fields, and activate. It takes about 10 minutes.

What You’ll Need

RequirementNotes
A BytePhase account with access to Business SettingsNeeded to open Settings → Integrations
A Typeform account with a published formAny plan that supports webhooks in your form’s Connect panel
About 10 minutesMost of it is copy-pasting a URL and clicking through the wizard

What the Typeform Integration Does

A Typeform submission can create one of two things in BytePhase: a Lead (goes into Reception → Contact Us as an enquiry your team follows up) or a Self Check-in (a customer-submitted device drop-off, matched by mobile number, that your team converts into a repair job with one click when the device physically arrives). Pick Lead for enquiry, quote-request, or “contact us” style forms. Pick Self Check-in if the form is asking a customer to describe a device they’re dropping off or shipping in. BytePhase does not create a job or ticket automatically from either — that conversion step is manual and deliberate, so nothing gets opened before the device is actually in your hands.

This is a one-way flow: a Typeform submission creates or updates a record inside BytePhase, but nothing goes back the other way. There’s no two-way sync — if a Lead’s status changes inside BytePhase, Typeform never hears about it, and BytePhase never reaches back out to Typeform for anything after the initial submission. For a repair shop, the typical use case is a “book a repair” or “request a quote” form embedded on your website: a visitor fills it out, and by the time your Reception team refreshes their screen, the enquiry is already sitting there with the device details attached.

How the Typeform Integration Works

Someone submits your form

A customer fills in the Typeform form you already use — nothing changes for them.

Typeform calls your webhook

Typeform posts the response to your BytePhase webhook URL and signs it, so BytePhase can prove the call really came from Typeform.

Your field map is applied

Each answer is matched to a BytePhase field. Anything you did not map is kept as a custom field.

The record is created

It lands as a Lead or a Self Check-in — whichever destination that form is set to — and is written to the Activity log.

Step 1: Open the Typeform Card in BytePhase

Log into BytePhase and go to Settings → Integrations. Under the Website & Forms section you’ll find a Typeform card. Click Connect to start the setup wizard.

Step 2: Choose Where Submissions Land

The wizard opens on Destination, and it comes first because everything after it depends on the answer: the webhook URL you copy in the next step has the destination pinned into it. Choose Self Check-in if the form should open a job for a device that is coming in, or Lead if it should raise an enquiry for your team to follow up. You are not choosing once and for all — see running both side by side below.

Step 3: Copy Your Webhook URL and Signing Secret

The wizard’s Connect step generates a webhook URL in the form:

https://<tenant>.api.bytephase.com/api/<tenant-slug>/integrations/ingest/typeform?token=YOUR_KEY&destination=self_checkin

The key embedded in that URL is shown once — copy it now. There’s also an optional signing secret: if you generate one, BytePhase verifies every incoming request against a Typeform-Signature HMAC header, and rejects anything that doesn’t match. If you skip it, BytePhase still accepts submissions — it just isn’t checking that they genuinely came from Typeform. For anything beyond a low-stakes internal form, generate the secret and copy it alongside the URL.

Step 4: Add the Webhook Inside Typeform

In Typeform, open your form and go to Connect → Webhooks, then add a new webhook:

  • Paste the webhook URL from Step 3 into the endpoint field
  • If you generated a signing secret, paste the same value into Typeform’s Secret field
  • Save the webhook

Typeform’s own documentation covers the webhook panel in more detail if you want the full reference: Typeform’s webhook setup guide.

Step 5: Send a Test Submission and Map Your Fields

Fill out and submit your own Typeform form once. Back in the BytePhase wizard, click Check now (it also polls automatically every few seconds). BytePhase reads the test submission and lists every field it detected — using each question’s reference name or title as the source key, with hidden fields merged in and choice, multi-choice, and payment answers flattened into plain values. A file-upload question comes through as a URL string only; BytePhase never fetches or stores the file itself.

The wizard auto-matches obvious pairs — a field literally called “email” maps to email automatically — but Typeform mapping is required, not optional: review every row and map at least one of email or mobile before you can continue. There are no server-side defaults or transforms here; whatever isn’t mapped is preserved as a custom field rather than dropped, but it also isn’t guessed at.

Step 6: Set the Duplicate Policy and Activate

Choose how repeat submissions are handled. The defaults are sensible starting points — Lead defaults to skip a repeat submission (matched by email OR mobile + country code); Self Check-in defaults to create a new record even for a returning customer (matched by mobile against any check-in still open). Review the summary screen and click Activate integration. Nothing goes live until you do.

Run Self Check-in and Lead Side by Side

You do not have to pick one for the whole account. A single integration can serve several forms at once, and each one carries its own destination and its own field map. BytePhase keys every entry by form and destination together, and the destination pinned in the URL is absolute — a Self Check-in URL will never fall through to a Lead entry or borrow its field mapping.

So a “book a repair” form can open a Self Check-in while a “request a quote” form raises a Lead, from the same Typeform account, running in parallel. Add the second form in the wizard, choose the other destination, and give it its own URL. The Activity log records which destination each submission was routed to, so the two never blur together.

Field Mapping Reference

Lead and Self Check-in are two different record types, so they accept two different sets of fields. Map as many as your Typeform form collects — anything left over is kept as a custom field, not discarded. Pick the table that matches the destination you chose in Step 2.

Lead fields

Use this table when the destination is Lead — an enquiry to follow up, before any device is handed over.

BytePhase FieldRequired?Notes
nameYesMax 60 characters
emailOne of email or mobileMax 255 characters
mobile_numberOne of email or mobileMax 20 characters
mobile_country_codeNoMax 10 characters; paired with mobile_number for duplicate matching
phone_numberNoSecondary phone number, max 20 characters
contact_person_nameNoMax 60 characters — for enquiries raised on behalf of a business
sourceNoMax 100 characters; matched to an existing lead source by name
role_idNoOne of 7, 8 or 9; defaults to End User when omitted
next_follow_upNoDate — schedules the first follow-up
commentNoFree text
device_typeNoMax 100 characters; matched to an existing device type by name
device_brandNoMax 100 characters; an unmatched value is kept as a custom brand name
device_modelNoMax 100 characters; an unmatched value is kept as a custom model name
address.address_lineNoMax 200 characters
address.cityNoMax 100 characters
address.stateNoMax 100 characters
address.zip_codeNoMax 20 characters

Duplicate handling: Leads default to Skip. BytePhase looks for an existing lead with the same mobile_number and mobile_country_code, or the same email, and reuses it instead of creating a second one.

Self Check-in fields

Use this table when the destination is Self Check-in — a customer handing in a device, so the record carries serial numbers, accessories and pickup details a Lead has no place for.

BytePhase FieldRequired?Notes
nameYesMax 255 characters
emailOne of email or mobileMax 255 characters
mobile_numberOne of email or mobileMax 20 characters
mobile_country_codeNoMax 10 characters
device_typeNoMax 255 characters; matched to an existing device type by name
device_brandNoMax 255 characters; an unmatched value is kept as a custom brand name
device_modelNoMax 255 characters; an unmatched value is kept as a custom model name
serial_numberNoMax 255 characters
serial_number_2NoMax 191 characters — a second serial or IMEI
device_passwordNoMax 191 characters — unlock code or device password
accessoriesNoA list, or a comma-separated string — split into individual items
commentNoFree text — the reported fault
is_recoveryNoBoolean — flags the job as a data-recovery case
is_pickup_bookedNoBoolean — marks that a pickup was requested
scheduled_onNoDate — the requested pickup or drop-off date
custom_fieldsNoObject; each value max 1,000 characters
address.address_lineNoMax 255 characters
address.cityNoMax 255 characters
address.stateNoMax 255 characters
address.zip_codeNoMax 20 characters

Duplicate handling: Self Check-ins default to Create, so every submission becomes its own check-in — the right behaviour when the same customer brings in a second device. Only if you change the policy to Skip does BytePhase look for a match, and it then matches on mobile_number against open check-ins only.

Testing & Monitoring Your Submissions

Every submission — successful, duplicate, failed, or simply received — shows up on the integration’s Activity screen, with both the raw payload Typeform sent and the mapped version BytePhase saved. Use Send test to fire a synthetic submission without touching your live form, and the one-click Retry action to replay anything that failed after you’ve fixed the underlying cause. If an integration racks up 3 failures in a row you’ll see a warning banner in the app; at 5 in a row BytePhase also emails your tenant’s support address. Submission logs are kept for 90 days.

Troubleshooting

SymptomLikely CauseFix
401 UnauthorizedThe token in the webhook URL is wrong, or the key was rotated in BytePhaseRe-copy the webhook URL from Settings → Integrations → Typeform — rotating generates a new token
422 Unprocessable EntityNeither email nor mobile is mapped, or a required field is missing from the responseReopen the wizard’s field mapping step and confirm at least one contact field is mapped
status: duplicate in the Activity logThe submission matched an existing Lead or open Self Check-in under your duplicate policyExpected behavior — adjust the duplicate policy (skip/create) if it’s catching more than you want
Typeform shows “Invalid signature”The signing secret in Typeform doesn’t match the one saved in BytePhase, or only one side has a secret setRe-copy the secret into Typeform’s webhook Secret field, or clear it on both sides to test unsigned first
“Nothing detected” after clicking Check nowThe test response wasn’t actually submitted, or the webhook URL has a typoSubmit the Typeform form yourself once, then click Check now again
429 Too Many RequestsMore than 60 requests per minute hit your webhook URLRare for a single form — if it recurs, check for a duplicate webhook firing on the same form

Security

Your API key is sha256-hashed at rest — BytePhase can verify it but can’t display it again, so store the URL somewhere safe when you copy it. Rotate the key any time from the integration card; the old one stops working the moment you do. When you set a Typeform signing secret, every request is verified with HMAC-SHA256 against the Typeform-Signature header before it’s processed. Submissions are isolated per tenant — a webhook URL only ever writes into your own BytePhase account, never another tenant’s data.

Start Capturing Typeform Leads in BytePhase

Once activated, every Typeform response becomes a Lead or Self Check-in in BytePhase without anyone re-typing a form response into your CRM. From a Self Check-in, converting to a repair ticket is one click once the device is actually in front of you. If your team runs Jotform instead, see our Jotform setup guide; if you want more flexibility than a native webhook offers, the n8n integration guide and the Zapier guide cover the automation-platform routes. See every connector BytePhase supports on the integrations page.

BytePhase includes the Typeform integration on every plan, with a 15-day free trial and no credit card required. Start your free BytePhase trial →

Share Post
Akshay Ghalme

Akshay Ghalme

DevOps Engineer

Stay in a loop

Subscribe to our free Newsletter