Workiz
Connect your Workiz account, mirror its leads, import your records, and cut over to the native CRM.
Workiz
Current V2 status (2026-09-02): the Workiz integration is live in V2 as the cutover wizard from V1: each workspace connects its own Workiz account, Workiz leads arrive through the shared lead intake, records are previewed and imported from the Workiz API or a CSV export, sent proposals can push to Workiz as leads with a retry queue behind them, and the owner cuts over when the migration is done. The V1 browser-automation push daemon is not part of V2.
Use Settings > Integrations > Workiz while you move a business from Workiz to Clean Estimate Pro, or while both run side by side.
Only members with the manage integrations permission and access to every location can open the page. The final cutover is the owner's call.
The Cutover Wizard
The top of the page shows where you stand:
- API Connected or API Disconnected
- Webhook Configured or Webhook Missing
- Native CRM Active once you have cut over, Legacy Workiz Sync Active while a sync switch is on, Sync Off otherwise
- tiles for records previewed, the last import, new records, and records that need review
Below it, four tabs: Connection, Migration, Field mapping, Sync activity.
1. Connection
- In Workiz, copy the API token and API secret for your account.
- On the Connection tab, paste both, add an optional account label, and click Connect Workiz.
CE Pro checks the credentials against Workiz before keeping them. They are stored where only the service can read them; the page never shows them again. Paste new ones and click Reconnect Workiz to replace them.
Connecting also creates the workspace's Workiz lead connector in Lead Connectors. Every Workiz lead comes in through it, so its field aliases, assigned rep, notes prefix, and the Review Queue apply. The connector cannot be created by hand.
The webhook
Once connected, the Connection tab shows the endpoint and the signing secret for Workiz's webhook. In Workiz, create a webhook that posts lead and job events to the endpoint and signs the body with the secret (header x-workiz-signature, HMAC-SHA256 of the raw body). Use Copy endpoint and Copy key to move the values across.
- A post to a wrong address or with a stale key is refused.
- A post whose signature does not match is refused.
- Rotate key issues a new endpoint key and a new signing secret; update both in Workiz before its posts are accepted again.
Sync settings
- Outbound Sync: a proposal you send is pushed to Workiz as a lead (see Sync activity).
- Inbound Sync: Workiz lead events create leads in CE Pro (through the Workiz connector).
- Sync Status Updates: when Workiz reports a job as cancelled, lost, or declined, the sent estimate it was pushed from is declined in CE Pro.
Click Save Sync Settings after changing them.
- Manual Sync Now works the retry queue right away.
- Pull & Preview Leads reads your Workiz lead list and hands every lead to the Workiz connector: a lead already here is replayed, a complete new one imports, an incomplete one waits in the Review Queue.
Disconnecting
Disconnect forgets the credentials and pauses the Workiz connector. The webhook key, the sync switches, and the import history stay, so a reconnect picks up where you left off.
2. Migration
Preview and dedupe
Pick the source:
- From the Workiz API: choose Clients and leads, Clients only, or Leads only, and a limit (it applies to clients and to leads separately, so a long client list never crowds out the leads), then click Preview From Workiz.
- From a CSV export: paste the rows (a header row first) and click Preview CSV Rows. The parser reads the usual column names (name or first and last name, email, phone, address, city, state, ZIP, job type, notes, source, a Workiz id) and, in mixed mode, a Type column that says client or lead.
The preview classifies every record against what the workspace already has:
| Result | Meaning |
|---|---|
| Create new | Nothing matches; the import creates it. |
| Existing client | A client with this email or phone already exists; left alone. |
| Existing lead | This Workiz lead was imported before; left alone. |
| Attach lead | The lead's contact already exists as a client; the lead attaches to that client. |
| Needs review | Nothing identifies the record (no email, phone, or name and ZIP), or a new lead has no service address; left for a person. |
The first 25 records are listed; the summary covers all of them.
Import Summary
Import From Workiz or Import CSV Rows does what the preview said:
- new clients are created with their contact and property
- new leads go through the Workiz connector (an incomplete one waits in the Review Queue)
- leads whose contact already exists attach to that client
- records already here are left alone
The summary counts clients created and matched, leads created, attached, matched, and waiting in the Review Queue, records left for review, and any errors. A record the CRM refuses (a phone it cannot store, for example) is listed under errors and the rest of the batch still lands. A client created earlier in the same batch is already there for the leads after it, in the preview and in the import alike. Running the same batch again changes nothing: the preview reports everything as already here.
Final cutover
When the import looks right, the owner clicks Enable Native CRM And Disable Workiz Sync. The sync switches go off, the moment is recorded, and CE Pro runs the CRM from here on. The button is available only after an import has run. The service refuses a cutover without an import as well, so a stale page cannot skip it.
3. Field mapping
The Field mapping tab lists how Workiz fields land on CE Pro records:
| Field | Workiz | CE Pro |
|---|---|---|
| Customer name | FirstName + LastName | Customer name |
| Customer email | Email | Customer email |
| Customer phone | Phone | Customer phone |
| Address | Address | Service address |
| City, state, ZIP | City, State, PostalCode | City, state, zip |
| Job type | JobType | Service interest |
| Job notes | LeadNotes / Comments | Notes |
| Job source | JobSource | A note line |
| Workiz id | UUID | External id (dedupe) |
Custom aliases and the rest of the intake settings live on the Workiz connector in Lead Connectors.
4. Sync activity
Pushes CE Pro could not deliver wait here.
- A push Workiz refuses is tried three times in all: the first attempt right away, then again after 1 minute and after 4 more. After the third failed attempt the row shows failed with the last error and waits for a person.
- Every pushed lead carries a note line
CE Pro estimate <id>. When Workiz accepted a create but its answer never arrived, the retry reads the recent leads back, finds the one with that line, and updates it instead of creating a second lead. - Retry Failed puts the newest failed row of each estimate back in line, skipping estimates that already have a retry waiting. Refresh reloads the list.
- Push to Workiz pushes one estimate by id right away: a new estimate becomes a Workiz lead, one pushed before is updated. If Workiz cannot be reached the push waits in the queue.
A pushed estimate remembers its Workiz lead id, so a status change Workiz reports for that job reaches the right estimate.
Troubleshooting
Connect Workiz says the credentials were refused
Workiz answered the check with an error. Copy the token and secret again from Workiz and make sure the account has API access.
Workiz posts are refused
Check the endpoint in Workiz against Copy endpoint (the key in the address and the signing secret both change when you rotate) and the signing secret against Copy key. A refused post is not retried by CE Pro.
Leads from Workiz do not appear
Open the Workiz connector in Lead Connectors: Recent Imports shows every lead the webhook or a pull handed over, and the Review Queue holds the incomplete ones. Inbound Sync must be on.
A push stays failed
Open Sync activity: the last error says what Workiz answered. Fix the cause (usually the account's API access) and click Retry Failed.
Related Guides
Related articles
Was this article helpful?
Still need help? Contact support