Activation
Inspect, historically preview, and explicitly configure the exact ordinary product event Outlit uses for activation. The first matching event activates eligible contacts and their resolved company. Core sets each subject’s activation timestamp only when it is null, so activation is monotonic. Applications and connected analytics sources keep sending ordinary product events. They do not send a synthetic activation event or authoritatively mutate lifecycle state.Get
eventName. The fixed behavior remains simple: the first
matching product event activates the eligible contact and resolved company.
Preview
Preview one exact event name against historical product events:activatedAt, or
materializes activation. The response reports separate contact and company totals:
matching subjects, subjects already activated, and subjects 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 Core’s stable code, message, retryable, and requestId envelope.
Customers List
List and filter customers with pagination.Flags
Examples
JSON Response
Pagination
Use--cursor to page through results:
Customers Get
Get a detailed customer profile with optional sections.Arguments
Flags
Examples
JSON Response
customer.activatedAt is an ISO-8601 timestamp when Core has materialized company
activation, and null otherwise. Contact journey stages remain separate under
users.Customers Relationship
Get the bounded relationship read model used for customer detail, without adding it to the compactcustomers 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
Customers Features
Read exact historical Feature usage for one authorized customer.<customer> accepts a customer domain, UUID, or exact name. The default window is 12 weeks.
Each feature reports factual observation evidence from its configured event rule. Complete or
partial coverage, no matches, and unavailable source evidence remain distinct; unavailable
evidence is never rendered as zero usage. Add --weekly to include the ordered weekly
eventCount and activeDays projection used by the customer feature lanes.
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. Core 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 Core:
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; Core default 25), and an opaque --cursor returned with the same filters. Use
--status resolved for resolved items. Each returned item includes its current priority;
priority filtering is not part of V1.
accountImportance.arrCents is calculated by Core from stored monthly
revenue; clients must not multiply it again. 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 automation that already knows 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 Core’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
Users List
List and filter users across your customer base.Flags
Examples
JSON Response
Facts
Retrieve AI-generated facts, signals, 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
Search returns both matching
source and fact artifacts when both are relevant. Multiple chunk hits from the same source are grouped into one source result.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
Destinations
Inspect and manage configured automation destinations 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
Inspect and configure the model-safe workspace timezone. Delivery and report configuration remains in the authored web UI.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.