Skip to main content

Configure an outbound webhook

Configure an Outbound Payload to send an event-style request and track whether delivery succeeded.

Configure an outbound webhook

Use an outbound webhook when Salesforce needs to tell another system that something happened.

In Payloads, a webhook is configured as an Outbound Payload. The request can still have a body, headers, URL parameters, and URL modifiers. The difference is the goal: a webhook usually cares that the receiving system accepted the event, not that Salesforce stores detailed response data.

For the fuller request and response pattern, see Configure an Outbound Payload.

When to use it

Use this pattern when you need to:

  • notify another system after a Salesforce event

  • send a compact event message

  • include fields from Salesforce records in the request

  • pass runtime values into the request

  • treat the response status as the success or failure signal

The Stripe demo webhook sends a fulfilment update after payment completion. It sends a session Id, an Opportunity Id, and a payment status label to a fulfilment endpoint.

Payload structure

Start with an Outbound Payload.

The Request section contains Dynamic Inputs, Data Queries, Body, Headers, Parameters, and Modifiers. You can leave the Response Body and Data Targets empty when the response body is not useful to Salesforce.

An Outbound Payload showing the configured fulfilment update request.

A webhook-style Outbound Payload focuses on the request Payloads sends from Salesforce, with delivery success handled by the Job result.

Runtime fields

Start with the main fields on the Payload.

  • Type: choose Outbound.

  • Integration: choose the Integration this webhook belongs to.

  • Credential: choose a Credential if the receiving API requires authentication.

  • Endpoint: enter the external endpoint URL.

  • Method: choose the HTTP method, usually POST.

  • Outbound Content Type: choose the format Payloads should send.

  • Inbound Content Type: choose the format Payloads should expect if the receiver returns a body.

  • Timeout: set the maximum callout time in seconds.

  • Response Failure Policy: choose how Payloads should interpret the response status.

For webhook-style integrations, Fail On Non 2xx is usually the clearest policy. A 4xx or 5xx response should normally create a failed Job that someone can review.

Dynamic Inputs

Dynamic Inputs are useful when the webhook is triggered by another part of Salesforce.

For example, a Flow might pass a record Id, a status value, or an external session Id into Payloads at runtime. The webhook can then place that value in the body, in a URL parameter, or in a URL modifier.

In the Stripe demo, the session Id is supplied as a Dynamic Input and reused in the request.

Data Queries

Use Data Queries when the webhook needs Salesforce data that is not passed in directly.

The query can fetch the record that triggered the event, related records, or reference data needed by the external system.

Keep webhook queries small and predictable. Event-style integrations are easier to support when each run sends one clear message.

Request Body

The Body tab defines the message sent to the receiving system.

For JSON webhooks, create Elements that match the receiving API's expected shape. Each Element should have a clear source, such as a Salesforce field, Static Value, Dynamic Input, or Transformation.

For simple status notifications, keep the body small. Send the values the receiving system needs to act, not every field Salesforce knows about the record.

Headers

Use Headers for request metadata required by the receiving system.

Common examples include content negotiation headers, idempotency keys, tenant identifiers, or custom routing headers. Put authentication details in a Credential where possible.

An Outbound Payload showing configured request headers for a fulfilment update.

The webhook demo uses headers for source and correlation values that help the receiving system trace the event.

Parameters

Use Parameters for query string values.

Parameters are useful when the receiving API expects values in the URL rather than the request body. Keep them consistent with the external API documentation, and avoid duplicating the same value in both the URL and body unless the API requires it.

An Outbound Payload showing configured request parameters for a fulfilment update.

Parameters keep lightweight routing values in the URL while the event details stay in the request body.

Modifiers

Use Modifiers to replace placeholders inside the endpoint URL.

This is useful when the receiving API expects a URL like /sessions/SESSION_ID/status. Instead of creating a different Payload for every session, use a Modifier to replace SESSION_ID when the Payload runs.

What to check before testing

Before you run the Payload, check that:

  • the Endpoint points to the correct environment

  • the Method matches the receiving API

  • the request Body contains the values the external system needs

  • required headers and parameters are configured

  • URL Modifiers match the placeholder text in the endpoint

  • any Dynamic Inputs are supplied by the caller

  • the Response Failure Policy will flag failed deliveries

After a test run, open the Job record and confirm the outbound request, response status, and response body are what you expected.

Did this answer your question?