Skip to main content
Most commands in this reference share these common flags:

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

The command returns the configured eventName.

Preview

Preview one exact event name against historical product events:
Preview is always read-only. It never saves the event setting, changes 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:
Saving the event name changes future matching only. It does not scan historical events or backfill activation.

Disable

To stop future activation matching:
Disabling preserves existing contact and company activation timestamps. All four commands return the public tool result in --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:
In interactive mode, the CLI shows a hint after the table:

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 5,000MRRand‘2400000‘is5,000 MRR and `2400000` 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 the customers 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:
Candidate records are leads, not proof of common identity. An empty or incomplete search does not prove the account has zero usage. This read never creates a merge suggestion or combines customer activity. Saved suggestions and review history are a separate read. List returns complete details; use --suggestion-id to retrieve one exact record in the same collection response, or --customer-id to scope the list. Follow nextCursor using --cursor.
List also accepts --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.
Merge execution is dangerous and has no supported undo. It moves customer data and access relationships into the survivor. Execute only when authorized and certain that the records represent the same customer; two company records must represent the same company. Similar names, related domains, shared participants, and parent/subsidiary relationships do not establish that identity. If uncertain, do not execute.
Execution requires an explicit --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.
A saved suggestion’s 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:
Use --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:
Creating a Feature atomically creates its internal weekly event-count and active-days metrics. Those metrics are implementation details rather than separate CLI resources. Outlit rejects stale revisions and prevents archiving the final active Feature. Historical usage remains available. Archive is the available self-service lifecycle action.

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.
List rows contain bounded customer identity, current priority, evidence count, lifecycle times, and account importance. Detail adds the current assessment, timeline, evidence summaries, and latest visible update. 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:
Copy the exact items[].id for the intended customer. Then discover the target workspace user:
Without --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

The target must be an active workspace member. When ownership changes, the former owner keeps Editor access.

Grant or change access

Run the same 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

Older CLI and tool versions may omit 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. 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. 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 generic sourceType 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; use outlit 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

Destination creation and update are Slack-channel backed. Use --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

The public workspace settings capability returns and updates the default IANA timezone. Default delivery destination selection is handled by 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

Use outlit schema to discover all views and their columns. Common views:

Schema

Discover analytics views and their column definitions.

Arguments

Examples

The public 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.

Examples

JSON response