Notifications

Notifications

What Telmoni records in activity feeds, where notices are displayed, and how notifications are dispatched to external destinations.

A notification is an event record describing an action or status update within an organization or one of its projects: a member joining, or a connector state change. Telmoni writes each notice to its feed, and queues one delivery for each connection that takes it, in one database transaction, and makes no send before that transaction commits.

Notice types

KindRaised when
member_addedSomeone joins the project: they accept an invitation, or an organization Owner or Admin adds them from the organization
member_leftA member leaves a project or is removed from it, including when they leave or are removed from its organization
connector_connectedA Slack or webhook connector finishes setup
connector_disconnectedA connection stops: Slack refuses posts to it for good (see connection states), a webhook answers 410 or fails ten sends in a row, or Slack reports the Telmoni app removed from a workspace or its tokens revoked
organization_alertA notice for the organization's Owner and Admins, posted to the organization rather than a project. The hosted service raises one a day while the plan's ceiling refuses the organization its data out past the day's, with the count and when it began; a self-hosted deployment raises none

Where you read them

  • Project notices: notices posted to a project appear on its Overview (/{organization}/{project}) for anyone on the project, newest first, each unread one in bold. Mark read there marks every unread one as read, for everyone on the project. They also reach every channel the project connects that takes their kind (Slack, a webhook subscribed to it). Where the deployment runs the console agent, it searches them, and the project's delivery log, when asked.
  • Organization notices: notices posted to the organization rather than a project appear on its Overview for its Owner and Admins. Mark read there marks every unread one as read, for everyone who reads them.
  • Invitations, offers and projects you were added to: Invitations to you, offers of an organization or a project, and projects an organization's Owner or an Admin added you to, appear separately in the console header bell and on your account's Notifications page (/account/notifications).

Forwarding to external connectors

Projects can forward notifications to third-party endpoints through connectors configured on the project's Connectors page (/{organization}/{project}/connectors):

  • Slack: Direct channel notifications where the people in your project already read.
  • Webhooks: HTTPS POST requests with HMAC-SHA256 signatures delivered directly to your own infrastructure.

Connectors deliver notices asynchronously. Each delivery is a queued row of its own: a send that fails for a reason a retry can fix (a network error, a timeout, a rate limit, a server error) goes back in the queue behind a backoff, up to five attempts by default, and the notice on the feed is a separate row that no delivery outcome changes. Where the connectors feature flag is off for the deployment, starting a Slack handshake, or connecting a webhook, is refused (a handshake already under way still completes), and retries wait until it is on again. A notice's first attempt is still made as it is raised while fewer than 32 first attempts are in flight on that server (past that, it waits with the retries), and Send test and Resend still go out. The flag is read for the whole deployment: an organization's own setting for it has no effect.

Retention

  • Feed notices: Retained for 90 days.
  • Connector delivery logs: Kept for 30 days after each delivery was last delivered or failed.