Inbound webhooks: trigger workflows from external services
An inbound webhook gives you a unique URL that, when called, starts a Navis Ops workflow and passes along whatever data was in the request body.Set up a webhook trigger
Create a new workflow
Choose the webhook trigger
Access payload data in your workflow
customer_email field, you can reference it as {{trigger.customer_email}} in any node that follows.Build the rest of the workflow
Activate and test
Secure your webhook
By default, your endpoint is publicly accessible to anyone with the URL. To verify that requests are coming from a trusted source, use the webhook secret.Copy your webhook secret
Configure the sending service
x-webhook-secret.Navis Ops validates every request
x-webhook-secret header. If the value doesn’t match, the request is rejected and the workflow does not run.Outbound webhooks: make HTTP requests from a workflow
Workflows can send data to any external URL using the HTTP Request node. This is how you push data out — call an external API, trigger a service, or forward data to your own backend — as part of an automation.Add an HTTP Request node
Configure the request
- Method — GET, POST, PUT, PATCH, or DELETE
- URL — the external endpoint to call
- Headers — any headers the API requires, such as
Authorization: Bearer <token>orContent-Type: application/json - Body — for POST and PUT requests, the JSON payload. Use the variable picker to include dynamic values from earlier in the workflow.
Use the response
Example: Stripe payment → create a follow-up task
When a payment succeeds in Stripe, this workflow creates a task in Navis Ops so your team can follow up with the customer.Create a webhook-triggered workflow
Add the webhook in Stripe
payment_intent.succeeded event. Copy the signing secret Stripe provides and paste it into the Webhook secret field in your Navis Ops trigger settings.Add a Create Task node
- Title →
Follow up with customer: {{trigger.data.object.metadata.customer_email}} - Project → select your customer success project
- Due date → tomorrow
- Notes →
Payment of {{trigger.data.object.amount_received}} received.
Activate the workflow
Testing webhooks
During development, your workflow endpoint needs to be reachable from the external service. A few tools make this easier:RequestBin
ngrok
200 OK response means the endpoint is live and the workflow ran (or was queued to run). Check the Workflow runs panel to see the result.
Troubleshooting
The workflow isn't running when I send a request
The workflow isn't running when I send a request
x-webhook-secret header matches the secret in the trigger settings if you have validation enabled.Payload fields aren't available in the variable picker
Payload fields aren't available in the variable picker
The external service is getting a timeout
The external service is getting a timeout
I need to validate the signature from GitHub or Stripe instead of using the x-webhook-secret header
I need to validate the signature from GitHub or Stripe instead of using the x-webhook-secret header
x-hub-signature-256 from GitHub or stripe-signature). If the condition fails, add a branch that stops the workflow without taking any action.