Functionary does stuff based on the set of analytic events that have been fired for a user. It can triggers alerts, sends slack/text messages, sends transactional/marketing emails, triggers webhooks, or really anything else.

Based on the events, functionary creates a concept of state. Using that state, it decides if it should do something (or not) for a user in your app.

The API interfaces is the same as Mixpanel, Posthog, or Amplitude. Just call /identify and /events.

It’s all defined by you and easily updated in a config file.