Guide
Deduplicate notifications from retried jobs
Retries are normal in project automation. Deduplication works when the producer identifies the logical event rather than each delivery attempt, leaving one central truth for people and agents.
Build the key from stable inputs
Name the producer operation
Start with a bounded namespace such as release, backup or agent-run so unrelated events cannot collide.
Add the producer's durable identifier
Use a run ID, revision or scheduled window that remains identical across retries.
Add the outcome when outcomes are separate events
A publication failure and its later rollback can share a run ID but still need different event keys.
{
"title": "Publication rolled back",
"body": "Health checks failed after release 8f31a2; the previous image is live.",
"severity": "error",
"source": "release-worker",
"tags": [
"release",
"rollback"
],
"deduplicationKey": "release:8f31a2:rollback",
"metadata": {
"revision": "8f31a2",
"environment": "production"
},
"actions": [
{
"id": "open-release",
"type": "link",
"label": "Open release",
"href": "https://example.com/releases/8f31a2",
"style": "primary"
}
]
}Treat duplicate delivery as success
The first accepted request returns created true. A repeat with the same key in the same source returns the original identifier with created false. Both outcomes mean the logical event is present.
Frequently asked questions
- Does the producer need a special integration?
- No. The examples use an authenticated HTTPS request, so any script, service or visual workflow that can send HTTP can use the same contract.
- Should credentials be included in notification data?
- No. Keep credentials in the producer's secret store and send only the context needed to understand or locate the event.
- Why send this to FYInbox instead of chat or email?
- FYInbox gives project notifications one structured, reviewable home instead of scattering them through Slack, Telegram and email. Those tools remain useful for conversations and intentional messages.
- Why structure notifications for people and agents?
- People and agents both need stable source, outcome and next-action context. FYInbox keeps that context in one notification record outside conversation streams.
Keep exploring
Put project notifications in their own inbox
Create an account and move the next notification out of chat and into one inbox for people and agents.