Automation
Two directions, one workflow builder.
A workflow can carry its own secret URL for your systems to post to.
- Inbound webhookPOST JSON, up to 64 KBapp.spodus.com/api/workflows/webhook/8f2c…/wf_31a?secret=••••••••1Your system posts
- Find recordsContacts where Email is {{body.email}}If / elseNobody found → create the leadHTTP requestPOST hooks.internal/ops2The workflow runs
- Succeeded9:41Succeeded9:12Succeeded8:55The last 50 runs are kept, step by step.3Every run is kept
What Webhooks gives you.
Start a workflow from outside
Post JSON to a workflow's own URL and it runs. The body arrives as variables the steps after it can read, up to 64 KB.
Call your systems back
An HTTP request step sends GET, POST, PUT, PATCH or DELETE to an endpoint you control, with the record's own values written into the URL, the headers and the body.
A secret per workflow
The credential belongs to the one workflow it was minted for, is compared in constant time, and stops working the moment that workflow is switched off.
The specifics.
Every number here came out of the product rather than a roadmap.
- Inbound
- One URL per workflow, shown in the builder as its Live URL. POST JSON to it and the workflow starts. It answers only while that workflow is Active, so switching the workflow off closes the door.
- How an inbound call is authenticated
- By the secret in that workflow's Live URL, sent as an x-webhook-secret header or as a query parameter, and compared in constant time. It authorises that one workflow and nothing else.
- What the workflow can read
- The whole JSON body, up to 64 KB, addressed as variables in any step that follows. A body that is not JSON is refused rather than half-read.
- Outbound
- An HTTP request step in any workflow. You set the method, the headers and the body, and values from the record that triggered the run are written into all three.
- Outbound timing
- Five seconds, then the step fails. There is no retry, and a redirect counts as a failure. Private and loopback addresses are refused.
- What else a workflow can do
- Create, update, delete and search records, send email, branch on a condition, filter, and loop over what it found. An inbound call is not limited to one action.
- What starts a workflow
- An inbound call is one option among several. A schedule, a date arriving on a record, a form submission, a record changing, or somebody pressing Run all reach the same steps.
- Plans
- Starter and Growth. Inbound and outbound are one entitlement, so a plan with either has both, and a workspace below it gets a 402 on the URL and a failed step in the run log.
- Volume
- Nothing is throttled per second. Every run counts against the plan's monthly automation allowance: 20,000 on Starter and 100,000 on Growth.
- Seeing what happened
- The last 50 runs are kept, step by step, with each step marked as succeeded, skipped or failed.
Switching it on.
In this order. Nothing here needs us.
- Build a workflow in Automations and choose the inbound webhook as its trigger. Only admins can author one.
- Copy the Live URL, secret and all, and post your JSON to it.
- To call outward instead, add an HTTP request step and point it at your endpoint.
- Switch the workflow to Active. An inactive workflow's URL answers nothing.
Webhooks are not the API.
- To read or write records from your own code, use the REST API with a key made in Settings, on every plan.
- Webhooks only start a workflow and call out from one.
- There is nothing to subscribe to either: Spodus calls your system when a workflow you built runs an HTTP step, not whenever a record changes.
- And the sharp edge worth knowing before you design around it: an outbound step does not capture what your endpoint replied, so a workflow cannot branch on the answer or write it to a record.
- It sends, it notes whether the call succeeded, and it moves on.
The rest of the list.
It is a short one, and every page says what its connection does not do.
- Migration
CSV import
Bring contacts, companies, deals and tasks in from a spreadsheet, with seven vendor presets and a duplicate check.
- Email
Gmail
Connect a Gmail mailbox over IMAP and SMTP so mail with a contact shows on their record, and reply from there.
- Email
Outlook
Connect an Outlook mailbox over IMAP and SMTP, where your account and your administrator allow those protocols.
Two ways
to start
Start fresh today, or bring the clients, deals and history you already have.
Start fresh
Free for up to three people.
You get every product: CRM, invoicing, support, team, chat and Spodus AI, which asks before it changes anything. Upgrade when your team grows.
Start for freeBring your data
Bring your data from the tool you use now.
Your deals arrive with their stages, owners and dates. Connect your work email, and each client's emails land on their record. On a paid plan, we'll move it all for you, free.


Connect it yourself with a workflow.
Start today, or bring your own data to a demo and see it there.
Questions, answered
Yes, with the REST API. It lists, creates, reads, updates and deletes records in any object, custom ones too. An owner or admin makes a key in Settings, and the key acts with that person's permissions. It is on every plan. Webhooks are the other half: a URL that starts a workflow, and a step that posts back out.
Starter and Growth. The inbound URL and the outbound HTTP step are a single entitlement, so a plan with one has both. A workspace below Starter gets a 402 on the URL and a failed step in the run log.
Only from inside a workflow. There is nothing to subscribe to and no list of endpoints to register: you add an HTTP request step and your URL is called when that workflow runs. So the useful question is what starts the workflow, which can be a schedule, a date on a record, an inbound call, a form submission or somebody pressing Run.
No. The step records whether the call succeeded and carries on, so nothing later can branch on the reply or save it to a record. If your integration depends on reading an answer back, have your own system post to the workflow's inbound URL instead and drive the next step from that.
If it can call a URL, or be called at one, this is how you connect it, and most modern tools do both. Your own code can also use the REST API. If neither works, Spodus has no way to reach it today and there is no marketplace of connectors to go looking in.