@audienti/cli 0.1.144 → 0.2.0-exora.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -902
- package/bin/audienti-mcp.mjs +2 -0
- package/cli/account-intake-operations.mjs +28 -0
- package/cli/account-intake.mjs +33 -0
- package/cli/account-replies.mjs +35 -0
- package/cli/account-reply-operations.mjs +30 -0
- package/cli/agents.mjs +107 -0
- package/cli/approach-operations.mjs +12 -0
- package/cli/assignment-operations.mjs +218 -0
- package/cli/assignment.mjs +116 -0
- package/cli/audience-operations.mjs +16 -0
- package/cli/audiences.mjs +26 -0
- package/cli/audienti.mjs +124 -0
- package/cli/connection-registry-operations.mjs +7 -0
- package/cli/content.mjs +29 -0
- package/cli/discovery-operations.mjs +27 -0
- package/cli/discovery.mjs +14 -0
- package/cli/experiment-operations.mjs +25 -0
- package/cli/experiments.mjs +26 -0
- package/cli/json-file.mjs +13 -0
- package/cli/mcp.mjs +47 -0
- package/cli/offer-operations.mjs +12 -0
- package/cli/offers.mjs +24 -0
- package/cli/owner-account-client.mjs +18 -0
- package/cli/profiles.mjs +29 -0
- package/cli/progress.mjs +12 -0
- package/cli/prospecting-settings-operations.mjs +16 -0
- package/cli/prospecting-settings.mjs +15 -0
- package/cli/recipient-operations.mjs +13 -0
- package/cli/recipients.mjs +30 -0
- package/cli/sender-account-operations.mjs +24 -0
- package/cli/sender-accounts.mjs +23 -0
- package/cli/skills-mcp.mjs +24 -0
- package/cli/skills.mjs +56 -0
- package/cli/suppression-operations.mjs +8 -0
- package/cli/suppression.mjs +12 -0
- package/cli/tools-operations.mjs +70 -0
- package/cli/tools.mjs +72 -0
- package/cli/work-execution-operations.mjs +35 -0
- package/cli/work-execution.mjs +29 -0
- package/cli/work-feedback-operations.mjs +17 -0
- package/cli/work-feedback.mjs +18 -0
- package/cli/work-operations.mjs +28 -0
- package/cli/work.mjs +27 -0
- package/cli/workspaces.mjs +158 -0
- package/package.json +15 -26
- package/skills/audienti/SKILL.md +61 -323
- package/skills/audienti/references/helpers.md +149 -0
- package/skills/audienti/references/profile-workflows.md +212 -0
- package/skills/audienti/references/workflow-receipt.md +49 -0
- package/skills/audienti/scripts/contracts.mjs +72 -0
- package/skills/audienti/scripts/profile-helpers.mjs +138 -0
- package/skills/audienti/scripts/run.mjs +40 -0
- package/source-manifest.json +59 -0
- package/.mcp.json +0 -13
- package/CHANGELOG.md +0 -1012
- package/bin/audienti-mcp.js +0 -5
- package/bin/audienti.js +0 -6
- package/install +0 -83
- package/skills/audienti/references/methodology.md +0 -111
- package/skills/audienti-gift-research/SKILL.md +0 -47
- package/src/agent-skills.js +0 -60
- package/src/api-client.js +0 -1639
- package/src/cli.js +0 -16992
- package/src/config.js +0 -130
- package/src/mcp.js +0 -103
package/README.md
CHANGED
|
@@ -1,917 +1,45 @@
|
|
|
1
|
-
# Audienti CLI
|
|
1
|
+
# Audienti CLI for Exora
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
coding agents and operators inspect accounts,
|
|
6
|
-
create and manage plays, import prospects, build lists, manage task reminders,
|
|
7
|
-
configure list routing rules and account-user automation safety, and work
|
|
8
|
-
supported operator flows.
|
|
3
|
+
Use Node 24. This release connects agents to **https://exo.audienti.com**.
|
|
4
|
+
The `exora` npm tag selects this client; the legacy `latest` tag is unchanged.
|
|
9
5
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## Install
|
|
15
|
-
|
|
16
|
-
Requires Node.js 20 or newer.
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
curl -fsSL https://cli.audienti.com/install | bash
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
At a terminal, the installer runs `audienti start` for you. Or install directly
|
|
23
|
-
through npm, then start:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
npm install --global @audienti/cli
|
|
27
|
-
audienti start
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
For one-off use, run `npx @audienti/cli --help`.
|
|
31
|
-
|
|
32
|
-
## First run
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
audienti start
|
|
36
|
-
audienti setup
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
`audienti start` walks you through the same path as the web:
|
|
40
|
-
|
|
41
|
-
1. It prints the intro: what Audienti does and how it warms people up.
|
|
42
|
-
2. It opens Audienti in your browser so you can sign in or create an account,
|
|
43
|
-
then picks your account and account user (automatically when there is only
|
|
44
|
-
one).
|
|
45
|
-
3. If the account has not paid, it shows the price and credits. Press Enter to
|
|
46
|
-
pay by card on the pay page (it opens in your browser and the address is
|
|
47
|
-
printed; the terminal waits until the payment shows), or type a signup code.
|
|
48
|
-
4. It runs setup in the terminal from the step you are on. Step 1, your
|
|
49
|
-
company: website, who you sell to, what they should say yes to, and your
|
|
50
|
-
city, state or province, and country when the account needs them. Step 2,
|
|
51
|
-
verify your targeting: the audience, offer and signals cards. Type `a`, `o`
|
|
52
|
-
or `s` to change one card, or press Enter to create the experiment.
|
|
53
|
-
5. Step 3, go live: connecting LinkedIn is not in the terminal yet. The command
|
|
54
|
-
prints the web page where you finish it.
|
|
55
|
-
|
|
56
|
-
`audienti setup` runs steps 1 and 2 on their own. Nothing is sent without your
|
|
57
|
-
approval.
|
|
58
|
-
|
|
59
|
-
Without a terminal, `audienti start` never prompts and reports what to do next
|
|
60
|
-
(`payment_required` with the pay page when the account has not paid), and
|
|
61
|
-
`setup` takes flags:
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
audienti setup --url https://acme.com --sell-to "<who you sell to>" --ask "<what they say yes to>" --yes --json
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
Add `--city <city> --state <code> --country <code>` when setup says it needs
|
|
68
|
-
your place.
|
|
69
|
-
|
|
70
|
-
Without `--yes`, a non-interactive setup drafts but creates nothing. Running
|
|
71
|
-
`audienti` with no saved login starts `audienti start`; `audienti --help` still
|
|
72
|
-
prints help.
|
|
73
|
-
|
|
74
|
-
## Authenticate
|
|
75
|
-
|
|
76
|
-
Authenticate through the browser, then configure the default account context:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
audienti auth login
|
|
80
|
-
audienti accounts list --json
|
|
81
|
-
audienti accounts create --name Doppel --parent OMALab --json
|
|
82
|
-
audienti accounts select <acct_id>
|
|
83
|
-
audienti users list
|
|
84
|
-
audienti users select <account_user_id|email|name|me>
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
`audienti auth login` opens Audienti in your browser, creates an API token from
|
|
88
|
-
your signed-in web session, sends it back to a temporary `127.0.0.1` callback,
|
|
89
|
-
and stores it in the local CLI config after validating it.
|
|
90
|
-
|
|
91
|
-
If you already have a token, you can still configure it directly:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
audienti auth token <token>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
The CLI writes its local configuration to `~/.config/audienti/config.json` with
|
|
98
|
-
owner-only permissions. Do not place a production token in an agent prompt,
|
|
99
|
-
repository file, issue, or CI secret.
|
|
100
|
-
|
|
101
|
-
The selected account user is used when commands accept `me` or default to the
|
|
102
|
-
current operator, such as `audienti users activity`, `audienti analytics users`,
|
|
103
|
-
and `audienti prospects assign --assigned-user me`.
|
|
104
|
-
|
|
105
|
-
## Agent Workflows
|
|
106
|
-
|
|
107
|
-
Before creating, changing or judging an experiment, read the strategy:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
audienti help methodology
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
The guide explains premises, signals, informants, validating and gifting,
|
|
114
|
-
cadence, mature-cohort verdicts, and accepted opportunities. Motion mutations
|
|
115
|
-
print a short reminder to stderr; `--json` stdout remains machine-readable.
|
|
116
|
-
`experiments`, `experiment` and `plays` are aliases for `motions`, including help.
|
|
117
|
-
|
|
118
|
-
For gift research that stays outside the Audienti app:
|
|
119
|
-
|
|
120
|
-
```bash
|
|
121
|
-
audienti tools gift-research --url https://example.com
|
|
122
|
-
audienti tools gift-research --url https://example.com --json
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
This prints a research skill and the website for the agent to investigate with
|
|
126
|
-
its own browsing tools. It does not crawl the site, require login, scan through
|
|
127
|
-
Audienti, save gifts or send outreach. The agent returns evidence-linked existing
|
|
128
|
-
assets and clearly marked adaptations that someone would still need to build.
|
|
129
|
-
|
|
130
|
-
Discover the bundled skills and the Audienti marketplace snapshot:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
audienti skills list
|
|
134
|
-
audienti skills show audienti-gift-research
|
|
135
|
-
audienti skills show signal-prospect-research
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Bundled skills print their instructions. Marketplace entries print source links
|
|
139
|
-
and host-specific install commands; the CLI does not install or execute them.
|
|
140
|
-
Upstream repositories own those skills, dependencies and updates. The snapshot's
|
|
141
|
-
source commit is included in `skills list --json`; check the upstream catalog
|
|
142
|
-
for later additions.
|
|
143
|
-
|
|
144
|
-
The selected marketplace entries are the six social-network finders,
|
|
145
|
-
`signal-prospect-research`, and `sales-sheet-builder`. Before using a social
|
|
146
|
-
finder, agents must check their local browser/search tools, connectors, skills,
|
|
147
|
-
CLIs and network access. `skills show <finder>` includes that environment check
|
|
148
|
-
before the upstream instructions; JSON discovery includes it too. Missing access
|
|
149
|
-
must be reported rather than assumed.
|
|
150
|
-
|
|
151
|
-
Start with the built-in, production-safe workflow guide:
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
audienti help agent-workflows
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
Use `--json` whenever another program or agent will consume the result. Inspect
|
|
158
|
-
the target state before mutations, and use the command-specific help before
|
|
159
|
-
creating, changing, or deleting data.
|
|
160
|
-
|
|
161
|
-
## MCP
|
|
162
|
-
|
|
163
|
-
Audienti serves MCP from the app at `/mcp`. The package ships a small stdio
|
|
164
|
-
bridge for MCP hosts that need a local command:
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
audienti-mcp
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Use it this way:
|
|
171
|
-
|
|
172
|
-
1. Install the package.
|
|
173
|
-
2. Run `audienti auth login`.
|
|
174
|
-
3. Run `audienti accounts select <acct_id>`.
|
|
175
|
-
4. Configure your MCP host with the packaged `.mcp.json`, or point it at the
|
|
176
|
-
`audienti-mcp` command.
|
|
177
|
-
5. In the MCP host, list tools and call the account-scoped tool you need.
|
|
178
|
-
|
|
179
|
-
The bridge reads the same `~/.config/audienti/config.json` as the CLI, forwards
|
|
180
|
-
MCP JSON-RPC messages to the app, and injects the selected account when a tool
|
|
181
|
-
call does not include `account_id`. If you want a tool to run against a
|
|
182
|
-
different account, pass `account_id` in that tool call.
|
|
183
|
-
|
|
184
|
-
MCP clients that can call HTTP directly may use the hosted endpoint instead of
|
|
185
|
-
the stdio bridge:
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
curl https://app.audienti.com/mcp \
|
|
189
|
-
-H "Authorization: Bearer $AUDIENTI_API_TOKEN" \
|
|
190
|
-
-H "Content-Type: application/json" \
|
|
191
|
-
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
Example tool call:
|
|
195
|
-
|
|
196
|
-
```json
|
|
197
|
-
{
|
|
198
|
-
"jsonrpc": "2.0",
|
|
199
|
-
"id": 2,
|
|
200
|
-
"method": "tools/call",
|
|
201
|
-
"params": {
|
|
202
|
-
"name": "analytics.stages",
|
|
203
|
-
"arguments": {
|
|
204
|
-
"account_id": "acct_...",
|
|
205
|
-
"query": {
|
|
206
|
-
"interval": "weekly",
|
|
207
|
-
"cohort_start_date": "2026-07-01",
|
|
208
|
-
"cohort_end_date": "2026-07-31"
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Useful MCP tools to start with:
|
|
216
|
-
|
|
217
|
-
- `auth.me` confirms the token identity.
|
|
218
|
-
- `accounts.list` shows accessible accounts.
|
|
219
|
-
- `setup.play_preflight` returns LinkedIn connected-account readiness and setup
|
|
220
|
-
or mapping URLs.
|
|
221
|
-
- `offers.create`, `icps.create`, and `motions.create` set up the offer, ICP,
|
|
222
|
-
and play.
|
|
223
|
-
- `analytics.stages` returns stage conversion cohorts and stage aging.
|
|
224
|
-
- `analytics.cohort_lists.create` materializes event cohorts as reusable lists.
|
|
225
|
-
|
|
226
|
-
Common inspection commands:
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
audienti update check
|
|
230
|
-
audienti operator next --plan
|
|
231
|
-
audienti writer test-run <prsp_id>
|
|
232
|
-
audienti analytics motions --json
|
|
233
|
-
audienti analytics icps --json
|
|
234
|
-
audienti motions analytics <motn_id>
|
|
235
|
-
audienti motions run-discovery <motn_id>
|
|
236
|
-
audienti motions runs <motn_id> [--cursor <id>] [--limit <1-10>] [--json]
|
|
237
|
-
audienti motions quick-start --url https://example.com --wait --confirm
|
|
238
|
-
audienti motions abm-companies <motn_id> add --file abm-domains.txt
|
|
239
|
-
audienti motions abm-companies <motn_id> list
|
|
240
|
-
audienti motions update <motn_id> --status closing
|
|
241
|
-
audienti motions update <motn_id> --status paused
|
|
242
|
-
audienti motions update <motn_id> --start-date 2026-09-01 --end-date 2026-09-30 --maximum-company-count 25
|
|
243
|
-
audienti motions update <motn_id> --own-post-engagement true
|
|
244
|
-
audienti motions update <motn_id> --payload motion-principal-list.json
|
|
245
|
-
audienti motions update <motn_id> --payload motion-signals.json
|
|
246
|
-
audienti motions activate <motn_id>
|
|
247
|
-
audienti motions delete <motn_id> --confirm yes
|
|
248
|
-
audienti content programs
|
|
249
|
-
audienti content track <linkedin_post_url>
|
|
250
|
-
audienti content posts
|
|
251
|
-
audienti content engagement <cpwi_id> --json
|
|
252
|
-
audienti content plan <cprg_id>
|
|
253
|
-
audienti content plans --user me
|
|
254
|
-
audienti content plan <rprt_id> --report --user me
|
|
255
|
-
audienti content plan-update <rprt_id> --day 1 --payload edits.json
|
|
256
|
-
audienti content plan-approve <rprt_id> --day 1
|
|
257
|
-
audienti content plan-research <rprt_id> --day 1
|
|
258
|
-
audienti content plan-draft <rprt_id> --day 1 --feedback "Revise the opening"
|
|
259
|
-
audienti content plan-visuals <rprt_id> --day 1 --style <id>
|
|
260
|
-
audienti content post-reply <cpwi_id> --comment <task_id> --body "Approved reply"
|
|
261
|
-
audienti content approve <cpwi_id>
|
|
262
|
-
audienti content comments
|
|
263
|
-
audienti social-cookies sync-messages <scok_id> [--folder <folder>] [--retry] --json
|
|
264
|
-
audienti prospects show <prsp_id> --json
|
|
265
|
-
audienti prospects list --profiles
|
|
266
|
-
audienti prospects list --assigned-user unassigned
|
|
267
|
-
audienti prospects check --all --csv
|
|
268
|
-
audienti prospects assign <prsp_id> --assigned-user me
|
|
269
|
-
audienti prospects set-status <prsp_id> --status not_fit
|
|
270
|
-
audienti prospects lock <prsp_id> --note "Emergency hold"
|
|
271
|
-
audienti tasks list
|
|
272
|
-
audienti tasks add --title "Review Cristina" --due 2026-07-24T11:00 --prospect <prsp_id> --notes "Check the renewal note before replying."
|
|
273
|
-
audienti tasks complete <ptsk_id>
|
|
274
|
-
audienti dnc list
|
|
275
|
-
audienti company-rules list
|
|
276
|
-
audienti lists routing-rules <list_id> list
|
|
277
|
-
audienti lists routing-rules <list_id> apply
|
|
278
|
-
audienti users activity --window 7d
|
|
279
|
-
audienti users automation show 136 --platform linkedin --json --account <acct_id>
|
|
280
|
-
audienti users automation update 136 --payload automation-controls.json --json --account <acct_id>
|
|
281
|
-
audienti users automation update 136 --payload automation-controls.json --apply --json --account <acct_id>
|
|
282
|
-
audienti analytics prospects --window 24h
|
|
283
|
-
audienti analytics dashboard --play-tag wine_campaign
|
|
284
|
-
audienti analytics metrics --cohort-preset week-to-date
|
|
285
|
-
audienti analytics cohorts create-list --name "Blank note test" --start 2026-07-20 --end 2026-07-20 --note-mode blank
|
|
286
|
-
audienti analytics users --user me --window 30d
|
|
287
|
-
audienti analytics visibility --window 24h --user me
|
|
288
|
-
audienti analytics content --window week
|
|
289
|
-
audienti tools list
|
|
290
|
-
audienti tools humanize --file draft.txt --tone professional --language English
|
|
291
|
-
audienti tools linkedin-review --url https://www.linkedin.com/in/example --icp <icp_id>
|
|
292
|
-
audienti tools linkedin-review reports
|
|
293
|
-
audienti tools linkedin-review show <rprt_id>
|
|
294
|
-
audienti tools linkedin-review status <rprt_id>
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
To humanize arbitrary text without exposing the underlying provider key, pass a
|
|
298
|
-
UTF-8 file. Plain output contains only the transformed text, so it can be
|
|
299
|
-
redirected directly to another file:
|
|
300
|
-
|
|
301
|
-
```bash
|
|
302
|
-
audienti tools humanize --file draft.txt --tone professional > revised.txt
|
|
303
|
-
audienti tools humanize --file draft.txt --language English --json
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
### Standalone account tools
|
|
307
|
-
|
|
308
|
-
These run without creating prospects or experiments. Each command returns a run
|
|
309
|
-
id at once and keeps working on the server; `--wait` polls until the run
|
|
310
|
-
finishes and prints the results. If the CLI exits, read the run later with
|
|
311
|
-
`tools runs show|results`. Details expire after 90 days; the summary stays.
|
|
312
|
-
|
|
313
|
-
```bash
|
|
314
|
-
audienti tools email-find --first-name Ada --last-name Lovelace --company-domain example.com --wait
|
|
315
|
-
audienti tools email-find --file people.csv --request-key batch-2026-10-03 # csv, jsonl or json
|
|
316
|
-
audienti tools linkedin-enrich --url https://www.linkedin.com/in/example --wait --json
|
|
317
|
-
audienti tools signals-find --icp "Mid-size US logistics companies" --question "Who announced warehouse automation?" --count 5
|
|
318
|
-
audienti tools write --purpose "Book a call" --audience "Finance leads" --fact "Approvals take 2 days" --channel email
|
|
319
|
-
audienti tools humanize --file draft.txt --async --wait
|
|
320
|
-
audienti tools runs list --tool email-find
|
|
321
|
-
audienti tools runs results <trun_id> --json
|
|
322
|
-
audienti tools runs export <trun_id> --format csv --output results.csv
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
`--file` takes JSON (an array or `{"items": [...]}`), JSONL, or CSV with a
|
|
326
|
-
header row. CSV is one row per line; quoted commas are allowed, line breaks
|
|
327
|
-
inside fields are not. With `--wait`, the exit code is 1 on an API error, a
|
|
328
|
-
timeout or an aborted (failed) run; per-item outcomes such as `no_match` do
|
|
329
|
-
not change it.
|
|
330
|
-
|
|
331
|
-
For active paid Email Find or Signal search work, review a server quote first:
|
|
332
|
-
|
|
333
|
-
```bash
|
|
334
|
-
audienti tools email-find --file people.csv --quote
|
|
335
|
-
audienti tools signals-find --icp "Logistics companies" --question "Warehouse expansion" --count 5 --quote
|
|
336
|
-
audienti tools email-find --file people.csv --accept-quote <quote_reference>
|
|
337
|
-
audienti tools runs review <run_id>
|
|
338
|
-
audienti tools runs resume <run_id> --item <item_id> --revision <revision> --idempotency-key <unique_key>
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
Use the same input when accepting the quote. Queued rows retain the accepted price.
|
|
342
|
-
Review reports available credits and the rows that can continue. Select fewer rows
|
|
343
|
-
or top up; a top-up does not restart manually paused work. Use `pause` or `cancel`
|
|
344
|
-
in place of `resume` with the same reviewed selection. `approve-payer` requires the
|
|
345
|
-
new root administrator and does not resume work. `tools runs usage <usage_reference>`
|
|
346
|
-
opens the exact receipt data. Tool history displays credits; supplier costs stay internal.
|
|
347
|
-
Real prices and production charging require separate approval.
|
|
348
|
-
|
|
349
|
-
Prefer `tools email-find` for an email lookup. `tools get email` still runs the
|
|
350
|
-
prospect import pipeline and creates a prospect.
|
|
351
|
-
|
|
352
|
-
### Saved network
|
|
353
|
-
|
|
354
|
-
Your own connected account's saved connections and following, from what
|
|
355
|
-
normal work has already seen. Only the account's owner can read it, and it
|
|
356
|
-
never visits LinkedIn or X. Coverage says partial, not yet observed, or
|
|
357
|
-
capture not supported yet; none of these mean zero.
|
|
358
|
-
|
|
359
|
-
```bash
|
|
360
|
-
audienti network list --cookie <scok_id> --kind connection --query acme
|
|
361
|
-
audienti network list --cookie <scok_id> --kind follow --direction outgoing --json
|
|
362
|
-
audienti network export --cookie <scok_id> --kind connection --format csv --output connections.csv
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
To let an agent or operator check whether the local CLI is behind the latest
|
|
366
|
-
published package:
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
audienti update check --json
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
To work the supported prospect operator queue from the CLI, inspect the next move
|
|
373
|
-
and record the outcome against that same row:
|
|
374
|
-
|
|
375
|
-
```bash
|
|
376
|
-
audienti operator next --plan
|
|
377
|
-
audienti operator next --done --note "Connection request sent."
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
`operator queue`, `operator failed-drafts`, `network-ops queue`, and
|
|
381
|
-
`inbox-ops queue` print a
|
|
382
|
-
continuation command when more rows remain. Read-only `operator next` (including
|
|
383
|
-
`--plan`) also prints one when its page has no focal move but more rows remain;
|
|
384
|
-
when a move is present, inspect or act on it and rerun `operator next`.
|
|
385
|
-
Follow the continuation command even when the current page has no ready
|
|
386
|
-
rows. It preserves the account and filters and uses the API's exact `--page` and
|
|
387
|
-
`--offset` (which can be zero), or its opaque `--cursor`. Do not combine a cursor
|
|
388
|
-
with an offset. If the scan limit is reached, narrow the filters; an incomplete
|
|
389
|
-
scan does not mean the queue is empty. JSON output preserves the API response.
|
|
390
|
-
Pagination flags are not accepted when recording outcomes or requeueing drafts.
|
|
391
|
-
|
|
392
|
-
Network Ops has its own owner-scoped CLI surface for pending inbound LinkedIn
|
|
393
|
-
connection requests. It shows the already-synced LinkedIn profile headline when
|
|
394
|
-
one is present, keeps the exact invitation-bound message when one was captured,
|
|
395
|
-
and queues the same canonical provider actions as the product UI:
|
|
396
|
-
|
|
397
|
-
```bash
|
|
398
|
-
audienti network-ops queue [--page <n>] [--offset <n>|--cursor <token>]
|
|
399
|
-
audienti network-ops accept <row_id>
|
|
400
|
-
audienti network-ops decline <row_id>
|
|
401
|
-
```
|
|
402
|
-
|
|
403
|
-
`reject` is accepted as an alias for `decline`. An accepted API response means
|
|
404
|
-
the provider action was queued; it is not confirmation that LinkedIn completed
|
|
405
|
-
the action. The same queue can be read with
|
|
406
|
-
`audienti operator queue --opportunity-kind network`.
|
|
407
|
-
|
|
408
|
-
Inbox Ops has its own owner-scoped CLI surface built for clearing a backlog in
|
|
409
|
-
bulk. `inbox-ops queue` follows every page, numbers each row, and saves the
|
|
410
|
-
numbered list locally for the selected account. The bulk verbs select rows by
|
|
411
|
-
number, range, row id, `--domain`, or `--sender`, print a manifest, and apply
|
|
412
|
-
only with `--yes` (or an interactive confirmation). `--dry-run` validates every
|
|
413
|
-
row on the server and reports planned, skipped, and rejected rows without
|
|
414
|
-
changing anything:
|
|
415
|
-
|
|
416
|
-
```bash
|
|
417
|
-
audienti inbox-ops queue
|
|
418
|
-
audienti inbox-ops queue --group-by domain
|
|
419
|
-
audienti inbox-ops ignore 1-25 --dry-run
|
|
420
|
-
audienti inbox-ops ignore 1-25 --yes
|
|
421
|
-
audienti inbox-ops filter-domain 3,7 --yes
|
|
422
|
-
audienti inbox-ops filter-domain --domain alerts.example.com --yes
|
|
423
|
-
audienti inbox-ops filter-sender 12 --yes
|
|
424
|
-
audienti inbox-ops allow-sender 4 --yes
|
|
425
|
-
audienti inbox-ops allow-domain --domain customer.example --yes
|
|
426
|
-
audienti inbox-ops filters
|
|
427
|
-
audienti inbox-ops rule <row_id> --scope sender --disposition filter
|
|
428
|
-
audienti inbox-ops rule set --scope sender --key news@example.com --disposition filter
|
|
429
|
-
audienti inbox-ops rule remove --scope domain --key example.com
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
Numbers stay valid until `inbox-ops queue` runs again. `ignore` hides one
|
|
433
|
-
thread until a newer reply arrives; `filter-*` and `allow-*` write durable rules
|
|
434
|
-
that apply to every current and future matching message across the owner's
|
|
435
|
-
accounts. Rule verbs given only `--domain` or `--sender` write the keyed rule
|
|
436
|
-
directly, even when the matching rows are no longer listed. Every row is
|
|
437
|
-
authorized individually on the server: rows another owner controls, stale rows,
|
|
438
|
-
and malformed ids are rejected one by one while the rest still apply. Pass
|
|
439
|
-
`--page`, `--offset`, or `--cursor` to read exactly one page instead.
|
|
440
|
-
|
|
441
|
-
All Inbox Ops commands update only the authenticated owner's personal/global
|
|
442
|
-
Inbox Ops preferences or private ignore receipts. They do not archive mail, call
|
|
443
|
-
the provider, or add a DNC entry.
|
|
444
|
-
|
|
445
|
-
To manage simple reminders for yourself:
|
|
446
|
-
|
|
447
|
-
```bash
|
|
448
|
-
audienti tasks list
|
|
449
|
-
audienti tasks list --status completed
|
|
450
|
-
audienti tasks add --title "Review target account" --due 2026-07-24T11:00 --list <list_id> --notes "Check the latest notes."
|
|
451
|
-
audienti tasks complete <ptsk_id>
|
|
452
|
-
```
|
|
453
|
-
|
|
454
|
-
To manage the same ordered rules shown in a list's Routing Rules UI, use a JSON
|
|
455
|
-
payload for create and update operations:
|
|
456
|
-
|
|
457
|
-
```bash
|
|
458
|
-
audienti lists routing-rules <list_id> list
|
|
459
|
-
audienti lists routing-rules <list_id> create --payload routing-rule.json
|
|
460
|
-
audienti lists routing-rules <list_id> update <rule_id> --payload routing-rule.json
|
|
461
|
-
audienti lists routing-rules <list_id> move <rule_id> up
|
|
462
|
-
audienti lists routing-rules <list_id> remove <rule_id>
|
|
463
|
-
audienti lists routing-rules <list_id> apply
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
```json
|
|
467
|
-
{
|
|
468
|
-
"name": "VP prospects to Alice",
|
|
469
|
-
"enabled": true,
|
|
470
|
-
"action_kind": "assign_user",
|
|
471
|
-
"target_account_user_id": "alice@example.com",
|
|
472
|
-
"conditions": {
|
|
473
|
-
"seniorities": [
|
|
474
|
-
{"id": "5", "name": "Vice President", "negative": false}
|
|
475
|
-
],
|
|
476
|
-
"seniority_match_mode": "at_least"
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
```
|
|
480
|
-
|
|
481
|
-
Use `action_kind: "route_to_list"` with `target_list_id` to route to another
|
|
482
|
-
working list. `apply` queues the existing list-routing background job, just like
|
|
483
|
-
the UI; it reports that work was enqueued, not that every prospect has finished
|
|
484
|
-
routing. Location and company_location labels must resolve to a known geography
|
|
485
|
-
at save time; unknown labels return 422. Run `audienti lists routing-rules help`
|
|
486
|
-
for the full condition contract.
|
|
487
|
-
|
|
488
|
-
To inspect activity for prospects that entered the account during a specific
|
|
489
|
-
cohort while keeping a separate activity window:
|
|
490
|
-
|
|
491
|
-
```bash
|
|
492
|
-
audienti analytics prospects --cohort-start 2026-07-01 --cohort-end 2026-07-07 --window 7d
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
To compare recent weekly prospect cohorts by their current pipeline stages:
|
|
496
|
-
|
|
497
|
-
```bash
|
|
498
|
-
audienti analytics prospects cohort-analysis --weeks 4 --motion <motn_id>
|
|
6
|
+
```sh
|
|
7
|
+
npm install -g @audienti/cli@exora
|
|
8
|
+
export AUDIENTI_API_URL=https://exo.audienti.com/api/v1
|
|
9
|
+
audienti agent connect --name "My agent" --profile "$HOME/.audienti/exo-agent.json"
|
|
499
10
|
```
|
|
500
11
|
|
|
501
|
-
|
|
502
|
-
|
|
12
|
+
Open the returned approval URL yourself, sign in, check the code, and approve.
|
|
13
|
+
Give the agent the profile path, not your password or a human API token.
|
|
503
14
|
|
|
504
|
-
```
|
|
505
|
-
audienti
|
|
506
|
-
audienti
|
|
507
|
-
audienti
|
|
508
|
-
audienti
|
|
15
|
+
```sh
|
|
16
|
+
audienti agent poll --profile "$HOME/.audienti/exo-agent.json"
|
|
17
|
+
audienti workspace list --profile "$HOME/.audienti/exo-agent.json"
|
|
18
|
+
audienti workspace use WORKSPACE_UUID --profile "$HOME/.audienti/exo-agent.json"
|
|
19
|
+
audienti tools balance --profile "$HOME/.audienti/exo-agent.json"
|
|
20
|
+
audienti profiles list --profile "$HOME/.audienti/exo-agent.json"
|
|
21
|
+
audienti skills show audienti
|
|
509
22
|
```
|
|
510
23
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
makes one authenticated request to the account Metrics API. Plain text formats
|
|
516
|
-
only the returned cohort ranges, Operations, First-try success, Recovered, Final
|
|
517
|
-
failures, In progress, Attempts, selected daily or weekly grid rows, action rows,
|
|
518
|
-
and account-wide Social Cookie rows. `--json` prints the API response deeply
|
|
519
|
-
unchanged; the CLI does not recalculate cohorts, outcomes, counts, or rates.
|
|
520
|
-
|
|
521
|
-
The six leaf outcomes are `first_attempt_success`, `succeeded_after_retry`,
|
|
522
|
-
`failed_without_retry`, `failed_after_retry`, `in_progress`, and `unresolved`.
|
|
523
|
-
The `success` and `failure` values are umbrella filters over their corresponding
|
|
524
|
-
two terminal leaf outcomes.
|
|
525
|
-
|
|
526
|
-
For example, the human output uses the server-provided values directly:
|
|
527
|
-
|
|
528
|
-
```text
|
|
529
|
-
Outbound metrics
|
|
530
|
-
Cohort: 2026-08-24 to 2026-08-30 (events.created_at)
|
|
531
|
-
Current: 2026-08-24T00:00:00-05:00 to 2026-08-31T00:00:00-05:00
|
|
532
|
-
Previous: 2026-08-17T00:00:00-05:00 to 2026-08-24T00:00:00-05:00
|
|
533
|
-
Operations: 1347
|
|
534
|
-
First-try success: 1275 (94.7%)
|
|
535
|
-
Recovered: 40 (3%)
|
|
536
|
-
Final failures: 16 (1.2%)
|
|
537
|
-
In progress: 16 (1.2%)
|
|
538
|
-
Attempts: 1400
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
To materialize a connection-request activity cohort as a reusable list selector,
|
|
542
|
-
then reuse it in analytics:
|
|
543
|
-
|
|
544
|
-
```bash
|
|
545
|
-
audienti analytics cohorts create-list --name "Connection requests 2026-07-01 to 2026-07-07" --event connection_request_sent --start 2026-07-01 --end 2026-07-07
|
|
546
|
-
audienti analytics dashboard --list <list_id>
|
|
547
|
-
audienti analytics prospects --list <list_id> --window 30d
|
|
548
|
-
audienti analytics users --user me --list <list_id> --start 2026-07-01 --end 2026-07-31
|
|
549
|
-
```
|
|
550
|
-
|
|
551
|
-
For prospect, dashboard, and stages analytics, use `--cohort-start` and
|
|
552
|
-
`--cohort-end` when the cohort is based on when people entered Audienti, a
|
|
553
|
-
motion, or a receiving segment. Use `analytics cohorts
|
|
554
|
-
create-list` followed by `--list` when the cohort is based on an event that
|
|
555
|
-
happened later, such as connection requests sent in a date range. Rebuild the
|
|
556
|
-
list when the event definition or date window changes so the analytics question
|
|
557
|
-
stays auditable.
|
|
558
|
-
|
|
559
|
-
`audienti setup play preflight` includes the selected sender's server-derived
|
|
560
|
-
working schedule under `social_cookie.automation`, including `active_days`,
|
|
561
|
-
normalized `working_hours`, effective `time_zone`, and current
|
|
562
|
-
`in_working_hours` state. The human-readable output reports the same timezone,
|
|
563
|
-
today's window, and whether provider execution is currently inside the window.
|
|
564
|
-
It also reports the configured user fallback location, the connected account's
|
|
565
|
-
configured and last-verified effective proxy geography, and the proxy source
|
|
566
|
-
without exposing proxy URLs, credentials, egress IPs, or browser session data.
|
|
567
|
-
For authorized LinkedIn account owners and admins, `social_cookie.capabilities.linkedin`
|
|
568
|
-
reports Audienti's stored `premium` and `sales_navigator` booleans plus the
|
|
569
|
-
`checked_at` timestamp. Text output shows yes, no, or unknown and when detection
|
|
570
|
-
last ran. Null or missing values mean unknown, including older server responses
|
|
571
|
-
and unavailable access. These are stored observations that may be stale;
|
|
572
|
-
preflight does not perform a fresh provider check. `--json` preserves the server
|
|
573
|
-
payload unchanged.
|
|
574
|
-
For LinkedIn, `social_cookie.automation.pacing` includes effective weekly
|
|
575
|
-
quotas, daily targets, motion active days, the outstanding-invitation cap, ramp
|
|
576
|
-
configuration, current outstanding inventory, any inventory blocker, and current
|
|
577
|
-
invitation capacity calculated by the server. A `null` weekly quota means
|
|
578
|
-
unlimited.
|
|
579
|
-
|
|
580
|
-
For an email social cookie, `social-cookies sync-messages` requests the shared
|
|
581
|
-
account-scoped cookie/folder sync slot and prints the server's durable status.
|
|
582
|
-
Pass `--folder` to select a provider folder and `--retry` only when an explicit
|
|
583
|
-
retry is intended. The command does not call a provider directly; `--json`
|
|
584
|
-
returns the accepted request and `sync_states` payload unchanged.
|
|
24
|
+
Approval initially grants read access. For CRM writes or paid tools, grant the agent
|
|
25
|
+
workspace access on your Agents page. Workspace policy and current permissions still
|
|
26
|
+
apply. Only a verified human Admin can purchase or redeem credits through Billing.
|
|
27
|
+
Paid calls spend shared workspace credits; development credits are local-only.
|
|
585
28
|
|
|
586
|
-
|
|
587
|
-
policy without changing the saved account selection:
|
|
588
|
-
|
|
589
|
-
```bash
|
|
590
|
-
audienti users automation show 136 --platform linkedin --json --account acct_example
|
|
591
|
-
audienti users automation update 136 --payload automation-controls.json --json --account acct_example
|
|
592
|
-
audienti users automation update 136 --payload automation-controls.json --apply --json --account acct_example
|
|
593
|
-
```
|
|
594
|
-
|
|
595
|
-
`update` is preview-only unless `--apply` is present. The CLI always sends
|
|
596
|
-
`platform: "linkedin"` and an explicit `apply` boolean after the file fields,
|
|
597
|
-
so a payload file cannot silently opt into applying a change. The server scopes
|
|
598
|
-
the connected account through the selected account plus account user, preserves
|
|
599
|
-
omitted controls, returns the before and proposed/actual after states, and
|
|
600
|
-
records an audit event only for an applied update. `--json` prints the server
|
|
601
|
-
payload unchanged.
|
|
602
|
-
|
|
603
|
-
Follow (including unfollow) and invitation withdrawal are enabled by default. Set
|
|
604
|
-
`follow_autopilot_enabled` or `withdraw_connection_autopilot_enabled` to `false`
|
|
605
|
-
to disable that action. These preferences still respect automatic sending and
|
|
606
|
-
other execution limits; follows also require visibility automation.
|
|
607
|
-
|
|
608
|
-
An `automation-controls.json` warm-up payload can use every automation gate,
|
|
609
|
-
independent action limits, an aggregate visibility limit, and a weekly ramp:
|
|
610
|
-
|
|
611
|
-
```json
|
|
612
|
-
{
|
|
613
|
-
"automation_controls": {
|
|
614
|
-
"automatic_sending_enabled": false,
|
|
615
|
-
"visibility_operations_autopilot_enabled": true,
|
|
616
|
-
"follow_autopilot_enabled": true,
|
|
617
|
-
"withdraw_connection_autopilot_enabled": true,
|
|
618
|
-
"post_comment_autopilot_enabled": false,
|
|
619
|
-
"connection_request_autopilot_enabled": false,
|
|
620
|
-
"inmail_autopilot_enabled": false,
|
|
621
|
-
"direct_message_autopilot_enabled": false,
|
|
622
|
-
"email_sending_autopilot_enabled": false,
|
|
623
|
-
"manual_action_handoff_enabled": false,
|
|
624
|
-
"risk_cooldown_enabled": true
|
|
625
|
-
},
|
|
626
|
-
"action_limits": {
|
|
627
|
-
"profile_view": { "hourly": 2, "daily": 4, "weekly": 20 },
|
|
628
|
-
"follow": { "hourly": 2, "daily": 3, "weekly": 15 },
|
|
629
|
-
"like": { "hourly": 1, "daily": 2, "weekly": 10 },
|
|
630
|
-
"invite": { "hourly": 1, "daily": 2, "weekly": 10 },
|
|
631
|
-
"message": { "hourly": 1, "daily": 2, "weekly": 10 },
|
|
632
|
-
"comment": { "hourly": 1, "daily": 1, "weekly": 5 },
|
|
633
|
-
"visibility": { "hourly": 3, "daily": 8, "weekly": 40 }
|
|
634
|
-
},
|
|
635
|
-
"visibility_ramp": {
|
|
636
|
-
"enabled": true,
|
|
637
|
-
"starting_daily_limit": 8,
|
|
638
|
-
"weekly_increment": 2
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
`follow` covers follows and unfollows; `like` covers likes and unlikes;
|
|
644
|
-
`message` covers messages and InMail. `visibility` is the aggregate cap across
|
|
645
|
-
profile views, follows/unfollows, and likes/unlikes. The show/preview readback
|
|
646
|
-
includes configured, default, effective, used, and remaining hourly, daily,
|
|
647
|
-
and weekly values plus the currently binding limits.
|
|
648
|
-
|
|
649
|
-
Motion update payload mode can replace the selected principal and backing list:
|
|
29
|
+
To connect an MCP client, use this command and environment after selecting a workspace:
|
|
650
30
|
|
|
651
31
|
```json
|
|
652
32
|
{
|
|
653
|
-
"
|
|
654
|
-
"
|
|
33
|
+
"command": "audienti-mcp",
|
|
34
|
+
"env": { "AUDIENTI_PROFILE": "/absolute/path/to/.audienti/exo-agent.json" }
|
|
655
35
|
}
|
|
656
36
|
```
|
|
657
37
|
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
with the rolling seven-day recorded-source contribution:
|
|
663
|
-
|
|
664
|
-
```bash
|
|
665
|
-
audienti analytics motions
|
|
666
|
-
audienti analytics motions --json
|
|
667
|
-
```
|
|
668
|
-
|
|
669
|
-
Current Unattributed counts mean no current motion association. Rolling
|
|
670
|
-
seven-day Unattributed counts mean no attributable recorded source motion; the
|
|
671
|
-
server falls back to the current motion only when recorded source data is
|
|
672
|
-
blank.
|
|
673
|
-
|
|
674
|
-
To inspect the account's current prospect mix by source ICP and compare it
|
|
675
|
-
with the rolling seven-day source contribution:
|
|
676
|
-
|
|
677
|
-
```bash
|
|
678
|
-
audienti analytics icps
|
|
679
|
-
audienti analytics icps --json
|
|
680
|
-
```
|
|
681
|
-
|
|
682
|
-
Unattributed means no attributable account source ICP. The server falls back
|
|
683
|
-
to the current motion ICP only when recorded ICP source data is blank.
|
|
684
|
-
|
|
685
|
-
To see whether one motion is producing prospects by day, and where each
|
|
686
|
-
produced-day cohort currently sits in the funnel:
|
|
687
|
-
|
|
688
|
-
```bash
|
|
689
|
-
audienti motions analytics <motn_id>
|
|
690
|
-
```
|
|
691
|
-
|
|
692
|
-
To count the people and distinct companies currently targeted by one campaign
|
|
693
|
-
tag without waiting on the web dashboard filter:
|
|
694
|
-
|
|
695
|
-
```bash
|
|
696
|
-
audienti analytics dashboard --play-tag wine_campaign --cohort-start 2026-07-01 --cohort-end 2026-07-07
|
|
697
|
-
```
|
|
698
|
-
|
|
699
|
-
To queue an immediate discovery run for a motion through the same launch gate
|
|
700
|
-
used by the operator surface:
|
|
701
|
-
|
|
702
|
-
```bash
|
|
703
|
-
audienti motions run-discovery <motn_id>
|
|
704
|
-
```
|
|
705
|
-
|
|
706
|
-
Outbound, inbound, and LOPA motions are accepted only when their current
|
|
707
|
-
configuration and discovery producer are executable. An accepted response
|
|
708
|
-
includes a durable `run` receipt that starts in `pending` before the discovery
|
|
709
|
-
job is queued. Rejected launches exit nonzero and report the authoritative
|
|
710
|
-
`reason`, optional `next_eligible_at`, and `suggested_action`; `--json` preserves
|
|
711
|
-
that structured response on stdout for automation. Completed receipts keep
|
|
712
|
-
candidate `submitted_count` separate from the current persisted
|
|
713
|
-
`promoted_count`, and expose completed, failed, and blocked scope counts.
|
|
714
|
-
|
|
715
|
-
To check whether a motion has executable configuration before preparing,
|
|
716
|
-
activating, or running discovery:
|
|
717
|
-
|
|
718
|
-
```bash
|
|
719
|
-
audienti motions status <motn_id>
|
|
720
|
-
audienti motions status <motn_id> --json
|
|
721
|
-
```
|
|
722
|
-
|
|
723
|
-
The JSON response includes `executable_configuration.valid` plus a reason when
|
|
724
|
-
the config is incomplete, such as missing outbound signals or missing LOPA
|
|
725
|
-
tracked profile URLs. Its latest discovery receipt uses the same submitted,
|
|
726
|
-
promoted, and scope outcome fields as `run-discovery`.
|
|
727
|
-
|
|
728
|
-
To create and launch a quick-start motion from a company URL:
|
|
729
|
-
|
|
730
|
-
```bash
|
|
731
|
-
audienti motions quick-start --url https://example.com --wait --confirm
|
|
732
|
-
```
|
|
733
|
-
|
|
734
|
-
To create or update an ICP from a rich JSON payload:
|
|
735
|
-
|
|
736
|
-
```bash
|
|
737
|
-
audienti icps create --payload icp.json
|
|
738
|
-
audienti icps update <icp_id> --payload icp-patch.json
|
|
739
|
-
audienti icps list --status all
|
|
740
|
-
audienti icps archive <icp_id>
|
|
741
|
-
audienti icps restore <icp_id>
|
|
742
|
-
```
|
|
743
|
-
|
|
744
|
-
`icps update --payload` accepts the same human-readable facet keys as create.
|
|
745
|
-
Supplied facet collections, such as `company_sizes_attributes`, replace that
|
|
746
|
-
collection in place; omitted fields and collections remain unchanged. Invalid
|
|
747
|
-
lookup values fail server-side without partially applying the patch.
|
|
748
|
-
Archive is reversible and is the normal cleanup action. It removes the ICP from
|
|
749
|
-
new selection, closes active primary motions so admitted work can drain,
|
|
750
|
-
archives inactive primary motions, and preserves secondary motion links.
|
|
751
|
-
Restoring the ICP does not reactivate motions.
|
|
752
|
-
|
|
753
|
-
To audit one account user's outbound actions, optionally narrowed to one motion
|
|
754
|
-
and one AccountProspect.created_at cohort:
|
|
755
|
-
|
|
756
|
-
```bash
|
|
757
|
-
audienti analytics users --user me --start 2026-07-01 --end 2026-07-07 --cohort-start 2026-06-01 --cohort-end 2026-06-30 --motion <motn_id>
|
|
758
|
-
```
|
|
759
|
-
|
|
760
|
-
To start a report-backed writer session for one prospect, including the no-reply
|
|
761
|
-
path, planned actions, channel changes, and planned message rows:
|
|
762
|
-
|
|
763
|
-
```bash
|
|
764
|
-
audienti writer test-run <prsp_id>
|
|
765
|
-
```
|
|
766
|
-
|
|
767
|
-
The output includes a `Report: rprt_...` id. Treat that report id as the writing
|
|
768
|
-
session handle while the generated report is retained.
|
|
769
|
-
|
|
770
|
-
To draft every message into that report-backed session, opt into full report
|
|
771
|
-
mode:
|
|
772
|
-
|
|
773
|
-
```bash
|
|
774
|
-
audienti writer test-run <prsp_id> --mode report --report <rprt_id>
|
|
775
|
-
```
|
|
776
|
-
|
|
777
|
-
For writer debugging, draft only one selected timeline row on one branch into
|
|
778
|
-
the same report:
|
|
779
|
-
|
|
780
|
-
```bash
|
|
781
|
-
audienti writer test-run <prsp_id> --mode step --branch no-accept --step 3 --report <rprt_id>
|
|
782
|
-
```
|
|
783
|
-
|
|
784
|
-
The CLI queues the report job on the API and polls until the report finishes, so
|
|
785
|
-
slower writer calls do not depend on a single long HTTP request. Use
|
|
786
|
-
`--timeout-seconds <n>` to adjust the CLI wait budget.
|
|
787
|
-
|
|
788
|
-
To queue work into the report and come back later:
|
|
789
|
-
|
|
790
|
-
```bash
|
|
791
|
-
audienti writer test-run <prsp_id> --mode step --branch no-accept --step 3 --report <rprt_id> --no-wait
|
|
792
|
-
```
|
|
793
|
-
|
|
794
|
-
If the CLI stops waiting before the server job finishes, fetch the completed
|
|
795
|
-
report later with:
|
|
796
|
-
|
|
797
|
-
```bash
|
|
798
|
-
audienti writer test-run show <prsp_id> <rprt_id>
|
|
799
|
-
```
|
|
800
|
-
|
|
801
|
-
To update a prospect's attached profile channels through the same paths used by
|
|
802
|
-
the prospect show page:
|
|
803
|
-
|
|
804
|
-
```bash
|
|
805
|
-
audienti prospects add-profile <prsp_id> --url prospect@example.com
|
|
806
|
-
audienti prospects add-profile <prsp_id> --url +12025550123
|
|
807
|
-
audienti prospects add-profile <prsp_id> --url https://www.linkedin.com/in/example
|
|
808
|
-
audienti prospects report-bad-profile <prsp_id> <prof_id>
|
|
809
|
-
```
|
|
810
|
-
|
|
811
|
-
To queue a personal LinkedIn profile authority review and ICP-fit positioning
|
|
812
|
-
blueprint, then check whether it is waiting on enrichment, running, completed,
|
|
813
|
-
or failed:
|
|
814
|
-
|
|
815
|
-
```bash
|
|
816
|
-
audienti tools list
|
|
817
|
-
audienti tools linkedin-review --url https://www.linkedin.com/in/example --icp <icp_id>
|
|
818
|
-
audienti tools linkedin-review reports
|
|
819
|
-
audienti tools linkedin-review show <rprt_id>
|
|
820
|
-
audienti tools linkedin-review status <rprt_id>
|
|
821
|
-
```
|
|
822
|
-
|
|
823
|
-
To reassign or clear ownership for existing prospects:
|
|
824
|
-
|
|
825
|
-
```bash
|
|
826
|
-
audienti prospects assign <prsp_id> --assigned-user <account_user_id|me>
|
|
827
|
-
audienti prospects assign <prsp_id> --assigned-user unassign
|
|
828
|
-
```
|
|
829
|
-
|
|
830
|
-
To preview moving a prospect and its account-scoped history into another
|
|
831
|
-
account where you are also an administrator:
|
|
832
|
-
|
|
833
|
-
```bash
|
|
834
|
-
audienti prospects move-account <prsp_id> --account <source_acct_id> --target-account <target_acct_id>
|
|
835
|
-
audienti prospects move-account <prsp_id> --account <source_acct_id> --target-account <target_acct_id> --assigned-user me --target-motion <motn_id> --target-list <list_id> --apply
|
|
836
|
-
```
|
|
837
|
-
|
|
838
|
-
The command is preview-only unless `--apply` is present. Apply always requests
|
|
839
|
-
a fresh preview first and submits the returned `manifest_digest`, so a move is
|
|
840
|
-
rejected when the underlying state changes. `--json` prints the preview or final
|
|
841
|
-
apply response unchanged.
|
|
842
|
-
|
|
843
|
-
To make emergency prospect state changes without going through a motion:
|
|
844
|
-
|
|
845
|
-
```bash
|
|
846
|
-
audienti prospects set-status <prsp_id> --status nurture
|
|
847
|
-
audienti prospects set-status <prsp_id> --status not_fit
|
|
848
|
-
audienti prospects lock <prsp_id> --note "Emergency hold"
|
|
849
|
-
audienti prospects unlock <prsp_id>
|
|
850
|
-
```
|
|
851
|
-
|
|
852
|
-
To manage account DNC and company disposition rules from the CLI:
|
|
853
|
-
|
|
854
|
-
```bash
|
|
855
|
-
audienti dnc add prospect@example.com
|
|
856
|
-
audienti dnc import --file dnc.txt
|
|
857
|
-
audienti company-rules create --linkedin-url https://www.linkedin.com/company/example --disposition monitor
|
|
858
|
-
audienti company-rules create --domain example.com --disposition not_fit --user me
|
|
859
|
-
audienti company-rules apply --all
|
|
860
|
-
```
|
|
861
|
-
|
|
862
|
-
The direct intake action supports the same destination names and optional experiment:
|
|
863
|
-
|
|
864
|
-
```bash
|
|
865
|
-
audienti prospects intake --url https://www.linkedin.com/in/example --new-list "Target list" --new-transition "Fit transition" --json
|
|
866
|
-
```
|
|
867
|
-
|
|
868
|
-
Use `--motion <motn_id>` for an existing experiment. Explicit new names, including blank names, are sent to the API for validation.
|
|
869
|
-
|
|
870
|
-
To import multiple LinkedIn people through the same per-prospect import path:
|
|
871
|
-
|
|
872
|
-
```bash
|
|
873
|
-
audienti prospects import-batch --file prospects.csv --new-list "Target list" --new-transition "Fit transition" --assigned-user me
|
|
874
|
-
```
|
|
875
|
-
|
|
876
|
-
CSV files should include a `linkedin_url` or `url` header. Optional row columns
|
|
877
|
-
`list_id`, `motion_id`, `new_list_name`, `new_transition_name`, and `assigned_user_id` override command defaults. The command parses the file and sends one batch request; the API owns validation, destination creation, row outcomes, and queueing.
|
|
878
|
-
|
|
879
|
-
## Compatibility
|
|
880
|
-
|
|
881
|
-
The CLI talks to the versioned Audienti `/api/v1` contract at
|
|
882
|
-
`https://app.audienti.com` by default. A release occurs only after the matching
|
|
883
|
-
server deploy succeeds.
|
|
884
|
-
|
|
885
|
-
The canonical source lives with the Audienti application under
|
|
886
|
-
`packages/audienti-cli`. This public repository is a CI-managed mirror; direct
|
|
887
|
-
changes are unsupported and cause the next source release to fail safely.
|
|
888
|
-
|
|
889
|
-
## Plugins
|
|
890
|
-
|
|
891
|
-
This repository includes Codex and Claude Code plugin manifests plus an
|
|
892
|
-
`audienti` skill. The plugin provides workflow instructions; it does not grant
|
|
893
|
-
credentials or silently authenticate an agent.
|
|
894
|
-
|
|
895
|
-
## License
|
|
896
|
-
|
|
897
|
-
Copyright (c) 2026 OMALab, Inc. All rights reserved. See [LICENSE](LICENSE).
|
|
898
|
-
|
|
899
|
-
Batch import accepts up to 50 rows per API request. Split larger files before importing. Row destination IDs or new names override batch defaults; failed rows stay visible in the response.
|
|
900
|
-
Bulk destinations: `audienti prospects set-destination <prsp_id> --type list --destination <list_id>` adds by default. Use `--name "New list"` to create a list, `--type experiment --name "Existing relationships"` to create a transition without setup, or `--mode move` for explicit reassignment. Add preserves existing memberships; experiment Add skips people assigned elsewhere.
|
|
901
|
-
|
|
902
|
-
Create a child workspace with `audienti accounts create --name <name> --parent <name-or-id> [--json]`. The parent can be a visible name, unique name fragment, numeric ID, or prefixed ID. You must administer a root team account. All parent admins receive access to the child; ordinary members do not. Ambiguous names show matching IDs and stop. A duplicate child name under the same parent fails clearly. The response includes the new account ID. Creation keeps your selected account unchanged: use `audienti accounts select <new_acct_id>` or `--account <new_acct_id>` before creating a motion there.
|
|
903
|
-
|
|
904
|
-
### Credit history and root approvals
|
|
905
|
-
|
|
906
|
-
`audienti credits history` lists credit charges. `credits show <usage_id>` opens an
|
|
907
|
-
exact receipt. A root billing role does not grant access to private saved results.
|
|
908
|
-
`credits approvals` shows action prices and changed-payer requests. After the
|
|
909
|
-
root billing admin explicitly agrees, use `credits accept-price <price_id>` or
|
|
910
|
-
`credits approve-payer <operation_id> --revision <revision> --request-key <unique_key>`.
|
|
911
|
-
Approval never resumes waiting work. Increased prices also require the notice period.
|
|
38
|
+
Restart the MCP process after changing workspace or credentials. Tools may appear
|
|
39
|
+
in the catalog before the agent has permission to invoke them. The server remains
|
|
40
|
+
authoritative. Agent-executable skills are in `skills/audienti`; helpers do not call
|
|
41
|
+
providers or execute hidden workflows.
|
|
912
42
|
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
--evidence <exact_result_evidence>` records the cumulative credit return. Customer
|
|
917
|
-
billing admins cannot use these staff actions. This never refunds cash.
|
|
43
|
+
Start with saved-record reads and inspect the credit balance. Explicit enrichment
|
|
44
|
+
uses the configured hosted provider; registration of an external agent-managed
|
|
45
|
+
connection does not configure a hosted provider or imply successful synchronization.
|