Langfuse prompt version changed notifications on your phone.

Get a push notification when a Langfuse prompt version is created, relabeled (for example promoted to production) or deleted.

prompt-versionAIMonitoring
How it works

Three steps to your first push

STEP 01

Install the recipe

One click in Studio gives you a personal webhook URL.

STEP 02

Paste your URL into Langfuse

Add it as a webhook for Prompt version.

STEP 03

Get a push on your phone

With the text, sound and buttons from the recipe.

Setup

How to set up the Langfuse prompt version webhook

  1. Click Install in Studio and sign in. The recipe is added to your account and you get a personal webhook URL.
  2. Follow the setup notes below: Prompt version changed lives under Prompts > Automations or Project > Alerts.
  3. Choose the Webhook action and paste your webhook URL as the URL.https://••••••••/•••••••• your personal URL, shown after install
  4. Save the automation or alert.
  5. In Langfuse, go to **Prompts → Automations → Create Automation**, pick the prompt events (and optionally which prompts), choose the **Webhook** action and paste the URL above.
  6. Moving a label (for example `production`) from one version to another sends **two** `updated` events: one for the version that gains it and one for the version that loses it, so expect two pushes.
  7. "View prompt" links go to `cloud.langfuse.com`; change `LANGFUSE_URL` at the top of the code for the US region or a self-hosted Langfuse.
  8. Langfuse signs each request with `x-langfuse-signature` (HMAC-SHA256), but JustPush doesn't check it yet, so keep your endpoint URL private.
The code

What runs when the webhook arrives

Studio calls handleRequest(request) with the incoming webhook and sends the message it returns. It's yours after install; change anything.

transform.js
1// Langfuse → prompt version created, updated or deleted
2// Fires when a Langfuse prompt automation with a Webhook action sees a prompt change.
3// Docs: https://langfuse.com/docs/prompt-management/features/webhooks-slack-integrations
4
5// Where "View prompt" links go. Change this for the US region
6// (https://us.cloud.langfuse.com) or a self-hosted Langfuse.
7const LANGFUSE_URL = "https://cloud.langfuse.com"
8
9const ACTIONS = {
10 created: "📝 New prompt version",
11 updated: "🏷️ Prompt version updated",
12 deleted: "🗑️ Prompt version deleted",
13}
14
15// Look a key up in one of the tables above, ignoring inherited names like "toString".
16function pick(table, key, fallback) {
17 return Object.prototype.hasOwnProperty.call(table, key) ? table[key] : fallback
18}
19
20// Only link to real http(s) URLs.
21function link(url, cta) {
22 return typeof url === "string" && /^https?:\/\//.test(url) ? [{ cta, url }] : []
23}
24
25function handleRequest(request) {
26 const body = request.body || {}
27 const prompt = body.prompt
28
29 // Guard: only prompt-version events, so alerts on this integration stay quiet.
30 if (body.type !== "prompt-version" || !prompt?.name) {
31 console.log(`Ignoring Langfuse "${body.type ?? "unknown"}" webhook`)
32 return null
33 }
34
35 const title = pick(ACTIONS, body.action, "📝 Prompt changed")
36 const labels = Array.isArray(prompt.labels) ? prompt.labels.filter((label) => typeof label === "string") : []
37 const live = labels.includes("production")
38 const details = [
39 labels.length ? `labels: ${labels.join(", ")}` : null,
40 typeof prompt.commitMessage === "string" && prompt.commitMessage.trim() ? `“${prompt.commitMessage.trim()}”` : null,
41 ].filter(Boolean)
42 const url = prompt.projectId
43 ? `${LANGFUSE_URL}/project/${encodeURIComponent(prompt.projectId)}/prompts/${encodeURIComponent(prompt.name)}`
44 : null
45
46 return {
47 title,
48 message: `${prompt.name}${prompt.version != null ? ` v${prompt.version}` : ""}` + (details.length ? ` · ${details.join(" · ")}` : ""),
49 topic: "Langfuse",
50 // A change touching the production label is worth noticing; everything else is routine.
51 priority: live || body.action === "deleted" ? 0 : -1,
52 buttons: body.action === "deleted" ? [] : link(url, "View prompt"),
53 }
54}
Payload

The Langfuse prompt-version webhook

This is what Langfuse sends to your URL for prompt version. It is a sample, trimmed to the fields recipes use.

prompt-version · sample.json
1{
2 "id": "550e8400-e29b-41d4-a716-446655440000",
3 "type": "prompt-version",
4 "action": "created",
5 "prompt": {
6 "id": "prompt_abc123",
7 "name": "movie-critic",
8 "tags": [
9 "entertainment"
10 ],
11 "type": "text",
12 "config": {
13 "temperature": 0.7
14 },
15 "labels": [
16 "production",
17 "latest"
18 ],
19 "prompt": "As a {{criticLevel}} movie critic, rate {{movie}} out of 10.",
20 "version": 3,
21 "createdAt": "2026-09-29T10:30:00Z",
22 "projectId": "xyz789",
23 "updatedAt": "2026-09-29T10:30:00Z",
24 "commitMessage": "Improved critic persona"
25 },
26 "timestamp": "2026-09-29T10:30:00Z",
27 "apiVersion": "v1"
28}
FAQ

Langfuse prompt version changed notifications: questions

Does this work on iPhone and Android?

Yes. Install the JustPush app from the App Store or Google Play and sign in. Every phone signed in to your account gets the notification.

Do I need to write code?

No. Install the recipe in Studio, paste your webhook URL into Langfuse and you are done. The code is there if you want to change the text, the sound or the buttons.

Can I change what the notification says?

Yes. After install the recipe's code is yours. Edit it in Studio and test it against the sample payload before you save.

What does it cost?

JustPush is free for 30 days. After that it's $19.99 a year, or $39.99 once. There is no extra charge for recipes.

Ready when you are

Langfuse on your phone in two minutes.

Install the recipe, paste one URL, done. Free for 30 days, no credit card required.