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.
- 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
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
an automationa person or a customeron a datenot grounded yeta waiting pile3 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. 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
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. 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 daysinvoices collection
strong
Priya Shahonly writer: billing-apipayment-webhooks repository
likely
Jonas Berg58% of commits, 90 daysdunning 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. 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 signed → menu import
- 2 menu import → training
- 3 training → live
- 4 live → past due
- ? acts on nothing we know
drivesreacts
Each automation against the transition it acts on. A dot drives it, a ring reacts to it. 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.exampleVisitnot countedThis example company has not connected a traffic source yet. Your agent has asked for one.
Lead860632120Demo25830%7011%the leak4840%Signed9236%2434%2144%Live8188%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.
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.
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.
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
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
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.
Acme, grounded
lifecycle transitions21/26
process steps17/19
journey stages9/11
automations9/10
The twelve questions8 grounded2 answered1 drifted1 unanswered
- 01Business modelgrounded
- 02Actorsgrounded
- 03Partnersgrounded
- 04Leads per siteanswered
- 05Sales processgrounded
- 06Core lifecyclegrounded
- 07Internal processesgrounded
- 08Contentunanswered
- 09Automationsgrounded
- 10Data flowsdrifted
- 11Key metricsgrounded
- 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.
The company
Areas as territories, sized by what lives in them.
One area
Its products and features, with neighbours at the border.
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.
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
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
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
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.