Hello @blakey, welcome to Langchain Community, can you try the following:
1. Set up the one webhook
Manage prompts → Configure a webhook
- Point it at your HTTPS endpoint (not dev/qa/prod directly).
- Docs note: one webhook per workspace.
2. Build the receiver (the part that fans out)
Sync prompts with GitHub
This is the main guide. It shows:
- LangSmith sends a POST to your server
- Your server parses the payload
- Your server decides what to do next (commit to GitHub, trigger CI/CD, update a DB, etc.)
The “Beyond a simple commit” section explicitly mentions selective processing based on payload metadata:
Based on metadata within the LangSmith payload (e.g., which specific prompt changed or by whom), you could apply different logic.
That’s the closest official wording to the fan-out pattern.
3. Payload fields to route on
UI docs list the basic commit payload:
Manage prompts → Configure a webhook
API docs show the full schema, including tag events:
Test prompt webhook
Useful fields:
prompt_id, prompt_name
commit_hash, manifest
event — commit, tag:create, tag:update
tag_name — present on tag events (e.g. staging, production, or your custom tags)
4. Staging / Production tags
Manage prompts → Environments
staging and production are reserved environment tags. Promoting a commit fires a tag webhook, so your receiver can route like:
if payload["event"] in ("tag:create", "tag:update"):
if payload["tag_name"] == "staging":
forward_to(qa_url, payload)
elif payload["tag_name"] == "production":
forward_to(prod_url, payload)
elif payload["event"] == "commit":
forward_to(dev_url, payload) # or ignore, depending on your workflow
5. Sample payload
Prompt commit → Sample webhook payload
Use Send test notification in the UI to hit your endpoint with a sample payload before wiring real commits.
Bottom line: LangSmith documents the webhook + intermediary server pattern, not multi-URL fan-out. You implement fan-out in that server using event, tag_name, and prompt_name from the payload.