Skip to content
Sendora Cloud
Create account
Understand

Search

Cross-module search across events, profiles, tickets, articles, audiences, workflows.

Features

  • **Federates 4 indexes in one query** — `profiles` (email + name), `support_tickets` (subject), `kb_articles` (title), `events` (event type). Routes live in `apps/backend/src/modules/search/routes.ts:3` if you want to read the code.
  • **Type filter** — multi-select to narrow to one or more of the 4 indexes via `?types=profiles,tickets,...`.
  • **Case-insensitive substring matching** — Postgres `ILIKE '%term%'` per column. No typo tolerance, no fuzzy match, no synonyms — be explicit with the query string.
  • **Zero sync code** — corpus is the same tenant the rest of Sendora operates on. New row inserted by any module → immediately searchable. No webhook sync, no Algolia push, no eventual consistency window.
  • **Per-type result cap** — limit param caps total + 20-per-type internal cap to keep latency predictable.
  • **Cmd+K embed in dashboard** — quick `find user by email` / `find KB article by title` for ops teams.

Common use cases

  • "Find a customer fast" command palette for ops + support — same tenant, no sync, no second login.
  • Cross-module find (ticket + customer + KB hits for one keyword) without writing a join.
  • Avoid wiring a separate Algolia index for low-velocity in-app search where Postgres ILIKE is acceptable.

Search

Cross-product search

FREE

One query against profiles + tickets + KB articles + events. Postgres trigram + ILIKE; sub-100ms on a 100K-row dataset. Returns hits grouped by entity type.

curl "https://api.sendoracloud.com/api/v1/orgs/<ORG_ID>/search?q=alice@example.com&limit=20" \
  -H "x-api-key: pk_prod_…"

Related