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.

Navis Ops workflows support inbound webhooks — HTTP endpoints that external services can POST to in order to trigger a workflow run. When a webhook fires, Navis Ops queues the workflow run immediately, and the JSON payload from the request becomes available as variables throughout the workflow. You can also send requests to external services from within a workflow using the HTTP Request action node.

Setting up an inbound webhook

1

Create or open a workflow

In the Navis Ops sidebar, click Workflows and either create a new workflow or open an existing one.
2

Add a Webhook trigger node

In the workflow canvas, click Add node and select Webhook from the trigger options. Navis Ops generates a unique endpoint URL for this workflow and displays it in the node panel.Copy this URL — you will paste it into your external service’s webhook configuration.
3

Secure the endpoint (recommended)

In the Webhook trigger node panel, set a value for Webhook secret. This is an arbitrary string you choose — for example, a random 32-character alphanumeric value.Once set, every inbound request must include an x-webhook-secret header with this value. Requests without the correct secret are rejected.
Without a webhook secret, anyone who discovers your endpoint URL can trigger your workflow. Always set a secret for production endpoints.
4

Paste the endpoint URL into your external service

Go to your external service (for example, Stripe, GitHub, or Zapier) and add the Navis Ops webhook URL as a webhook destination. Configure it to POST JSON to that URL.If you set a webhook secret, also configure the external service to send it in the x-webhook-secret header on every request.
5

Enable the workflow

Make sure the workflow is enabled (the toggle in the top bar is on). Disabled workflows do not process incoming webhook requests.

How requests are handled

When a POST request arrives at your webhook endpoint:
  1. Navis Ops validates the x-webhook-secret header (if configured). Mismatched or missing secrets return 403 Forbidden.
  2. The request body is parsed as JSON. If the body is not valid JSON or is empty, Navis Ops proceeds with an empty payload object.
  3. Navis Ops responds with 200 OK immediately — the workflow run is queued and processed asynchronously.
  4. The workflow executes with the request payload available as trigger variables.
Navis Ops returns 200 OK as soon as the workflow is queued, not when it finishes running. Your external service should not rely on the response body for execution results.

Request format

Send a standard HTTP POST with a JSON body and the correct headers:
curl https://<your-supabase-project>.supabase.co/functions/v1/webhook-trigger?endpoint_id=<your-endpoint-id> \
  -X POST \
  -H "Content-Type: application/json" \
  -H "x-webhook-secret: your-secret-value" \
  -d '{
    "event": "payment.succeeded",
    "customer_id": "cus_abc123",
    "amount": 9900
  }'
The endpoint accepts any valid JSON structure as the body. Navis Ops does not enforce a schema — your workflow accesses whatever fields you send.

Accessing payload data in the workflow

The request body is available in the workflow as trigger variables using the {{trigger.*}} syntax. See the Events reference for variable path examples and a full walkthrough.

Sending outbound requests

Workflows can also call external URLs using the HTTP Request action node. This lets you:
  • Post a message to Slack when a task is created
  • Send data to an external API when a project status changes
  • Trigger a Zapier webhook from a Navis Ops workflow
The HTTP Request node supports GET, POST, PUT, PATCH, and DELETE methods, custom headers, and variable interpolation in the request body.

Next steps

Webhook payload examples and variables

See how to access trigger variables in your workflow, with real payload examples for common services.