docs: add webhook example (#7565)

* update-trigger-for-parser-component

* switch

* docs: webhook page and sidebars

* docs:sidebars

* cleanup-and-link

* remove-followon-for-now

* Apply suggestions from code review

Co-authored-by: KimberlyFields <46325568+KimberlyFields@users.noreply.github.com>

* Update docs/docs/Develop/webhook.md

---------

Co-authored-by: KimberlyFields <46325568+KimberlyFields@users.noreply.github.com>
This commit is contained in:
Mendon Kissling 2025-04-11 13:03:16 -04:00 committed by GitHub
commit fb79b80f91
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 61 additions and 5 deletions

View file

@ -152,6 +152,8 @@ curl --request POST \
If the flow streams the result back to you, your flow is being served, and can be consumed from a front-end application by submitting POST requests to this endpoint.
To trigger your application from an external event, see [Webhook](/webhook).
:::note
The test application returns a large amount of text, so the example command used `?stream=true`. If you prefer, set `?stream=false` to use batching. For more information, see the [API examples](/api-reference-api-examples#run-flow).
:::

View file

@ -0,0 +1,51 @@
---
title: Trigger flows with webhooks
slug: /webhook
---
import Icon from "@site/src/components/icon";
Add a **Webhook** component to your flow to trigger it with external requests.
To connect the **Webhook** to a **Parser** component to view and parse your data payload, do the following:
1. Add a **Webhook** component to your flow.
2. Add a [Parser](/components-processing#parser) component to your flow.
3. Connect the **Webhook** component's **Data** output to the **Parser** component's **Data** input.
4. In the **Template** field of the **Parser** component, enter a template for parsing the **Webhook** component's input into structured text.
Create variables for values in the `template` the same way you would in a [Prompt](/components-prompts) component.
For example, to parse `id`, `name`, and `email` strings:
```text
ID: {id} - Name: {name} - Email: {email}
```
:::important
The component may fail to build because it needs data from the **Webhook** first.
If you experience issues, change the **Mode** on the **Parser** component to **Stringify**, so the component outputs a single string.
:::
5. In the **Endpoint** field of the **Webhook** component, copy the API endpoint for your external requests.
6. Optionally, to retrieve a complete example request from the component, click **Controls**, and then copy the command from the **cURL** value field.
7. Send a POST request with any data to trigger your flow.
This example uses `id`, `name`, and `email` strings.
Replace **YOUR_FLOW_ID** with your flow ID.
```text
curl -X POST "http://127.0.0.1:7860/api/v1/webhook/YOUR_FLOW_ID" \
-H 'Content-Type: application/json' \
-d '{"id": "12345", "name": "alex", "email": "alex@email.com"}'
```
This response indicates Langflow received your request:
```
{"message":"Task started in the background","status":"in progress"}
```
8. To view the data received from your request, in the **Parser** component, click <Icon name="TextSearch" aria-label="Inspect icon" />.
You should see a string of parsed text, like `ID: 12345 - Name: alex - Email: alex@email.com`.
You have successfully parsed data out of an external JSON payload.
By passing the event trigger data payload directly into a flow, you can also parse the event data with a chain of components, and use its data to trigger other events.