HTTP request step
The HTTP request step is available in contextual and background automations. It sends a request to an external service, waits for the response, and saves selected data to variables.
Configure the request
Open the HTTP request settings in the right panel to see a compact overview.

Click Configure request or the pencil icon to open the method and URL dialog.

Under URL parameters or Headers, click Add to enter a name and value in a separate dialog. The pencil beside a row opens it for editing; the trash icon removes it. Expand longer lists with Show all.

For POST, PUT, PATCH, DELETE and OPTIONS, open the Request body dialog and choose JSON, text or a form. Form fields are also added and edited one at a time. GET and HEAD have no body.

Save in a dialog applies its values to the step settings. Cancel, the close icon or Escape dismisses the dialog without changes. When you have finished, save the step using the button in the right panel.
Enter an API key directly in a header or use a project variable. For example, set the Authorization header to Bearer {{project.crm_token}}. URL parameters and form fields are encoded automatically.
For JSON, start with a valid structure and then insert variables:
{
"customer_id": "{{run.customer_id}}",
"enabled": "{{project.crm_enabled}}"
}
A variable occupying the entire JSON string keeps its original type, including number, boolean, null, array or object. Inserting it into other text produces a string. Variable contents are never evaluated as another template. Numeric literals in the JSON body are sent without rounding, including large numeric identifiers.
Send a subscription event to a CRM
Connect the Added to segment trigger to an HTTP request. A process started by a confirmed subscription provides these template values:
| Template | Value |
|---|---|
{{lead_data.id}} | The current lead's ID in Senler |
{{trigger.event_id}} | The unique ID of the subscription event that started the process |
{{trigger.event_time}} | The time of the subscription event as a whole number of seconds since the Unix epoch |
For example, enter your CRM's event endpoint, select POST and JSON, and set the request body:
{
"lead_id": "{{lead_data.id}}",
"subscription_id": "{{trigger.event_id}}",
"subscribed_at": "{{trigger.event_time}}"
}
Choose the field names on the left according to your CRM's requirements. The subscribed_at value is sent as a number, despite the quotes around its placeholder in the template.
The ID and time belong to the original event: waiting in the automation or retrying the request does not change them. A new subscription event for the same lead receives a different ID. The recipient can use the event ID to prevent duplicate processing if it supports that behavior.
The trigger.event_id and trigger.event_time placeholders are available specifically for starts caused by a confirmed subscription. Manual starts and tests of an individual HTTP step without that event do not populate them. The lead record's creation date, lead_data.created_at, describes a different action and does not replace the subscription time.
Configure Continuation
Choose response data to save and connect the Success and Error outputs to the required steps. Output selection rules, timeouts, and retries are described in error handling.
Before publishing, test the request or paste a sample response. A test request is sent to the real external service and can change its data.