Skip to main content

Webhook Trigger

Fire an automation from any external system using a unique webhook URL.

Updated this week

Introduction

The webhook trigger lets any external system fire a Level automation via an HTTP request. When you save this trigger, Level generates a unique URL. Send a POST request to that URL and the automation runs.

Use it to integrate Level with tools that support outbound webhooks — PSA platforms, monitoring systems, external scripts, or anything that can make an HTTP call.

ℹ️ NOTE: Adding non-manual triggers requires either admin status or a role with the Manage automations permission. If you can see the automation but can't add triggers, check your role's permissions with your admin. See Workspace → Permissions for details.


Webhook Trigger

Generating the Webhook URL

The webhook URL is created when you save the trigger — it doesn't exist before that. Click Save and Level generates a unique token tied to this trigger.

Webhook Trigger

⚠️ WARNING: Deleting this trigger also deletes the unique token. Any external system pointing to that URL will stop working immediately. If you need to regenerate the token, delete and recreate the trigger, then update the URL in your external system.

Requiring an Authorization Header

Check Require an authorization header to add token-based authentication to the endpoint. When enabled, requests must include the authorization key in the request header — unauthenticated requests are rejected.

Requiring an Authorization Header

The cURL command below the URL updates automatically to include the -H "Authorization: ..." header when this option is enabled. Copy the full cURL command to use as a reference when configuring your external system.

💡 TIP: Enable the authorization header for any webhook endpoint that's reachable from the public internet. It ensures only systems with the key can fire the automation.

Parameter Mapping

Map keys from the incoming JSON payload to automation variables so your actions and scripts can use that data.

Each mapping row has two fields:

  • Parameter key — A key name from the incoming JSON payload (e.g., device_id, ticket_number)

  • Automation variables — The variable name to map to in the automation pipeline

Click + Add new parameter to add as many mappings as needed. Each one creates a named variable that can be referenced in downstream actions and scripts.

Parameter Mapping

💡 TIP: Map any value your external system sends in the webhook payload — ticket numbers, client identifiers, device metadata, anything — and reference it in script actions or notification messages further down the pipeline.

Condition

You must select a condition to save the trigger. Choose All devices or narrow the scope to target specific devices when the webhook fires.

For the full condition reference, see Trigger Conditions.

Additional Options

Expand Additional options to set an optional Trigger name and toggle the trigger on or off with the Enabled switch.

  • Trigger name — Replaces the default label on the pipeline trigger card.

  • Enabled — When off, the trigger won't fire even if the URL receives a valid request.


FAQ

  • Where do I find the webhook URL after I've already saved the trigger? Open the automation in edit mode and click the webhook trigger card. The URL is displayed in the Step configuration section with a Copy button.

  • What HTTP method does the webhook expect? GET and POST are both accepted.

  • Can I use the same webhook URL to trigger the automation multiple times? Yes. The URL is persistent as long as the trigger exists. Any valid request to that URL fires the automation, provided the device isn't already in an active run for this trigger.

  • What happens if the webhook fires while a device is already in an active run? A device can only be in one active run per trigger at a time. If the webhook fires again while that device is already running, the new request is ignored for that device. If the device isn't currently in a run, it fires normally.

  • What format should the webhook payload be in? JSON. Send a JSON body with the keys you want to map to automation variables.

  • Who can add or edit triggers on an automation? Admin users can always add triggers. Non-admin users need the Manage automations permission on their role, plus access to the automation's group. If an automation has no triggers yet, any user with group access can add the first one.

Did this answer your question?