The Outgoing Webhook step sends workflow data to an external system over HTTP. With repeating records, the step can include full collections in a JSON request body, such as an order with line items. The step expands stored collections into JSON arrays so the receiving system gets the nested structure it expects.
Note: This article covers sending collections of repeating data from the Outgoing Webhook step. For general setup of the step, see Outgoing Webhook Step Overview. For an overview of repeating data across Streamline, see Working with Repeating Data (Collections) in Streamline.
Who Has Access?
| Role | What they can do |
|---|---|
| Admin, Manager, Builder | Configure Outgoing Webhook steps, map collection data into the request body, and test the webhook from the builder. |
| End User | Run workflows that send data through configured outbound webhooks and view workflow execution results where available. |
Access follows existing workflow builder permissions. A connected data source is not required to configure an Outgoing Webhook step.
Key Capabilities
- Send full collections. Expand stored collections into JSON arrays in the outbound payload.
- Place collections at authored paths. Put a collection where an array should appear in the JSON body, and the step expands it at that location.
- Send nested structures. Reconstruct parent > child > grandchild relationships, up to two levels after parent, so the receiving system gets nested arrays.
- Include multiple collections. Place multiple independent collections in the same payload, such as line items and shipping addresses.
- Preserve JSON structure. The step keeps the authored JSON structure while replacing collection references with the resolved collection data.
How to Set It Up
Collection expansion is supported for JSON request bodies. Build the body in the shape expected by the receiving system, then place each collection where its JSON array should appear.
- Open the workflow in the builder and select the Outgoing Webhook step.
- Set the request method and target URL.
- Build the JSON request body in the shape expected by the receiving system.
- Select the collection field you want to send.
- Place that collection at the location in the JSON body where the array should appear.
- For nested data, place the child collection inside the parent object so the payload matches the receiving system's expected structure.
- If the payload needs multiple collections, place each collection at its own location.
- Confirm the request body is valid JSON.
Note: XML, CSV, multipart, and raw binary payloads do not support collection expansion.
Tip: The structure you author is the structure that is sent. The step expands collections at the exact paths where you place them.
Example: Order With Line Items
You configure an Outgoing Webhook step that posts an order to a fulfillment system. In the request body, you place the Line Items collection inside the order object.
When the workflow runs:
- The order's fields are sent as standard JSON values.
- Line Items expands into a JSON array, with one object per line item.
- The receiving system gets the full nested order structure instead of a flattened payload.
Feature Considerations
- JSON only. Collection expansion is supported only for JSON payloads. XML, CSV, multipart, and raw binary formats are not supported for collection payloads.
- Maximum nesting depth is two levels. Parent > child > grandchild is supported. Deeper structures are not supported, and references nested inside downloaded collection items are not expanded in this release.
- Payload size is enforced. Expanded collection data is limited to 10 MB per downloaded collection and 30 MB total resolved collection data. Requests that exceed the maximum size fail before the request is sent.
- Collection size guidelines apply. Payloads support up to 50 collections, 50 fields per collection, and 1,000 items per collection.
- Maximum label length is 100 characters. Collection labels are capped at 100 characters.
- Requests are validated before sending. Invalid JSON or an illegal request shape, such as a GET request with a body, fails before transmission.
- Empty or missing collections are sent as empty arrays. Confirm the receiving system accepts empty arrays before publishing the workflow, especially if it treats an empty array differently from a missing field.
Troubleshooting Common Issues
| Issue | Resolution |
|---|---|
| Collection data is sent as a reference instead of an array | Verify the collection field is placed at the intended location in the JSON request body and that the upstream step produced a valid collection. |
| Nested data beyond two levels is missing | Maximum nesting depth is two levelsafter parent. References nested inside downloaded collection items are not expanded in this release. Restructure deeper data so it is handled separately. |
| An empty collection appears unexpectedly | Empty or missing collections are sent as an empty array. Verify the upstream step produced records if items were expected. |
| The request fails before sending | Check for invalid JSON, an illegal request shape, or a payload that exceeds the maximum size. Requests are validated before transmission. |
| A non-JSON payload does not include collection data | Only JSON payloads support collection expansion. Use a JSON request body when sending collections. |
| Not all collections appear in the payload | Confirm each collection is placed at its own location in the JSON body. |
Comments
0 comments
Article is closed for comments.