When one of your rules fires, Niadra lets you know. Your agent acts.
You write rules over what the memory knows: a promise past due, a third complaint on the same subject, an agent that ignores the context it received, a source that stopped sending events. When the rule fires, Niadra sends a signed webhook to your system or your agent, and it decides what to do. The alert carries only identifiers and the item’s address in the API, which opens only with your company’s credentials. The conversation content never goes with it, and neither does a phone number, email or ID number.
How it works
Rule
example- When
- A company promise is 2 days past due with no action that keeps it
- How often
- Once per customer every 24 hours
- Where to
- Your ticketing system’s webhook
POST https://your-company.com/webhooks/niadra
Niadra-Signature: t=1790097960,v1=5f2b…c9e1
Niadra-Idempotency-Key: 8c41…07ad
{
"type": "trigger.fired",
"rule": "promise_overdue",
"rule_version": 2,
"customer": "p_7f3a91",
"customer_ref": { "system": "crm", "id": "48213" },
"evidence": ["open_item:oi_01j8…", "event:ev_01j8…"],
"open": "/v1/history/conversations/c_01j8…"
}Niadra only lets you know. Your agent or your system reschedules the visit.
- Conditions from a catalog: promise past due, new pattern, falling sentiment, ignored context, silent source
- Once per customer per window, with an idempotency key
- HMAC-SHA256 signature with a timestamp
- Retries for up to 24 hours, and the error queue shows in the Console
- Before a rule goes live, a test on the last 30 days shows how many alerts would have gone out
- An alert never runs anything: it does not open a ticket, message the customer or touch your system
One memory, nine products
Any agent connects to the memory with three calls, in Python, TypeScript, HTTP or MCP.
See the documentation- ContextWhat each agent needs to know before it starts.
- HistoryEverything that ever happened, for the agent to search.
- AlertsYou are hereA signed webhook when one of your rules fires.