Trig

The company, surveyed for your agents

Your agents understand how your company works.

The business, its processes, its people and its numbers, each grounded in the systems that run them. Connectors survey what you run. Your agent writes how the business works on top. Every answer points at the line behind it.

You askHow does a venue go from signed to live?A nightly job moves it once training ends. 312 wait on the menu import.Business layerVenue lifecycle64signed312menu import41training1,940liveOnboardingimport menutrain staffgo livePSJBownersLive venues1,940System layerbilling-apivenuesmenu-import99 connector modes, run locallyjobs/activate-venues.ts:48You askHow does a venue go from signed to live?A nightly job moves it once training ends.312 venues are waiting on their menu import.Business layerVenue lifecycle64signed312menu import41training1,940liveOnboardingimport menutrain staffgo livePSJBownersLive venues1,940System layerbilling-apivenuesmenu-import99 connector modes, run locallyjobs/activate-venues.ts:48
Connectors lay down what you run. Your agent writes the business on top of it, and grounds each answer in a file and a line.
Sheet
1 of 1 · Trig
Scale
one company
Surveyed
on every trig update
Legend
grounded in codesystem entity

SE 41 86What your agent can answer

Ask about the business, not the servers.

Below, one invented company: Acme, about 80 people selling ordering and invoicing software to 2,400 restaurants across Europe. Each answer comes back drawn the way Trig draws it, and says how each part is known.

How each part is known

  • declareda file says so
  • derivedTrig computed it
  • observedmeasured by a connector
  • contributedan agent or a person wrote it
  1. 01You ask

    How does a venue go from signed to live?

    Four states and one exit. The contract service moves a signed venue into menu import; the onboarding team moves it into training; a nightly job at 02:00 puts it live. 312 venues sit in menu import and nothing moves them out: Trig flags that pile by itself.

    • declared:states from models/venue.ts:22
    • observed:counts, 2 h ago
    • contributed:phases and triggers, by an agent
    • derived:the waiting pile
    SignedOnboardingLivesign.ts:112activate-venues.ts:48 · 02:00exitsCANCELLED 58SIGNED64MENU_IMPORT312TRAINING41LIVE1,940◐ 312 wait · nothing moves them out · 9 daysSignedOnboardingLivesign.ts:112activate-venues.ts:48 · 02:00exitsCANCELLED 58SIGNED64MENU_IMPORT312TRAINING41LIVE1,940◐ 312 wait · nothing movesthem out · 9 days
    an automationa person or a customeron a datenot grounded yeta waiting pile

    3 of 4 transitions grounded

    The lifecycle as a state diagram: stations sized by how many venues sit there, the line style says who moves them.
  2. 02You ask

    Where do our leads come from?

    2,600 leads in 90 days, the largest share through search. The telling number is the grey one: 38% arrive with no source page, because referrals and partner leads come in by phone and email. Until that is tracked, per-site figures undercount.

    • observed:weekly counts by channel and first page
    • contributed:channels and sites, by an agent
    • derived:attribution coverage
    Search1,160Paid social332Referral560Partners548acme.example860get.acme.example632partners.acme.example120no source page988demo booked692no demo yet1,908

    Leads by site, 90 days

    • acme.example860

    • get.acme.example632

    • partners.acme.example120

    • no source page988

    38%

    carry no source pageReferral and partner leads arrive by phone and email.

    Channel, then site, then outcome, over 90 days. The accent band is the part nobody can attribute.
  3. 03You ask

    Who owns billing?

    Priya Shah owns billing-api and, through it, the invoices it alone writes. Jonas Berg most likely owns payment-webhooks. The dunning workflow is split between two people, so your agent asked once, with what it found and the answer it would give.

    • declared:CODEOWNERS
    • observed:commits, 90 days
    • contributed:a runbook’s author

    Billing

    • billing-api service

      strong

      Priya ShahCODEOWNERS * @priya-shah64% of commits, 90 days
    • invoices collection

      strong

      Priya Shahonly writer: billing-api
    • payment-webhooks repository

      likely

      Jonas Berg58% of commits, 90 days
    • dunning n8n workflow

      ambiguous

      Jonas Berg · Marta Silvalast edited by Jonas Bergrunbook late-payments.md

    Needs youResearched

    Who owns the dunning workflow?

    What your agent found

    • Jonas Berg made its last edit, 5 weeks ago
    • the Late payments runbook names Marta Silva

    Suggested answerMarta Silva

    Owners suggested from evidence, in tiers. Only the ambiguous one reaches a person.
  4. 04You ask

    What runs by itself?

    Six automations touch the venue lifecycle. Two jobs drive a transition, one workflow drives dunning, and three only react to a state. One email campaign still waits for a TRIAL state the code removed, so it will never fire.

    • declared:jobs, with file:line
    • observed:runs and sends, 30 days
    • derived:the orphaned campaign
    1234?
    • jobcontracts/sign.ts64 in 30 days · sign.ts:112
    • jobactivate-venues.ts30 in 30 days · activate-venues.ts:48
    • n8nMenu import reminder212 in 30 days
    • n8ndunning118 in 30 days
    • campaignWelcome to Acme64 in 30 days
    • campaignTrial ending◐ waits for TRIAL, which the code no longer has
    1. 1 signed → menu import
    2. 2 menu import → training
    3. 3 training → live
    4. 4 live → past due
    5. ? acts on nothing we know

    drivesreacts

    Each automation against the transition it acts on. A dot drives it, a ring reacts to it.
  5. 05You ask

    Where does the funnel leak?

    On get.acme.example, between lead and demo: 11% book a demo there, against 30% on the main site. Visits are not counted yet: this example company has not connected a traffic source, and the agent has asked for one.

    • observed:stage counts, 90 days
    • contributed:stage definitions, by an agent
    • derived:conversion between stages
    acme.exampleget.acme.examplepartners.acme.example
    Visit

    not countedThis example company has not connected a traffic source yet. Your agent has asked for one.

    Lead
    860
    632
    120
    Demo
    25830%
    7011%the leak
    4840%
    Signed
    9236%
    2434%
    2144%
    Live
    8188%
    2083%
    1990%
    The same funnel for each site. An uncounted stage says why, instead of showing a zero.

SE 43 84How it works

Connectors derive. Your agent writes. People settle only the rest.

Trig has no model inside it. It collects, validates, merges and draws; your agent does the reading and the writing.

  1. 01

    Connectors run on your machine

    Across code, infrastructure, data, knowledge and business, with the logins you already have. Each mode says precisely what it reads and excludes. The server never calls a provider and refuses a snapshot that carries a secret.

    your machineCodeInfrastructureDataKnowledgetrig serversnapshot, no secret
  2. 02

    Every fact says how it is known

    Declared by a file, derived by Trig, observed by a connector, or contributed by an agent or a person, each with its age.

    billing-api◆ declareddeploy.yml:31◐ derived3 services share its image● observedrunning, 2 tasks○ contributedpart of Billing
  3. 03

    Your agent writes the business layer

    It settles what connectors could only guess, then writes lifecycles, processes, journeys, owners and metrics, each element grounded in the code, data or document behind it.

    540proposals, first run

    212 confirmed309 rejected19 escalated

    then it writes

    • Venue lifecyclegrounded
    • Onboarding processgrounded
    • Billing ownersgrounded
    • Live venues metricgrounded
  4. 04

    People see only what it could not settle

    One question at a time, in Needs you, with the agent’s research and the answer it would give. Your answer goes back to the agent.

    Needs youResearched

    Who owns the dunning workflow?

    What your agent found

    the Late payments runbook names Marta Silva

    Suggested answer: Marta Silva
Explore the complete source library

SE 44 84The source library

One company. Many sources.

Start with what you already use. Explore connectors by business purpose, then inspect exactly what each mode reads. A supported source is not a promise to read everything in that service.

92 source families · 99 implemented connector modes

Connectors run locally. Credentials stay with you. Business sources expose selected structures or approved aggregates—not private customer, employee, payment or message records. Some require an existing report, entitlement or owner-approved schema. Boxtal is excluded.

92 source families

  • Support & calls

    Aircall

    One selected campaign contact or active-call stock.

    Implemented · Local collector

    Read capabilities 1

    Aircall (campaign aggregate stocks)

    aircall

    One selected campaign contact or active-call stock. Contacts are campaign entries, not unique people or company customers; never daily calls, outcome rows or summed buckets.

    Privacy and limits

    Only the selected integer is persisted; no contacts, calls, phone numbers, progress percentage or duration math. Provider supplies no observation timestamp; capture time is not verified freshness. Missing refuses, zero retained; series/authored/foreign/newer values preserved.

  • Office & workflows

    Airtable

    Confirmed visibility of an exact approved technical base-ID set, bound to an authored bases metric.

    Implemented · Local collector

    Read capabilities 1

    Airtable (approved base-container visibility)

    airtable

    Confirmed visibility of an exact approved technical base-ID set, bound to an authored bases metric. On success the count equals the approved set size; missing/unreadable bases produce unknown/error. Not record counts, tables, field schemas, usage or company-wide inventory.

    Privacy and limits

    Only configured approved base IDs, confirmed integer count and timestamp are retained. Returned base names, permission levels and unapproved technical IDs are discarded. No rows, select choices, formulas, field defaults, collaborator/member identities or secrets. Successful count equals allowlist size; not whole-account/company inventory, historical flow or data quality.

  • Analytics & reporting

    Amplitude

    Daily any-event totals bound to one already-authored events metric; no event/user properties or breakdowns.

    Implemented · Local collector

    Read capabilities 1

    Amplitude (daily event aggregates)

    amplitude

    Daily any-event totals bound to one already-authored events metric; no event/user properties or breakdowns.

    Privacy and limits

    No segments, group-by, profiles or raw exports. ISO dates and integer totals only. Small/missing dates stay unknown; complete coverage is required for a business series.

  • Commerce & apps

    App Store Connect

    One provider-returned total of team-key-visible app containers, explicitly bound to an authored apps metric.

    Implemented · Local collector

    Read capabilities 1

    App Store Connect (app container total)

    appstoreconnect

    One provider-returned total of team-key-visible app containers, explicitly bound to an authored apps metric. Technical stock only, not downloads, subscriptions, sales, revenue or complete mobile analytics.

    Privacy and limits

    Only configured technical issuer UUID, integer app-container total and timestamp are retained. A maximum of one app's technical bundle ID/resource ID is projected by Apple and discarded after validation. No names, testers, users, reviews, downloads, sales/finance rows, report files, report subscriptions, private signing keys or permission changes. Current stock reading, no invented series.

  • Office & workflows

    Asana

    One current provider-side project task or milestone count as a stock reading: total, completed or incomplete.

    Implemented · Local collector

    Read capabilities 1

    Asana project task-count aggregates

    asana

    One current provider-side project task or milestone count as a stock reading: total, completed or incomplete. Milestones are included in task totals; this is not daily completion throughput.

    Privacy and limits

    Provider-side aggregate only, no individual tasks, titles, assignees, comments, users or teams fetched. Unknown or ignored projection refused. Task-count fields have an additional provider rate/cost limit. Current stock reading protects authored, foreign, null-owned, newer and flow observations.

  • Infrastructure

    AWS

    What is actually running: App Runner, ECS clusters and services, Lambda and the function URLs they answer on, ECR, S3, RDS, DynamoDB tables (key schema, indexes, billing, stream; never items), and the NAMES of SSM parameters and secrets.

    Implemented · Local collector

    Read capabilities 1

    AWS

    aws

    What is actually running: App Runner, ECS clusters and services, Lambda and the function URLs they answer on, ECR, S3, RDS, DynamoDB tables (key schema, indexes, billing, stream; never items), and the NAMES of SSM parameters and secrets.

    Privacy and limits

    Resource names, ARNs, images, sizes and tags; environment variable NAMES only. Never an environment value, an SSM value, a secret value or a DynamoDB item (tables are read for their shape and AWS's item-count estimate).

  • Infrastructure

    Azure

    What is actually running in Azure: Container Apps and their environments, App Service apps and Function Apps with their custom domains, AKS clusters, Azure Container Registry images (and whether what runs can still be pulled), storage accounts, Azure SQL and Cosmos DB, Service Bus queues and topics, and the NAMES of Key Vault secrets.

    Implemented · Local collector

    Read capabilities 1

    Azure

    azure

    What is actually running in Azure: Container Apps and their environments, App Service apps and Function Apps with their custom domains, AKS clusters, Azure Container Registry images (and whether what runs can still be pulled), storage accounts, Azure SQL and Cosmos DB, Service Bus queues and topics, and the NAMES of Key Vault secrets.

    Privacy and limits

    Resource names, regions, resource groups, images, tags and statuses; Container App environment variable NAMES only, Key Vault secret NAMES only. App Service settings are never read (they are values); a Container App's plain environment values are dropped on the operator's machine.

  • People & identity

    BambooHR

    One provider-native draft/historic/published compensation-level-group current stock, unit compensationGroups.

    Implemented · Local collector

    Read capabilities 1

    BambooHR compensation-group status counts

    bamboohr

    One provider-native draft/historic/published compensation-level-group current stock, unit compensationGroups. Draft counts only drafts with a visited setup step when a published baseline exists; otherwise all draft groups. Not employee headcount, salaries or payroll totals.

    Privacy and limits

    Provider-side counts only, no employee, manager, names, pay-band values, job-title assignments, audiences, holiday pay or salaries fetched even transiently. Scope breadth is disclosed. Unknown fields/missing counts/errors/paging refused; no headcount or currency inference.

  • Analytics & reporting

    BigQuery

    One fixed INFORMATION_SCHEMA table/view count for an exact project and dataset, explicitly bound to an authored metric; current technical structure, not company records or revenue.

    Implemented · Local collector

    Read capabilities 1

    BigQuery (dataset structure counts)

    bigquery

    One fixed INFORMATION_SCHEMA table/view count for an exact project and dataset, explicitly bound to an authored metric; current technical structure, not company records or revenue.

    Privacy and limits

    Only configured technical project/dataset/location, closed table type and integer count. No individual table metadata, DDL, sample values, customer rows, arbitrary SQL, data exports or IAM changes. Counts reflect credential-visible structure and use a stock reading, not invented history.

  • Code

    Bitbucket

    Repositories of a Bitbucket Cloud workspace, their pipelines (steps, deployments, the AWS pipes) and the scripts and Makefiles those run, Dockerfiles and package.json, and what each pipeline says it builds and deploys, read CI-first.

    Implemented · Local collector

    Read capabilities 1

    Bitbucket

    bitbucket

    Repositories of a Bitbucket Cloud workspace, their pipelines (steps, deployments, the AWS pipes) and the scripts and Makefiles those run, Dockerfiles and package.json, and what each pipeline says it builds and deploys, read CI-first.

    Privacy and limits

    Repository metadata; the TEXT of bitbucket-pipelines.yml, the scripts and Makefiles it runs and Dockerfiles (typed-in passwords redacted here) and package.json; commit authors; members' display names. Never a variable, pull request or other source file.

  • Marketing

    Brevo daily transactional aggregates

    Thirty completed daily SMTP aggregate counts for one fixed measure: requests, delivered, uniqueOpens, uniqueClicks, hardBounces, softBounces, blocked, spamReports or unsubscribed.

    Implemented · Local collector

    Read capabilities 1

    Brevo daily transactional aggregates

    brevo

    Thirty completed daily SMTP aggregate counts for one fixed measure: requests, delivered, uniqueOpens, uniqueClicks, hardBounces, softBounces, blocked, spamReports or unsubscribed.

    Privacy and limits

    GET /v3/smtp/statistics/reports with completed dates only, no tag/sender/message filter, no event or recipient endpoints. Missing days are unknown and prevent business-series refresh. Provider-defined daily reporting timezone is retained in basis rather than misrepresented as UTC.

  • Infrastructure

    Buddy

    Buddy.Works pipelines: which pipeline builds and deploys which App Runner service, Lambda, ECS service, ECR image, S3 bucket or host, from which repo and branch, whether it is disabled, and when it last ran.

    Implemented · Local collector

    Read capabilities 1

    Buddy

    buddy

    Buddy.Works pipelines: which pipeline builds and deploys which App Runner service, Lambda, ECS service, ECR image, S3 bucket or host, from which repo and branch, whether it is disabled, and when it last ran. Closes the "nothing deploys this" gaps left by pipelines not yet moved to GitHub Actions.

    Privacy and limits

    Pipeline and action names, targets and execution statuses (placeholder until the collector lands). Never a variable value.

  • Knowledge

    Cairn

    What people and agents learned, and which projects are actually worked on: projects, recent tasks, knowledge entries and repository mappings.

    Implemented · Local collector

    Read capabilities 1

    Cairn

    cairn

    What people and agents learned, and which projects are actually worked on: projects, recent tasks, knowledge entries and repository mappings.

    Privacy and limits

    Project names, task titles and statuses, knowledge entry text, and git remote URLs of mapped repositories.

  • Office & workflows

    ClickUp

    One native used, total or available member/guest seat stock for a configured workspace.

    Implemented · Local collector

    Read capabilities 1

    ClickUp (workspace seat stocks)

    clickup

    One native used, total or available member/guest seat stock for a configured workspace. Seats are licences, not employees, active users, tasks or company customers. Unlimited guest capacity is not a finite number.

    Privacy and limits

    Six provider counters only, no members, users, tasks, names, emails or permissions. Retain selected native value and exact workspace/measure only; no sums, inferred headcount or daily history. Missing/private/ambiguous responses refuse; unlimited is unknown as a finite metric, never zero. Authored, graph-derived, foreign-source, newer and flow observations remain protected.

  • Code

    Code

    What the code says it does: which MongoDB collections each repository reads and writes (through the driver, an aggregation's $lookup, or a Mongoose model it imports), which of the company's services it calls (by the environment variable holding their address), which outside providers it uses (an SDK, a provider's environment variable or its API host), the states a model's status field may take and the states jobs set and filter on.

    Implemented · Local collector

    Read capabilities 1

    Code (local checkouts)

    code

    What the code says it does: which MongoDB collections each repository reads and writes (through the driver, an aggregation's $lookup, or a Mongoose model it imports), which of the company's services it calls (by the environment variable holding their address), which outside providers it uses (an SDK, a provider's environment variable or its API host), the states a model's status field may take and the states jobs set and filter on. Drawn from the repository, and from what it deploys when the file can be tied to one service or function. Every program file run on a schedule or off a queue (jobs/, workers/, a Lambda handler, or one a PM2 list, crontab, serverless.yml or cron CSV names) becomes a job, with when it runs and the Lambda that runs it; each state change is credited to the job file and line that makes it ("CONTRACT_SIGNED → CONTRACT_EFFECTIVE: jobs/healthInsurance/…:146, daily"), not to the repository.

    Privacy and limits

    Findings only: collection, environment variable and package NAMES, UPPER_CASE state values, a file's path relative to its repository, a line number, the branch and commit. Never a line of code, a value from the environment, or a checkout's absolute path.

  • Knowledge

    Confluence Cloud

    Credential-visible current global spaces and page metadata in one verified Confluence Cloud site.

    Implemented · Local collector

    Read capabilities 1

    Confluence Cloud

    confluence

    Credential-visible current global spaces and page metadata in one verified Confluence Cloud site. No document bodies, personal spaces or inferred business meaning.

    Privacy and limits

    Cloud id, configured host, space/page ids, redacted space names and page titles, and exact page-to-space membership. Never bodies, personal spaces, authors, owners, users, comments, attachments, descriptions, permissions, versions or provider links. Visibility is credential-accessible, not a company-wide inventory; absence never proves deletion.

  • Support & calls

    Crisp

    Current CRM profile stock for one configured Crisp website.

    Implemented · Local collector

    Read capabilities 1

    Crisp (aggregate CRM profile stock)

    crisp

    Current CRM profile stock for one configured Crisp website. Not unique humans, paying customers, daily new profiles or a company-wide customer count.

    Privacy and limits

    Only total is read; no people/profile/message/visitor/admin objects. Provider supplies no observation timestamp: at is capture time, not proven provider freshness. Missing refuses, explicit zero retained; flow/authored/foreign/newer values preserved.

  • Marketing

    Customer.io

    The lifecycle-messaging layer of a Customer.io workspace: every campaign, broadcast (newsletters and API-triggered) and transactional message — how it starts (the event name or segment it waits for, a date attribute, an API call), the segments it filters on or is sent to, its steps as types and counts, where its webhook steps and the workspace's reporting webhooks call, and how many messages it sent, delivered, opened, clicked, converted, bounced and unsubscribed over a window.

    Implemented · Local collector

    Read capabilities 1

    Customer.io

    customerio

    The lifecycle-messaging layer of a Customer.io workspace: every campaign, broadcast (newsletters and API-triggered) and transactional message — how it starts (the event name or segment it waits for, a date attribute, an API call), the segments it filters on or is sent to, its steps as types and counts, where its webhook steps and the workspace's reporting webhooks call, and how many messages it sent, delivered, opened, clicked, converted, bounced and unsubscribed over a window. Segments become audiences (with their size when a running automation uses them) and event names concepts, so "contrat-signe → Emails avis + parrainage" is an edge. Who emits an event (an n8n workflow tracking it, code that moves a collection to a status of the same words) goes to the queue as a proposal, and so does the lifecycle an automation may drive (its trigger has the same words as a collection's state); never as an edge.

    Privacy and limits

    Campaign, broadcast, newsletter, transactional message and segment names, states, tags and timestamps; trigger event names, segment ids and the attribute and event NAMES conditions test; step types and counts; the hosts webhooks call; object type names; segment sizes; and summed message counts. Never a person, profile, attribute value, email address, message body, webhook path, header or secret, or a delivery.

SE 44 83Grounding and drift

Every element points at what implements it, and notices when that moves.

A transition, a process step or a funnel stage is grounded in the code, data or infrastructure behind it, with the file and the line. When a re-scan finds the code has moved away from what the business layer says, the element is flagged as drifted instead of quietly going wrong.

Grounded
Each element links down to a job, a collection, a workflow or a document, with file:line where the code shows one.
Drift
A state the business layer names that the code no longer sets, or a transition nothing covers, is flagged after every update.
Measured as grounding
Coverage is how much of the business is tied to its systems, not how many things were filed somewhere.
training → liveTRAININGLIVEjobs/activate-venues.ts:48- setStatus(venue, 'LIVE')after a refactor+ setStatus(venue, 'ACTIVE')◐ drifted · LIVE is no longer set by any codeTRAININGLIVEjobs/activate-venues.ts:48- setStatus(venue, 'LIVE')after a refactor+ setStatus(venue, 'ACTIVE')◐ drifted · LIVE is no longer set by any code

Acme, grounded

  • lifecycle transitions21/26

  • process steps17/19

  • journey stages9/11

  • automations9/10

The twelve questions8 grounded2 answered1 drifted1 unanswered

  1. 01Business modelgrounded
  2. 02Actorsgrounded
  3. 03Partnersgrounded
  4. 04Leads per siteanswered
  5. 05Sales processgrounded
  6. 06Core lifecyclegrounded
  7. 07Internal processesgrounded
  8. 08Contentunanswered
  9. 09Automationsgrounded
  10. 10Data flowsdrifted
  11. 11Key metricsgrounded
  12. 12Pain pointsanswered

What your agent works through, worst first. The same scorecard the CLI prints.

SE 45 82The system map

Under the business, the map of what runs.

The system layer stays one click away, under System in the app: a survey sheet at three scales, from the whole company down to one service and what it touches.

  1. 164venues221ordering318platform88data236billing

    The company

    Areas as territories, sized by what lives in them.

  2. billinginvoicingpaymentsinvoicesdunningcreditpayoutsvenuesordering

    One area

    Its products and features, with neighbours at the border.

  3. inoutdeploy.ymldeployed byrunbook.mddescribed byinvoiceswritesvenuesreadsinvoicingimplementsbilling-api

    One thing

    What points at it, and what it points at.

SE 46 81Trig and Cairn

One question decides where a fact lives.

Cairn is where your agents keep their tasks, their notes and what they learned doing the work. See Cairn

Could a re-scan rediscover it?

Yes Trig

Derived and replaceable, and it must be replaced or it lies.

invoices lives in Postgres, has a unique index on (venue_id, number), and is read from three call sites.

No Cairn

Earned once by someone doing the work. Nothing regenerates it.

“We tried caching menus for an hour and prices went stale.”

Once Cairn is connected, Trig reads it on every update: what agents learned arrives as contributed facts.

SE 47 80For your agent

Claude Code, Codex, OpenClaw or Hermes runs Trig through one skill and one CLI, the setup included. There is no model inside Trig: your agent is the one that reads and writes.

$ trig lifecycle "Venue lifecycle"

the lifecycle above, as your agent reads it

SE 48 79The cloud

Some things one company cannot learn. That is what the cloud is for.

Two connectors find a registry image called billing-prod and a repository called billing. One thing or two? Self-hosted, the resolver has your company’s past decisions to go on. The cloud adds priors learned from what was confirmed and rejected across every tenant, so it can answer with a number: most companies where two names meet in this shape confirmed them as one.

Self-hosting is not a crippled tier: it is the whole product, and it always will be.

The connectors and the resolver stay whole. The priors are something your resolver may call or ignore.

What a decision record contains. All of it.

type_pair
two entity types
source_pair
which two connectors
evidence_kinds
which signals matched
evidence_count
how many
stem_distance
an integer
env_suffix_differs
a boolean
name_length_bucket
a bucket
subject_count
how many things
confidence
what we offered
outcome
confirmed or rejected

Numbers and enums, never a name or a string from your company. assertAnonymous() is the only writer and throws rather than warns, because a corpus is mined once and nothing can be cleaned out of it afterwards.

Two ways to run it

Self-hostedFair-code

FreeFor your own work, with no seat count.

  • The whole product: local connectors, the business layer, the CLI, the skill and the web app
  • Grounding, drift and provenance on every fact
  • You run the upgrades, the backups and the uptime
CloudPrivate beta

Not for sale yetNo signup, no billing, no card on file.

  • Priors on entity resolution, learned across every tenant
  • A confidence your resolver may call or ignore
  • What you give back is numbers and enums
Coming soon

SE 49 78Source release, coming soon

The source is coming. It is not public yet.

Trig will be released as fair-code: source-available, and self-hostable end to end. Today it runs as a private beta and the repository is private with it. No date has been set, so this page does not give one.

Private beta

Trig Cloud is in private beta.

We are onboarding the first teams directly. Self-serve workspaces and plans are coming; today there is nothing to buy. If you already have an account, the door is below.

Subscribe, coming soonExisting customer sign in