Add support for multiple webhook URL's for prompts commits/tag updates

As directed from the docs requesting that the ability to setup multiple web-hooks for any prompt or tags changes.

We use one workspace for our dev, qa, prod environments to avoid prompts being duplicated across workspaces etc.. Usually these are defined with tags, although we are now switching to your Staging, Production promote tags to simplicity.

Minimum requirement is just to be able to add multiple web-hook urls so each environment can consume and decide if any refresh is required.

Best case scenario, we can setup web-hooks with tag filters. i.e. any qa tag update send to qa web-hook.

Now that you have the actual Staging and Production promote UI features, it surely make sense to support multiple web-hooks.

Thanks

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.