The Workspace369 app for Zapier is in beta. You join it with an invite link, connect it with a personal access token, and then use it in your Zaps like any other Zapier app. It can start a Zap when something happens in Workspace369, create records, and look records up.
Join the beta with the invite link
If you would rather not use the app, Webhooks by Zapier also works. It is covered further down.
What the app does
Triggers start a Zap instantly when something happens in Workspace369. There are 27, one for each webhook event:
| Trigger in Zapier | Starts when | Event |
|---|---|---|
| New Time Entry | A time entry is created. | time_entry.created |
| Time Entry Updated | A time entry is updated. | time_entry.updated |
| Time Entry Deleted | A time entry is deleted. | time_entry.deleted |
| Timesheet Submitted | A timesheet is submitted for approval. | timesheet.submitted |
| Timesheet Approved | A timesheet is approved. | timesheet.approved |
| Timesheet Rejected | A timesheet is rejected. | timesheet.rejected |
| New Invoice | An invoice is created. | invoice.created |
| Invoice Paid | An invoice is paid in full. | invoice.paid |
| Invoice Status Changed | An invoice's status changes. | invoice.status_changed |
| Proposal Sent | A proposal is sent to a client. | proposal.sent |
| Proposal Accepted | A client accepts a proposal. | proposal.accepted |
| Proposal Declined | A client declines a proposal. | proposal.declined |
| Contract Sent | A contract is sent for signing. | contract.sent |
| Contract Signer Completed | One signer finishes signing a contract. | contract.recipient_completed |
| Contract Completed | Everyone has signed a contract. | contract.completed |
| Contract Declined | A signer declines a contract. | contract.declined |
| Contract Voided | A contract is voided. | contract.voided |
| Contract Expired | A contract expires before it is signed. | contract.expired |
| New Request (Lead) | A new request (lead) comes in. | lead.created |
| Request Converted | A request is converted to a client. | lead.converted |
| Request Archived | A request is archived. | lead.archived |
| New Booking | A booking is confirmed, at once or once it is paid or approved. | booking.created |
| Booking Rescheduled | A booking's start time moves. | booking.rescheduled |
| Booking Cancelled | A booking is cancelled. | booking.cancelled |
| Booking No-Show | A booking is marked as a no-show. | booking.no_show |
| New Client | A client is added. | client.created |
| Client Stage Changed | A client moves to another pipeline stage. | client.stage_changed |
Actions change something in Workspace369:
- Create Client creates a client, or a prospect if you set the lifecycle stage to Prospect.
- Create Calendar Event creates an event on the Workspace369 calendar.
Searches look something up so a later step can use it:
- Find Client finds clients by name, email or company.
- Find Invoice finds an invoice by number or ID, or searches invoices by text, status or client.
- Find Request finds requests (leads) by text, status or form.
- Find or Create Client finds a client, or creates one if none is found.
There is no action that creates a request. To add someone as a lead, use Create Client with the lifecycle stage set to Prospect.
Before you start
- Workspace369 plan: every paid plan, Cadet and up, including the 14-day trial once the card is saved. A workspace with no plan is refused.
- AI connections: an owner or admin turns on Allow AI connections under Settings, then under AI in AI connections. A token doesn't work until that switch is on.
- Your role: the token acts as you and never does more than your own role allows. Starting a Zap needs the Manage webhooks permission, which Managers and above have. What each trigger needs lists the extra access some triggers ask for.
- Zapier: a Zapier account.
Connect the app and build a Zap
- Open the invite link while signed in to Zapier, and accept the invitation to the Workspace369 app.
- In Workspace369, open Settings, then under AI choose AI connections.
- Under Personal access tokens, choose Create token.
- Enter a Token name such as "Zapier". Under Permissions, keep
workspace:readselected: the connection test needs it. To start Zaps from Workspace369 events, also select Automation triggers (webhooks:manage). For actions and searches, select the scopes they need, listed in Usage. Under Expiry, choose how long the token lasts, then choose Create token. - In the Token created dialog, choose Copy token. It is shown only once. See Personal access tokens for expiry, review and revoking.
- In Zapier, create a Zap, add a step and choose Workspace369. When Zapier asks you to connect an account, paste the token into Personal access token. Leave Base URL as it is unless Workspace369 support tells you otherwise.
- Choose Continue. Zapier tests the connection and names it after your workspace.
- Pick a trigger, an action or a search, then test the step. Turn the Zap on when it works.
When you turn a Zap on, Zapier creates a hook for its trigger in Workspace369. It shows in Settings, then under Data in Webhooks, like a webhook you made yourself. Turning the Zap off or deleting it removes the hook. The REST hooks reference describes the calls behind this.
The token belongs to one workspace. To connect another workspace, create a token there and add a second connection in Zapier.
What each trigger needs
Every trigger needs the Automation triggers (webhooks:manage) scope on the token and the Manage webhooks permission for the person who made the token. Some triggers ask for more, because their events carry people's details:
| Triggers | Also needs |
|---|---|
| New Request (Lead), Request Converted, Request Archived | Access to Requests |
| New Booking, Booking Rescheduled, Booking Cancelled, Booking No-Show | Calendar access to every client's appointments, not only your own clients' |
| New Client, Client Stage Changed | Access to see every client, not only your own |
Owners and admins have this access. If the person who made the token later loses it, Workspace369 stops sending those events. See Plans and permissions.
When you test a trigger, Zapier asks Workspace369 for a sample. For the owner and admins, it is the most recent real event of that type from the last 30 days. For anyone else, or when there hasn't been one, it is invented data with the same field names, so you can map fields before a real event happens.
The app checks the signature on every event it receives and ignores any that fail it or that arrive more than five minutes away from the current time.
Usage
- Triggers use no AI usage. Starting and stopping a Zap's trigger is free.
- The connection test, actions and searches count toward the workspace's AI usage, like the same call made by an AI app. Searches are reads and Create Client and Create Calendar Event are writes. A Zap that runs often uses more.
- Scopes for actions and searches: Create Client needs
clients:write, Create Calendar Eventcalendar:write, Find Clientclients:read, Find Invoiceinvoices:readand Find Requestrequests:read. Your own role must allow the same thing in Workspace369. - Rate limits are shared with your other API calls. When Workspace369 asks Zapier to slow down, Zapier waits and tries again.
- Duplicates: Create Client and Create Calendar Event take an optional Idempotency key. Repeating a key doesn't create a second record.
- Time: give Starts at with a
Zor a UTC offset, such as2026-11-03T14:00:00+01:00. A time without one is refused. For an all-day event, useYYYY-MM-DD. - Who is assigned: Create Calendar Event assigns the event to the token's owner unless you give Assigned team member IDs or switch on Leave unassigned.
Create Client and Create Calendar Event run at once. They don't wait for approval in the app.
Booking tip
On New Booking for a brand-new client, client.id can be empty, because the client record is linked just after the booking is saved. Match the client on client.email instead.
Check that it works
- In Zapier, test the connection. A failed test shows what to fix.
- Test the trigger and confirm the sample has the fields you need.
- Make the event happen in Workspace369, for example by marking a test invoice paid, and confirm the Zap run in Zapier's history.
- For an action, confirm the new record in Workspace369.
If something is wrong
Zapier shows the message below. Messages from Workspace369 come through as they are.
| Where | The message | What to do |
|---|---|---|
| Connection test | Insufficient scope: 'workspace:read' required. Zapier adds how to fix it. | Edit the token in Settings, under AI, in AI connections, Personal access tokens, and select workspace:read. Or create a new token. |
| Turning a trigger on | Insufficient scope: 'webhooks:manage' required. | The token needs Automation triggers (webhooks:manage). Create a token with it. |
| Any call | The Workspace369 API is on every paid plan (Cadet and up), including the 14-day trial once the card is saved. It is not available to workspaces with no plan. | Choose a plan in Workspace369, or save the card to start the trial. |
| Any call | MCP is not enabled for this workspace. | An owner or admin turns on Allow AI connections under AI connections. |
| Any call | Your workspace is out of AI usage for now, so this call did not run. | Add AI usage or upgrade the plan under billing. |
| Any call | Missing or invalid token. Send a personal access token as 'Authorization: Bearer mcp_pat_...'. Zapier adds that you should check the token is copied in full and hasn't been revoked. | Paste the token again, or create a new one if it expired or was revoked. |
| Turning a trigger on | You do not have permission to manage webhook subscriptions. | The person who made the token needs the Manage webhooks permission. |
| Turning on a request trigger | Sending requests to other tools needs access to Requests. | Use a token from someone with access to Requests. |
| Turning on a booking trigger | Sending bookings to other tools needs access to the calendar. or Sending bookings to other tools needs access to every client's appointments. | Use a token from someone with calendar access to every client's appointments. |
| Turning on a client trigger | Sending clients to other tools needs access to Clients. or Sending clients to other tools needs access to every client. | Use a token from someone who can see every client. |
| Turning a trigger on | The message says a workspace can have up to a set number of webhooks and to delete one you no longer use. | The workspace's webhook limit counts webhooks made in Webhooks as well. Delete one you no longer use, then turn the Zap on again. |
| Turning a trigger on | Instant triggers aren't switched on for Workspace369 yet. | Instant triggers aren't available right now. Try again later. Actions and searches still work. |
| Turning a trigger on | Workspace369 did not return a signing secret for this trigger, so it cannot be turned on safely. Please try again or contact Workspace369 support. | Turn the Zap off and on again. If it repeats, contact support. |
| A trigger fires | Webhook signature or timestamp did not match. The request was ignored. | The event was not accepted. Make the event happen again. If it repeats, turn the Zap off and on again. |
| A trigger fires | No signing secret is stored for this trigger. The request was ignored. Turn the Zap off and on again. | Turn the Zap off and on again. |
| Create Calendar Event | Choose either Assigned team member IDs or Leave unassigned, not both. | Clear one of the two fields. |
| Base URL | The Workspace369 base URL must start with https:// | Leave Base URL as it is. |
If a Zap never starts, check that the Zap is on, then open Webhooks in Workspace369 and select its hook. Recent deliveries shows whether events were sent and why one failed. See the Webhooks reference.
Without the app: Webhooks by Zapier
You can also connect Workspace369 to Zapier with Webhooks by Zapier, without joining the beta. Use the Workspace369 app for Zapier (beta); Webhooks by Zapier also works.
- Trigger: Workspace369 sends an event, such as an invoice being paid, to a Zap.
- Action: a Zap calls Workspace369 to create or update a record, such as a client or a task.
Before you begin
- Workspace369: a paid plan, Cadet and up, and the Manage webhooks permission (Managers and above). An admin must turn on AI connections if you want Zap actions.
- Zapier: Webhooks by Zapier is a premium Zapier app and needs a paid Zapier plan (checked October 20, 2026).
- Only the 27 Workspace369 events can start a Zap. There are no events for projects or tasks.
Start a Zap from a Workspace369 event
- In Zapier, create a Zap and choose Webhooks by Zapier as the trigger.
- Choose Catch Hook as the trigger event, then continue.
- Copy the webhook URL Zapier shows. It starts with
https://hooks.zapier.com/. - In Workspace369, open Settings, then under Data choose Webhooks.
- Choose New webhook and paste the Zapier URL as the Endpoint URL.
- Under Events, select the events that should start the Zap, such as
invoice.paid. - Leave Active on and save. Copy the Signing secret if you plan to check signatures.
- Make the event happen once in Workspace369, for example by marking a test invoice paid.
- Back in Zapier, choose Test trigger and pick the request that arrived.
Map the fields under data in the next steps of your Zap. The Webhooks reference lists what each event carries.
About signatures
Every delivery is signed with your webhook's secret. Catch Hook doesn't check the signature, so anyone who learns the Zapier URL could send it fake events. Keep the URL private. To check signatures, use Catch Raw Hook and add a Code by Zapier step that recomputes the signature from the raw body and the X-Webhook-Timestamp header, as shown in the Webhooks reference.
Workspace369 retries a failed delivery up to 5 more times, so a Zap can see the same event twice. Use the X-Webhook-Id header, or webhook_id in the body, to skip duplicates.
Create or update records from a Zap
Zap actions call the Builder API with a personal access token.
- In Workspace369, create a personal access token with only the scopes the Zap needs, such as clients:write.
- In your Zap, add an action step with Webhooks by Zapier and choose Custom Request.
- Set Method to
POSTand URL to the resource, for examplehttps://mcp.workspace369.com/v1/clients. - Under Headers, add
Authorizationwith the valueBearerfollowed by your token, andContent-Typewithapplication/json. - In Data, enter the JSON body, mapping fields from earlier steps.
- Test the step and confirm the record appears in Workspace369.
Keep in mind:
- Each call counts toward the workspace's AI usage, like the same call made by an AI app. A Zap that runs often uses more.
- Sending a proposal, contract, invoice or message waits for a person to approve it in the app, and the call returns
202. If the person who created the token turned on "send without asking", the send runs at once. - Store the token in the Zap step only. Anyone who can edit the Zap can see it, so share the Zap with care.
Check that it works
- Trigger the event in Workspace369 and confirm the Zap run appears in Zapier's history.
- For an action, confirm the new or changed record in Workspace369.
If something is wrong
- The Zap never starts: check the webhook is Active, the event is selected, and the workspace still has an active plan.
- A
403from an action: the token lacks a scope (insufficient_scope), or the workspace has no plan, which the Builder API needs (plan_required). - The webhook switched itself off: its address couldn't be reached safely. Paste the Zapier URL again and save.