Activation
Inspect, preview against past events, and explicitly configure the exact ordinary product event Outlit uses for activation. The first matching event activates eligible contacts and their resolved company. Outlit records activation for each eligible person and resolved company only once. Later matching events leave those timestamps unchanged. Applications and connected analytics sources keep sending ordinary product events. They do not send a synthetic activation event or change lifecycle state directly.Get
eventName.
Preview
Preview one exact event name against historical product events:activatedAt, or
records activation. The response reports separate contact and company totals:
matching people and companies, those already activated, and those that would activate if this
event were configured. evaluatedContactOccurrenceCount counts matching contact-event
occurrences, while evaluatedEventCount counts matching events attributed to resolved
companies. Contact identities are not returned as preview examples.
Both sides are bounded independently for query safety. If contactTruncated is true,
treat contact totals as lower bounds. If customerTruncated is true, treat company totals
as lower bounds. The legacy truncated flag can also mean that exampleLimit omitted company
examples, so it does not by itself make aggregate totals a lower bound.
Update
After reviewing a preview, explicitly replace the configured event name:Disable
To stop future activation matching:--json and piped output. Local
validation errors use the CLI’s missing_input or invalid_input shape; gateway failures
retain Outlit’s stable code, message, retryable, and requestId envelope.
Customers list
List and filter customers with pagination.Flags
Examples
JSON response
currentMrr is an integer in the billing provider’s units for the customer’s currency, which the response doesn’t name. For USD, EUR, GBP, and CAD this is cents: 500000 is $5,000 MRR for a customer billed in USD. Other currencies follow the provider’s amount rules (see Stripe’s currency docs). ARR is 12 × currentMrr in the same units. currentMrr is null unless mrrCalculationStatus is calculated.
Pagination
Use--cursor to page through results:
Customers get
Get a detailed customer profile with optional sections.Arguments
Flags
Examples
JSON response
revenue.currentMrr and revenue.lifetimeRevenue are in the billing provider’s units, like currentMrr in customers list: for a customer billed in USD, 500000 is 24,000 of lifetime revenue.
customer.activatedAt is an ISO-8601 timestamp when Outlit has recorded company activation, and null otherwise. Contact journey stages remain separate under
users.Customers relationship
Get the relationship summary used for customer detail, without adding it to thecustomers get response or replacing the chronological activity timeline.
<customer> accepts a customer domain, UUID, or exact name. The relationship returns the stable
customer identity and a bounded relationship section (summary plus up to eight categorized
current statements). Each statement carries an ISO observedAt timestamp when the authorized
source supports one and bounded sourceLabels. updatedAt is the compiled summary timestamp when
available, and otherwise null. The response never includes raw quotes, internal memory-card data,
unrestricted fact IDs, or unbounded source records.
JSON response
Customer identity and merging
Inspect a customer’s identity coverage and possible split records using its exact customer ID:--suggestion-id to retrieve one exact record in the same collection response, or --customer-id to scope the list. Follow nextCursor using --cursor.
--status suggested|processing|merged|rejected and --confidence HIGH|MEDIUM|LOW. Rejection requires identity review authority and does not authorize merging. It returns only { "suggestionId": "…", "status": "REJECTED" }; read the suggestion list again for updated details.
The merge command previews by default. Both positional arguments are exact IDs; the first is the surviving record. Without --suggestion-id, both records must be COMPANY customers. A pair involving an INDIVIDUAL requires an eligible saved suggestion for that exact pair. An optional --suggestion-id links an existing suggestion to the exact pair, and --review-notes records the review explanation.
--execute, the reviewed preview’s token, a stable request ID, and dedicated merge authority. A read-only credential can preview but cannot execute. A merge API key must include an explicitly selected customer_identity:merge grant; ordinary full-access and personal CLI presets exclude it. Use the same pair, token, request ID, and review inputs when retrying an execution.
latestJob.operationId, when present, can be passed to customers merge-status. A null value means that job has no public operation ID attached.
A queued or running merge has not finished. Reading status does not run the merge again, including after a partial failure. The workspace must support these commands, and the API key needs the required permission.
Customers credits
Read imported credit pools and burn summaries for one authorized customer.<customer> accepts a customer domain, UUID, or exact name. The command returns the same JSON
schema as outlit_get_customer_credits: the resolved customer, overall availability status,
credit pools, and a truncated marker. Each credit pool keeps its provider source, observation
time, staleness, granted and remaining amounts, reset date, and burn summary. Missing or stale
provider observations remain distinct from a zero balance.
Customers features
Read event-based and imported metered Feature usage for one authorized customer.<customer> accepts a customer domain, UUID, or exact name. The default window is 12 weeks.
The response is a flat features array. Every item has a kind discriminator. An event item
reports historical evidence from its configured Outlit event rule. A metered item reports
provider-defined quantities imported from Autumn and may link to an event Feature. These values
use different units and must not be added together. The response also lists source status so a
missing provider connection, unavailable source, and an available source with no matches remain
distinct. Top-level events is available or unavailable; if the event source cannot be
read, imported metered Features can still be returned.
Complete, partial, and unavailable evidence remain distinct; unavailable evidence is never
rendered as zero usage. Add --weekly to include ordered weekly buckets. Event Features report
eventCount and activeDays. Metered Features report their provider quantity and observed days.
Features
Configure the small workspace taxonomy of product capabilities whose recurring use represents customer value.features list returns eligible product-event sources, the selected source, active
features with exact historical evidence, and candidate discovery. Candidate discovery is a
discriminated result: ready and partial contain items and truncated, while unavailable
contains a reason. Outlit auto-selects a source only when exactly one is eligible.
Create one feature from one exact event rule:
--property-filters with a JSON array of generated exact or exists filter objects when the
event alone is too broad. Event names are preserved exactly; use the candidate returned by the
workspace command.
Archive requires both opaque values returned by Outlit:
Attention
Inspect the authorized, read-only Attention collection. Attention is separate from customer relationship and from the chronological customer timeline.attention list defaults to open items. It accepts optional --customer-id, --limit
(1–100; server default 25), and an opaque --cursor returned with the same filters. Use
--status resolved for resolved items. Each returned item includes its current priority;
the command does not filter by priority.
accountImportance.arrCents is calculated by Outlit as 12 × the stored
monthly revenue; clients must not multiply it again. It is in the billing provider’s units for
accountImportance.currency: cents for USD, EUR, GBP, and CAD (1200000 is $12,000 ARR in USD),
and other currencies follow the provider’s amount rules. arrShareWithinCurrency and
arrPercentileWithinCurrency compare only customers in the same currency; neither implies FX
conversion or an all-currency organization total.
Both responses may contain a current reviewable preparedActionUrl only. They never include
action IDs, action lifecycle or execution state, email drafts, recipients, evidence IDs, source
URLs, internal responsibility-agent configuration, or billing-recovery details. The commands are
read-only: there is no resolve, reopen, send, or review operation.
JSON response
Customer ownership and access
Assign a primary owner or manage a workspace member’s explicit Viewer or Editor access. These write commands require exact IDs and never resolve customer names, domains, or user emails on your behalf. For API keys, workspace-member discovery and customer mutations are independent capabilities.outlit ws-users list requires workspace_members:read; setting an owner, granting or changing
access, and revoking access require customer_access:manage. The complete discover-then-mutate
flow needs both grants, while scripts and agents that already know exact IDs may use
customer_access:manage alone. API keys are independent workspace principals and do not inherit
their creator’s human permissions or customer access. Read only includes discovery but not
mutation, Full workspace access includes both grants, and Custom includes only the grants you
select; there is no separate customer-collaboration preset.
First discover the customer UUID. Use JSON output because the interactive table is optimized
for scanning rather than copying identifiers:
items[].id for the intended customer. Then discover the target workspace user:
--has-owned-customers, this command lists all active workspace members that resolve to
local Outlit users, including members who own no customers. Use --has-owned-customers only when
you intentionally want to restrict discovery to current owners.
Copy the exact workspace-user items[].id as --target-user-id. Review multiple matches before
writing; the ownership and access commands intentionally do not perform fuzzy name matching.
Set owner
Grant or change access
grant command again with the other role to change an existing collaborator
between Viewer and Editor.
Revoke access
--role accepts only VIEWER or EDITOR; OWNER is represented by the separate primary-owner
assignment. Malformed customer IDs, missing or oversized target-user IDs, and invalid roles fail
locally without sending a request. Permission, conflict, and other gateway failures retain Outlit’s
structured code, message, retryable, and requestId fields in JSON output.
Customers timeline
View the activity timeline for a customer, filtered by channel and event type.Arguments
Flags
When
--start-date or --end-date is provided, --timeframe is ignored.
The CLI also accepts and normalizes these legacy aliases: SDK → PRODUCT, EMAIL →
COMMUNICATION, SLACK → COMMUNICATION, CALL → MEETING, CALENDAR → MEETING, and
INTERNAL → SYSTEM.
Examples
JSON response
pagination.effectiveLimit, per-event unreadable/unreadableReason, and the product weekly usage aggregate (channels:"PRODUCT"). Check for their presence before using them.
Users list
List and filter users across your customer base.Flags
Examples
JSON response
Facts
Retrieve AI-generated facts and insights for a customer.facts list arguments
facts list flags
facts get flags
Examples
JSON response
facts get returns the same canonical fact shape as facts list. Passing --include evidence requests a best-effort evidence expansion; unsupported include values are ignored.
Search
Semantic search across customer context. Results are grouped at the artifact level, so matching sources and facts are returned directly instead of raw chunks.Arguments
Flags
Examples
JSON response
source and fact artifacts when both are relevant. Multiple chunk hits from the same source are grouped into one source result.
The top-level customer is the --customer you scoped to, or null for an organization-wide search. Each result’s customer names the customer it belongs to, so an organization-wide search tells you whose call or fact matched. It is null when the result can’t be attributed to exactly one customer you can read, and older servers omit it; treat a missing customer like null.
Sources
List concrete source records deterministically or fetch one exact source by genericsourceType and sourceId.
List sources
List enumerated calls, emails, calendar events, support tickets, Slack conversations, or opportunities. Use this command when you need deterministic source records; useoutlit search for semantic ranking. Results are paginated.
Flags
Source-type aliases are normalized to their canonical values before the request. With
--json, the command returns the paginated items and pagination response. In interactive output, rows show TYPE, OCCURRED, TITLE, and SOURCE ID; when more results are available, the next cursor is printed for the following --cursor request.
Examples
Get a source
Flags
Examples
EXTRACTED is accepted by the exact-source tool API but is currently rejected by
outlit sources get. Use one of the source types listed above in the CLI.
When a response includes contentPage, read contentPage.segments and check
contentPage.completeness for partial or unavailable content. If
contentPage.page.hasMore is true, pass contentPage.page.nextCursor as --cursor
with the same source type and ID. Use --json to inspect these fields.
When a fact or search result references a PERSON_PROFILE source, pass that source
ID to exact lookup to inspect its evidence:
Destinations
Inspect and manage configured delivery destinations (for example Slack channels) with masked configuration only.Examples
--default on destinations create or destinations update to make a destination the default fallback. destinations update patches only the fields you pass. Raw destination secrets and unmasked provider configuration are not returned.
Settings
Read and update the workspace timezone. Configure delivery and reports in the Outlit app.Examples
outlit destinations create --default or outlit destinations update --default.
SQL
Execute read-only SQL queries against Outlit analytics views.Arguments
Flags
Examples
JSON response
Available views
Useoutlit schema to discover all views and their columns. Common views:
Schema
Discover analytics views and their column definitions.Arguments
Examples
customers analytics view exposes company activation as
activated_at Nullable(DateTime64(3)). Contact journey stages remain separate on users.
JSON response
Feedback
Submit product feedback to the Outlit team: bug reports, feature ideas, or friction you hit while working with Outlit. Feedback is product intake — it is not a support ticket and does not guarantee a reply.Flags
--body and --body-file are mutually exclusive, as are --context and --context-file.
Use context for diagnostics such as the surface, command, or client version — never for
secrets or unnecessary customer data.
Submitting feedback requires an authenticated API key and is rate limited separately from
customer-intelligence reads. It does not consume paid usage quota.
