When an external service sends a POST request to your Navis Ops webhook endpoint, the request body becomes available as trigger variables throughout the workflow. You reference these variables using theDocumentation Index
Fetch the complete documentation index at: https://docs.navisops.com/llms.txt
Use this file to discover all available pages before exploring further.
{{trigger.*}} syntax, where the path after trigger. follows the JSON structure of the payload.
How trigger variables work
Every field in the inbound JSON body is accessible as a variable. If the payload is:| Variable | Value |
|---|---|
{{trigger.type}} | payment_intent.succeeded |
{{trigger.data.object.id}} | pi_3abc123 |
{{trigger.data.object.amount}} | 9900 |
{{trigger.data.object.currency}} | usd |
{{trigger.data.object.customer}} | cus_xyz |
Example: Stripe payment webhook
When a payment succeeds in Stripe, Stripe sends apayment_intent.succeeded event to your webhook URL. Here is the shape of that payload:
Workflow example: create a follow-up task on payment
You want to automatically create a task to follow up with the customer whenever a payment succeeds. Workflow setup:- Trigger: Webhook (your Stripe webhook URL, with
x-webhook-secretmatching the value in Stripe’s dashboard) - Action: Create Task
- Title:
Follow up with {{trigger.data.object.customer}} - Description:
Payment {{trigger.data.object.id}} for {{trigger.data.object.amount}} {{trigger.data.object.currency}} succeeded. Order: {{trigger.data.object.metadata.order_id}} - Project: (select your Customer Success project)
- Priority: High
- Title:
Example: GitHub webhook
When a pull request is opened on GitHub, GitHub sends an event like this:- Task title:
Review PR #{{trigger.pull_request.number}}: {{trigger.pull_request.title}} - Description:
Opened by {{trigger.pull_request.user.login}} in {{trigger.repository.name}}. Link: {{trigger.pull_request.html_url}}
Securing your webhook endpoint
Set a webhook secret in the Webhook trigger node panel. Then configure your external service to send that value in thex-webhook-secret header on every request.
x-webhook-secret header is missing or does not match the configured value. The request returns 403 Forbidden and the workflow does not run.
Tips for testing webhook integrations
Before wiring up a real service, use a tool to inspect the exact payload your service sends. This lets you figure out the variable paths before building the workflow. Recommended tools:- webhook.site — paste the temporary URL into your service, trigger a test event, and inspect the payload in the browser.
- RequestBin — similar to webhook.site, useful for capturing and inspecting HTTP requests.
- Create a temporary endpoint on webhook.site.
- Paste it into your external service as the webhook destination.
- Trigger a test event from the service.
- Copy the payload from webhook.site.
- Use those field names and paths to set up your
{{trigger.*}}variables in Navis Ops. - Swap the webhook.site URL for your actual Navis Ops endpoint URL and enable the workflow.
Variable reference
| Variable | Description |
|---|---|
{{trigger.*}} | Any field from the inbound JSON payload, accessed by dot-notation path |
{{trigger.endpoint_id}} | The ID of the webhook endpoint that received the request |
{{trigger.timestamp}} | ISO 8601 timestamp of when Navis Ops received the request |
{{trigger.method}} | HTTP method of the inbound request (usually POST) |
endpoint_id, timestamp, and method fields are added by Navis Ops automatically. All other fields come from the request body.