Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.navisops.com/llms.txt

Use this file to discover all available pages before exploring further.

Webhooks let Navis Ops talk to the rest of your tool stack without a dedicated integration. Any external service that can send an HTTP POST request — Stripe, GitHub, your own backend, a serverless function — can trigger a Navis Ops workflow. Workflows can also make HTTP requests to external URLs, letting you push data out to any API or service as part of an automation.

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

1

Create a new workflow

Go to Workflows and click New workflow.
2

Choose the webhook trigger

Select Webhook as the trigger type. Navis Ops generates a unique endpoint URL for this workflow — it looks like:
https://<your-supabase-project>.supabase.co/functions/v1/webhook-trigger/<workflow-id>
Copy this URL. You’ll paste it into the external service that will call it.
3

Access payload data in your workflow

The request body is available as trigger variables throughout the workflow. Use the variable picker to reference fields from the payload. For example, if the incoming JSON has a customer_email field, you can reference it as {{trigger.customer_email}} in any node that follows.
4

Build the rest of the workflow

Add nodes after the trigger to act on the payload data — create tasks, send notifications, update records, or make outbound HTTP requests.
5

Activate and test

Activate the workflow and send a test request to the endpoint (see testing webhooks).

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.
1

Copy your webhook secret

In the webhook trigger settings panel, find the Webhook secret field. Navis Ops generates a secret automatically. Copy it.
2

Configure the sending service

In the external service (Stripe, GitHub, your own service), configure it to include the secret in a header with every request:
x-webhook-secret: <your-webhook-secret>
The header name is always x-webhook-secret.
3

Navis Ops validates every request

When a request arrives, Navis Ops checks the x-webhook-secret header. If the value doesn’t match, the request is rejected and the workflow does not run.
Treat your webhook secret like a password. Do not share it in public repositories, client-side code, or chat messages. If the secret is exposed, regenerate it from the workflow trigger settings.

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.
1

Add an HTTP Request node

In a workflow, click + and select HTTP Request from the node list.
2

Configure the request

In the node settings, fill in:
  • Method — GET, POST, PUT, PATCH, or DELETE
  • URL — the external endpoint to call
  • Headers — any headers the API requires, such as Authorization: Bearer <token> or Content-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.
3

Use the response

The response body and status code are available as variables for subsequent nodes in the workflow.

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.
1

Create a webhook-triggered workflow

Create a new workflow with a Webhook trigger. Copy the endpoint URL.
2

Add the webhook in Stripe

In the Stripe Dashboard, go to Developers → Webhooks → Add endpoint. Paste the Navis Ops endpoint URL and select the payment_intent.succeeded event. Copy the signing secret Stripe provides and paste it into the Webhook secret field in your Navis Ops trigger settings.
3

Add a Create Task node

Add a Create Task node with:
  • TitleFollow up with customer: {{trigger.data.object.metadata.customer_email}}
  • Project → select your customer success project
  • Due date → tomorrow
  • NotesPayment of {{trigger.data.object.amount_received}} received.
4

Activate the workflow

Save and activate. The next time a payment succeeds in Stripe, the task appears in Navis Ops automatically.

Testing webhooks

During development, your workflow endpoint needs to be reachable from the external service. A few tools make this easier:

RequestBin

Capture and inspect incoming HTTP requests without any setup. Paste the RequestBin URL into your external service to see exactly what payload it sends before wiring it to Navis Ops.

ngrok

Expose a local server to the internet with a public URL. Useful if you’re building a service locally that needs to receive webhook events during development.
You can also send test requests directly from your terminal to confirm the Navis Ops endpoint is accepting requests:
curl -X POST https://<your-supabase-project>.supabase.co/functions/v1/webhook-trigger/<workflow-id> \
  -H "Content-Type: application/json" \
  -H "x-webhook-secret: <your-webhook-secret>" \
  -d '{"event": "test", "message": "Hello from curl"}'
A 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

Check that the workflow is active — inactive workflows won’t respond to webhook requests even if the endpoint is valid. Also confirm the x-webhook-secret header matches the secret in the trigger settings if you have validation enabled.
The variable picker populates from a sample payload. Send a test request to the endpoint, then go back to the workflow editor and reopen the node — the picker should now reflect the fields from your payload.
Navis Ops acknowledges webhook requests immediately and processes the workflow asynchronously, so timeouts from the Navis Ops side are unlikely. If the external service is timing out, check that the endpoint URL is correct and that there are no network restrictions blocking the request.
Use a Condition node at the start of your workflow to check the value of the service-specific signature header (for example, x-hub-signature-256 from GitHub or stripe-signature). If the condition fails, add a branch that stops the workflow without taking any action.

See also

Workflow triggers

Overview of all trigger types: webhook, manual, schedule, note, and entity.

Workflow nodes

Full reference for the HTTP Request node and all other node types.

GitHub integration

Step-by-step guide to receiving GitHub webhook events in Navis Ops.

Zapier integration

Connect Navis Ops to 6,000+ apps without writing webhook code.