Examples
Each example is a complete, commented obsei.yaml in the
examples/ folder. The header of each file
lists the extras to install, the environment variables it reads and how to run it. Every example
is loaded with the real config loader in CI, so the keys match the current release.
git clone https://github.com/obsei/obsei && cd obseiexport OBSEI_DB_KEY="$(openssl rand -hex 24)" OBSEI_PSEUDONYM_SALT="$(openssl rand -hex 24)"obsei try -c examples/social-listening.yaml # preview redacted records; nothing stored or sentobsei run -c examples/social-listening.yamlCopy a file to obsei.yaml in your project and replace the placeholder ids, hosts and names.
Secrets are always read from environment variables.
App reviews in six countries
Section titled “App reviews in six countries”App Store reviews from the US, UK, India, Brazil, Japan and Germany plus Google Play, classified by a local Ollama model, with negative reviews posted to Slack and multilingual themes.
- App Store ×6 countries
- Google Play
Your infrastructure
- Slack
Extras: google,embeddings
Support tickets with a model cascade
Section titled “Support tickets with a model cascade”Zendesk, Freshdesk and Intercom (EU region) tickets labelled by a small model; low-confidence results go to a larger in-house model. Bugs become Jira issues, feature requests Linear issues, and everything is exported to Parquet.
- Zendesk
- Freshdesk
- Intercom
Your infrastructure
- Jira
- Linear
- Parquet
Multilingual ticket routing with a decision model
Section titled “Multilingual ticket routing with a decision model”Zendesk and Freshdesk tickets in any language, labelled on a CPU by Julia-1, a 144M decision model
served by llama.cpp: spam is filtered out first, then one request per ticket answers sentiment,
intent (with descriptions), an urgency score and a yes/no refund question. Answers below their
cutoff go to a local Ollama chat model. Ordered routes then pick one destination
per ticket: uncertain tickets go to a review channel, confident urgent bugs open a Jira issue and
page on-call, billing and refund requests go to the billing channel, and the rest lands in Parquet.
A CSV of eight sample tickets in seven languages lets you try it locally:
obsei try -c examples/decision-routing.yaml -p sample --enrich --limit 8.
- Zendesk
- Freshdesk
Your infrastructure
- Jira
- Slack ×3
- Parquet
Social listening
Section titled “Social listening”Bluesky (English and Portuguese), Hacker News, YouTube comments, a forum RSS feed and a Mastodon hashtag through the REST source, delivered to an internal service as HMAC-signed webhooks.
- Bluesky
- Hacker News
- YouTube
- RSS
- Mastodon (REST)
Your infrastructure
- Signed webhook
Trustpilot reviews over REST
Section titled “Trustpilot reviews over REST”Trustpilot Business reviews through the generic REST source, with the API key in a secret header, star ratings mapped and 1-2 star reviews posted to Slack. Field names follow the public business-unit reviews endpoint; verify them against your account’s API version.
- Trustpilot (REST)
Your infrastructure
- Slack
CRM and ITSM over REST
Section titled “CRM and ITSM over REST”HubSpot tickets (cursor paging on paging.next.after) and ServiceNow incidents (Table API with
sysparm_* parameters), classified with custom fields; bugs and outages go to Jira Data Center.
- HubSpot (REST)
- ServiceNow (REST)
Your infrastructure
- Jira
- Parquet
Warehouse round trip
Section titled “Warehouse round trip”NPS responses read incrementally from Postgres, Snowflake or BigQuery, classified, and written back to a warehouse table without author pseudonyms.
- SQL warehouse
Your infrastructure
- SQL warehouse
Extras: sql plus your database driver
Mailbox and file drops
Section titled “Mailbox and file drops”A support mailbox over IMAP and a drop folder for exported CSV and JSON Lines survey and NPS files, with churn risks posted to Slack and a Parquet export.
- IMAP mailbox
- File drop
Your infrastructure
- Slack
- Parquet
Enterprise, air-gapped
Section titled “Enterprise, air-gapped”vLLM with an Azure OpenAI fallback behind a private egress allowlist, person-name redaction from a
local model, regional redaction, local multilingual embeddings, k_anonymity: 10, obsei serve
behind an SSO proxy with group-to-role mapping, API tokens, allowed_hosts and a retention job.
- GitHub Enterprise
- Webhooks
- SQL
Your infrastructure
- Jira
· extras mcp,names,embeddings,sql
India, Brazil and Japan
Section titled “India, Brazil and Japan”One pipeline per market with market-specific intents, India, Latin America and Asia-Pacific redaction plus name redaction, multilingual themes labelled in one language, and a Slack channel per team.
- App Store
- Freshdesk
- Intercom
- Bluesky
Your infrastructure
- Slack
· extras names,embeddings
GitHub Actions
Section titled “GitHub Actions”A daily workflow: App Store and Google Play reviews, classified, turned into GitHub issues and Slack messages, with the encrypted database kept in the Actions cache. See GitHub Action.
- App Store
- Google Play
Your infrastructure
- GitHub issues
- Slack
With plugins
Section titled “With plugins”These use plugins that are installed separately and allowed with
plugins: in the file.
Surveys from Typeform
Section titled “Surveys from Typeform”Typeform survey responses plus a CSV NPS export, classified and grouped into themes, exported to Parquet.
- Typeform
- NPS CSV
Your infrastructure
- Parquet
Alerts in Microsoft Teams
Section titled “Alerts in Microsoft Teams”Negative App Store and Google Play reviews posted to a Teams channel.
- App Store
- Google Play
Your infrastructure
- Microsoft Teams