autotouch-cli 0.2.101__tar.gz → 0.2.103__tar.gz
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.
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/PKG-INFO +10 -4
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/README.md +9 -3
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/agents.py +33 -3
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/data/CLI_REFERENCE.md +16 -12
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/data/cli-manifest.json +39 -10
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/parser.py +1 -1
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/templates.py +105 -1
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/workflows/registry.py +28 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli.egg-info/PKG-INFO +10 -4
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/pyproject.toml +1 -1
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/MANIFEST.in +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/__init__.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/cli.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/cli_contracts.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/__init__.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/auth.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/cells.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/columns.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/integrations.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/jobs.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/leads.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/linkedin.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/list_build.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/prompts.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/rows.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/search.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/sequences.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/tables.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/tasks.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/webhooks.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/commands/workspace_secrets.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/__init__.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/auth.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/config.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/csv_import.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/http.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/io.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/output.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/polling.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/run.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/core/validation.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/exceptions.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/mongo_status.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/parser_groups.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/sequence_support.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli/workflows/__init__.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli.egg-info/SOURCES.txt +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli.egg-info/dependency_links.txt +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli.egg-info/entry_points.txt +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli.egg-info/requires.txt +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_cli.egg-info/top_level.txt +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_shared/__init__.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_shared/linkedin_contract.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_shared/linkedin_filters.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_shared/list_build_contract.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_shared/provider_registry.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/autotouch_shared/search_contract.py +0 -0
- {autotouch_cli-0.2.101 → autotouch_cli-0.2.103}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autotouch-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.103
|
|
4
4
|
Summary: Autotouch Smart Table CLI
|
|
5
5
|
Project-URL: Homepage, https://app.autotouch.ai
|
|
6
6
|
Project-URL: Documentation, https://github.com/nicolonic/autotouch_main/tree/main/docs/research-table/reference
|
|
@@ -91,6 +91,11 @@ autotouch auth bootstrap \
|
|
|
91
91
|
autotouch auth check
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
+
Demo accounts:
|
|
95
|
+
|
|
96
|
+
- For a brand-new demo org plus developer key, use `autotouch auth bootstrap` as shown above.
|
|
97
|
+
- For a demo login inside an existing seeded demo org, create the org with `apps/api/scripts/create_demo_org.py`, then add the user through the invite/register flow in `docs/operations/demo-accounts.md`.
|
|
98
|
+
|
|
94
99
|
Config precedence:
|
|
95
100
|
- Explicit flags win over environment variables.
|
|
96
101
|
- Environment variables win over saved config.
|
|
@@ -183,7 +188,7 @@ For structured company builds, start with industry IDs plus geo/company-size fil
|
|
|
183
188
|
|
|
184
189
|
For account-first prospecting from LinkedIn/Sales Navigator, build companies/accounts first, inspect the returned company IDs, then pass those IDs to `autotouch list-build leads --current-company-id ...`. Do not use Exa company search as a default pre-step for every LinkedIn list build; use it when the user's target is genuinely semantic, niche, competitor-based, or not meant to be LinkedIn-sourced.
|
|
185
190
|
|
|
186
|
-
Use `autotouch agents ...` for recurring signal-based discovery. Scheduled agents support `--target ACCOUNTS` for company/account output and `--target LEADS` for people output. Every agent writes a source/signal table for the evidence it used; lead agents then write `candidate_research.candidates[]` on source rows and list-sync those candidates into the lead/candidate output table. See the agent playbook for the full source-table
|
|
191
|
+
Use `autotouch agents ...` for recurring signal-based discovery. Scheduled agents support `--target ACCOUNTS` for company/account output and `--target LEADS` for people output. Every agent writes a source/signal table for the evidence it used; lead agents then write `candidate_research.candidates[]` on source rows and list-sync those candidates into the lead/candidate output table. LinkedIn engagement lead agents screen all harvested engagers by headline/title before company resolution and final lead scoring; company agents can keep matches in review or auto-promote qualified matches into the Companies workspace. See the agent playbook for the full source-table, candidate-sync, and company-promotion contract.
|
|
187
192
|
|
|
188
193
|
## Workflow Plans
|
|
189
194
|
|
|
@@ -198,7 +203,7 @@ discover -> plan -> scaffold -> run primitives -> inspect
|
|
|
198
203
|
- `autotouch workflows scaffold --type <TYPE> --out-dir <DIR>` writes payload files and a command runbook.
|
|
199
204
|
- `autotouch columns recipe` and `autotouch sequences recipe` remain leaf-level templates.
|
|
200
205
|
|
|
201
|
-
Goal-level workflow types include `bulk-outreach`, `company-table-to-people`, `table-to-outreach`, `research-to-sequence`, `account-research`, `signal-outreach`, `website-visitors`, and `list-build-to-table`. These keep CRM, outreach providers, Autotouch Leads, Autotouch Sequences, webhooks, visitor sources, and external intent sources as sources/destinations inside one organized workflow layer instead of creating one-off top-level commands.
|
|
206
|
+
Goal-level workflow types include `bulk-outreach`, `company-table-to-people`, `table-to-outreach`, `research-to-sequence`, `agent-to-sequence`, `account-research`, `signal-outreach`, `website-visitors`, and `list-build-to-table`. These keep CRM, outreach providers, Autotouch Leads, Autotouch Sequences, scheduled agents, webhooks, visitor sources, and external intent sources as sources/destinations inside one organized workflow layer instead of creating one-off top-level commands.
|
|
202
207
|
|
|
203
208
|
## Sources And Destinations
|
|
204
209
|
|
|
@@ -268,10 +273,11 @@ For automation or agent-driven setup, use:
|
|
|
268
273
|
- `autotouch cli-manifest --output json` for the local machine-readable command contract
|
|
269
274
|
- `autotouch cli-reference` for the shipped parser-generated reference
|
|
270
275
|
- `autotouch capabilities --output json` for provider/workflow contracts
|
|
271
|
-
- `autotouch --version` should be `0.2.
|
|
276
|
+
- `autotouch --version` should be `0.2.103` or newer for structured company list builds without user-supplied keywords, stored list-build input lookup, research-workspace list-build guidance, the cleaned single LinkedIn-sourced list-build path, Exa Company Search up to 100 results, scheduled agent `--target ACCOUNTS|LEADS`, `agents signals --target`, the `agent-to-sequence` workflow scaffold, paced HTTP Request column contracts, branch-aware LinkedIn sequence recipes, real agent soft-delete with associated-table handling, research-table sequence handoff assignee and active-sequence-conflict guard config, backend-owned directional source/destination helpers, goal-level workflow plans, website visitor/external intent webhook workflow guidance, and create-time agent assignment defaults
|
|
272
277
|
- `autotouch capabilities --output json --select list_builds` for documented list-build inputs such as geography IDs, company size buckets, profile language, and company IDs
|
|
273
278
|
- `autotouch integrations list` and `autotouch integrations status --provider <provider>` before choosing source/destination workflows
|
|
274
279
|
- `autotouch workflows plan --type bulk-outreach` and `autotouch workflows scaffold --type bulk-outreach --out-dir workflow` for goal-level workflow planning
|
|
280
|
+
- `autotouch workflows plan --type agent-to-sequence` and `autotouch workflows scaffold --type agent-to-sequence --out-dir workflow` for scheduled agent discovery into Autotouch Sequence tasks
|
|
275
281
|
- `autotouch workflows plan --type website-visitors` and `autotouch workflows scaffold --type website-visitors --out-dir workflow` for website visitor or external intent provider webhook workflows
|
|
276
282
|
- `autotouch integrations recipe --type from_crm --provider hubspot` for CRM-to-research-table imports
|
|
277
283
|
- `autotouch columns recipe --type to_crm|to_outreach|to_leads|to_sequence` for research-table destination workflows
|
|
@@ -66,6 +66,11 @@ autotouch auth bootstrap \
|
|
|
66
66
|
autotouch auth check
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
+
Demo accounts:
|
|
70
|
+
|
|
71
|
+
- For a brand-new demo org plus developer key, use `autotouch auth bootstrap` as shown above.
|
|
72
|
+
- For a demo login inside an existing seeded demo org, create the org with `apps/api/scripts/create_demo_org.py`, then add the user through the invite/register flow in `docs/operations/demo-accounts.md`.
|
|
73
|
+
|
|
69
74
|
Config precedence:
|
|
70
75
|
- Explicit flags win over environment variables.
|
|
71
76
|
- Environment variables win over saved config.
|
|
@@ -158,7 +163,7 @@ For structured company builds, start with industry IDs plus geo/company-size fil
|
|
|
158
163
|
|
|
159
164
|
For account-first prospecting from LinkedIn/Sales Navigator, build companies/accounts first, inspect the returned company IDs, then pass those IDs to `autotouch list-build leads --current-company-id ...`. Do not use Exa company search as a default pre-step for every LinkedIn list build; use it when the user's target is genuinely semantic, niche, competitor-based, or not meant to be LinkedIn-sourced.
|
|
160
165
|
|
|
161
|
-
Use `autotouch agents ...` for recurring signal-based discovery. Scheduled agents support `--target ACCOUNTS` for company/account output and `--target LEADS` for people output. Every agent writes a source/signal table for the evidence it used; lead agents then write `candidate_research.candidates[]` on source rows and list-sync those candidates into the lead/candidate output table. See the agent playbook for the full source-table
|
|
166
|
+
Use `autotouch agents ...` for recurring signal-based discovery. Scheduled agents support `--target ACCOUNTS` for company/account output and `--target LEADS` for people output. Every agent writes a source/signal table for the evidence it used; lead agents then write `candidate_research.candidates[]` on source rows and list-sync those candidates into the lead/candidate output table. LinkedIn engagement lead agents screen all harvested engagers by headline/title before company resolution and final lead scoring; company agents can keep matches in review or auto-promote qualified matches into the Companies workspace. See the agent playbook for the full source-table, candidate-sync, and company-promotion contract.
|
|
162
167
|
|
|
163
168
|
## Workflow Plans
|
|
164
169
|
|
|
@@ -173,7 +178,7 @@ discover -> plan -> scaffold -> run primitives -> inspect
|
|
|
173
178
|
- `autotouch workflows scaffold --type <TYPE> --out-dir <DIR>` writes payload files and a command runbook.
|
|
174
179
|
- `autotouch columns recipe` and `autotouch sequences recipe` remain leaf-level templates.
|
|
175
180
|
|
|
176
|
-
Goal-level workflow types include `bulk-outreach`, `company-table-to-people`, `table-to-outreach`, `research-to-sequence`, `account-research`, `signal-outreach`, `website-visitors`, and `list-build-to-table`. These keep CRM, outreach providers, Autotouch Leads, Autotouch Sequences, webhooks, visitor sources, and external intent sources as sources/destinations inside one organized workflow layer instead of creating one-off top-level commands.
|
|
181
|
+
Goal-level workflow types include `bulk-outreach`, `company-table-to-people`, `table-to-outreach`, `research-to-sequence`, `agent-to-sequence`, `account-research`, `signal-outreach`, `website-visitors`, and `list-build-to-table`. These keep CRM, outreach providers, Autotouch Leads, Autotouch Sequences, scheduled agents, webhooks, visitor sources, and external intent sources as sources/destinations inside one organized workflow layer instead of creating one-off top-level commands.
|
|
177
182
|
|
|
178
183
|
## Sources And Destinations
|
|
179
184
|
|
|
@@ -243,10 +248,11 @@ For automation or agent-driven setup, use:
|
|
|
243
248
|
- `autotouch cli-manifest --output json` for the local machine-readable command contract
|
|
244
249
|
- `autotouch cli-reference` for the shipped parser-generated reference
|
|
245
250
|
- `autotouch capabilities --output json` for provider/workflow contracts
|
|
246
|
-
- `autotouch --version` should be `0.2.
|
|
251
|
+
- `autotouch --version` should be `0.2.103` or newer for structured company list builds without user-supplied keywords, stored list-build input lookup, research-workspace list-build guidance, the cleaned single LinkedIn-sourced list-build path, Exa Company Search up to 100 results, scheduled agent `--target ACCOUNTS|LEADS`, `agents signals --target`, the `agent-to-sequence` workflow scaffold, paced HTTP Request column contracts, branch-aware LinkedIn sequence recipes, real agent soft-delete with associated-table handling, research-table sequence handoff assignee and active-sequence-conflict guard config, backend-owned directional source/destination helpers, goal-level workflow plans, website visitor/external intent webhook workflow guidance, and create-time agent assignment defaults
|
|
247
252
|
- `autotouch capabilities --output json --select list_builds` for documented list-build inputs such as geography IDs, company size buckets, profile language, and company IDs
|
|
248
253
|
- `autotouch integrations list` and `autotouch integrations status --provider <provider>` before choosing source/destination workflows
|
|
249
254
|
- `autotouch workflows plan --type bulk-outreach` and `autotouch workflows scaffold --type bulk-outreach --out-dir workflow` for goal-level workflow planning
|
|
255
|
+
- `autotouch workflows plan --type agent-to-sequence` and `autotouch workflows scaffold --type agent-to-sequence --out-dir workflow` for scheduled agent discovery into Autotouch Sequence tasks
|
|
250
256
|
- `autotouch workflows plan --type website-visitors` and `autotouch workflows scaffold --type website-visitors --out-dir workflow` for website visitor or external intent provider webhook workflows
|
|
251
257
|
- `autotouch integrations recipe --type from_crm --provider hubspot` for CRM-to-research-table imports
|
|
252
258
|
- `autotouch columns recipe --type to_crm|to_outreach|to_leads|to_sequence` for research-table destination workflows
|
|
@@ -150,6 +150,8 @@ def cmd_agents_create(args: argparse.Namespace, *, runtime: AgentCommandRuntime)
|
|
|
150
150
|
context="agent",
|
|
151
151
|
default={},
|
|
152
152
|
)
|
|
153
|
+
if getattr(args, "assigned_user", None):
|
|
154
|
+
payload["assignedUserId"] = args.assigned_user
|
|
153
155
|
else:
|
|
154
156
|
payload: Dict[str, Any] = {}
|
|
155
157
|
if args.name:
|
|
@@ -293,10 +295,14 @@ def cmd_agents_update(args: argparse.Namespace, *, runtime: AgentCommandRuntime)
|
|
|
293
295
|
context="agent",
|
|
294
296
|
default={},
|
|
295
297
|
)
|
|
298
|
+
if getattr(args, "assigned_user", None):
|
|
299
|
+
payload["assignedUserId"] = args.assigned_user
|
|
296
300
|
else:
|
|
297
301
|
payload: Dict[str, Any] = {}
|
|
298
302
|
if getattr(args, "name", None):
|
|
299
303
|
payload["name"] = args.name
|
|
304
|
+
if getattr(args, "assigned_user", None):
|
|
305
|
+
payload["assignedUserId"] = args.assigned_user
|
|
300
306
|
if getattr(args, "status", None):
|
|
301
307
|
payload["status"] = args.status
|
|
302
308
|
if getattr(args, "auto_find_email", None) is not None:
|
|
@@ -548,10 +554,15 @@ def cmd_agents_generate_job_signal(args: argparse.Namespace, *, runtime: AgentCo
|
|
|
548
554
|
|
|
549
555
|
def cmd_agents_signals(args: argparse.Namespace, *, runtime: AgentCommandRuntime) -> None:
|
|
550
556
|
token = runtime.resolve_token(args.token, required=True)
|
|
557
|
+
params = None
|
|
558
|
+
target = str(getattr(args, "target", "") or "").strip()
|
|
559
|
+
if target:
|
|
560
|
+
params = {"targetType": target}
|
|
551
561
|
data = runtime.request_api(
|
|
552
562
|
"GET", "/api/agents/skill-packs",
|
|
553
563
|
base_url=args.base_url, token=token,
|
|
554
564
|
use_x_api_key=args.use_x_api_key,
|
|
565
|
+
params=params,
|
|
555
566
|
timeout=args.timeout, verbose=args.verbose,
|
|
556
567
|
)
|
|
557
568
|
runtime.print_json(data, args.compact)
|
|
@@ -586,7 +597,14 @@ def register_agents_subcommands(
|
|
|
586
597
|
pac = agents_sub.add_parser("create", help="Create a new agent")
|
|
587
598
|
pac.add_argument("--name", help="Agent name")
|
|
588
599
|
pac.add_argument("--target", choices=AGENT_TARGET_CHOICES, help="Target type")
|
|
589
|
-
pac.add_argument(
|
|
600
|
+
pac.add_argument(
|
|
601
|
+
"--assigned-user",
|
|
602
|
+
dest="assigned_user",
|
|
603
|
+
help=(
|
|
604
|
+
"Assigned user ID. Optional on create; if omitted, the API resolves "
|
|
605
|
+
"a real active user in the target organization."
|
|
606
|
+
),
|
|
607
|
+
)
|
|
590
608
|
pac.add_argument("--schedule-time", dest="schedule_time", help="Time of day (HH:MM) — used by daily/weekly")
|
|
591
609
|
pac.add_argument("--schedule-tz", dest="schedule_tz", help="Timezone (default: UTC)")
|
|
592
610
|
pac.add_argument(
|
|
@@ -631,7 +649,10 @@ def register_agents_subcommands(
|
|
|
631
649
|
pac.add_argument(
|
|
632
650
|
"--auto-sequence-id",
|
|
633
651
|
dest="auto_sequence_id",
|
|
634
|
-
help=
|
|
652
|
+
help=(
|
|
653
|
+
"Sequence ID — enroll discovered leads after lead sync; sequence step settings control "
|
|
654
|
+
"manual vs automated execution."
|
|
655
|
+
),
|
|
635
656
|
)
|
|
636
657
|
pac.add_argument("--status", choices=["DRAFT", "ACTIVE", "PAUSED"], help="Initial status")
|
|
637
658
|
pac.add_argument("--from-file", dest="from_file", help="Path to JSON payload file")
|
|
@@ -643,6 +664,11 @@ def register_agents_subcommands(
|
|
|
643
664
|
pau = agents_sub.add_parser("update", help="Update an existing agent")
|
|
644
665
|
pau.add_argument("agent_id", help="Agent ID")
|
|
645
666
|
pau.add_argument("--name", help="New agent name")
|
|
667
|
+
pau.add_argument(
|
|
668
|
+
"--assigned-user",
|
|
669
|
+
dest="assigned_user",
|
|
670
|
+
help="Assigned user ID. Use this to move ownership or force a specific user-scoped connected context.",
|
|
671
|
+
)
|
|
646
672
|
pau.add_argument("--status", choices=["DRAFT", "ACTIVE", "PAUSED"], help="New status")
|
|
647
673
|
pau.add_argument("--auto-find-email", dest="auto_find_email", type=_bool_arg, default=None, help="Enable/disable auto email finder")
|
|
648
674
|
pau.add_argument("--auto-find-phone", dest="auto_find_phone", type=_bool_arg, default=None, help="Enable/disable auto phone finder")
|
|
@@ -656,7 +682,10 @@ def register_agents_subcommands(
|
|
|
656
682
|
pau.add_argument(
|
|
657
683
|
"--auto-sequence-id",
|
|
658
684
|
dest="auto_sequence_id",
|
|
659
|
-
help=
|
|
685
|
+
help=(
|
|
686
|
+
"Sequence ID for enrollment after lead sync; sequence step settings control manual vs "
|
|
687
|
+
"automated execution. Pass empty string to clear."
|
|
688
|
+
),
|
|
660
689
|
)
|
|
661
690
|
pau.add_argument("--schedule-time", dest="schedule_time", help="Time of day (HH:MM) — used by daily/weekly")
|
|
662
691
|
pau.add_argument("--schedule-tz", dest="schedule_tz", help="Timezone")
|
|
@@ -765,6 +794,7 @@ def register_agents_subcommands(
|
|
|
765
794
|
|
|
766
795
|
# -- signals --
|
|
767
796
|
pass_ = agents_sub.add_parser("signals", help="List available signal skill packs")
|
|
797
|
+
pass_.add_argument("--target", choices=AGENT_TARGET_CHOICES, help="Filter signals to a target type")
|
|
768
798
|
add_api_common_arguments(pass_)
|
|
769
799
|
pass_.set_defaults(func=handlers["signals"])
|
|
770
800
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Autotouch CLI Reference
|
|
2
2
|
|
|
3
|
-
Generated from the installed parser for `autotouch-cli` `0.2.
|
|
3
|
+
Generated from the installed parser for `autotouch-cli` `0.2.103`.
|
|
4
4
|
Manifest schema version: `2`.
|
|
5
5
|
|
|
6
6
|
## Output Modes
|
|
@@ -57,7 +57,7 @@ Create a new agent
|
|
|
57
57
|
- Options:
|
|
58
58
|
- `--name` (kind=string): Agent name
|
|
59
59
|
- `--target` (kind=string; choices=LEADS,ACCOUNTS): Target type
|
|
60
|
-
- `--assigned-user` (kind=string): Assigned user ID
|
|
60
|
+
- `--assigned-user` (kind=string): Assigned user ID. Optional on create; if omitted, the API resolves a real active user in the target organization.
|
|
61
61
|
- `--schedule-time` (kind=string): Time of day (HH:MM) — used by daily/weekly
|
|
62
62
|
- `--schedule-tz` (kind=string): Timezone (default: UTC)
|
|
63
63
|
- `--schedule-frequency` (kind=string; choices=hourly,every_6h,every_12h,daily,weekly): Run cadence (default: daily)
|
|
@@ -69,7 +69,7 @@ Create a new agent
|
|
|
69
69
|
- `--auto-find-phone` (kind=boolean; when omitted=False; when present=True): Enable auto phone finder
|
|
70
70
|
- `--auto-broaden` (kind=boolean; when omitted=False; when present=True): Enable auto broaden search
|
|
71
71
|
- `--auto-create-lead-mode` (kind=string; choices=qualified_only,everyone,manual_only): Which discovered prospects become leads (default: qualified_only)
|
|
72
|
-
- `--auto-sequence-id` (kind=string): Sequence ID — discovered leads
|
|
72
|
+
- `--auto-sequence-id` (kind=string): Sequence ID — enroll discovered leads after lead sync; sequence step settings control manual vs automated execution.
|
|
73
73
|
- `--status` (kind=string; choices=DRAFT,ACTIVE,PAUSED): Initial status
|
|
74
74
|
- `--from-file` (kind=file; input=file): Path to JSON payload file
|
|
75
75
|
- `--generate` (kind=boolean; when omitted=False; when present=True): Auto-generate persona, topics, and job signal config
|
|
@@ -353,12 +353,14 @@ List available signal skill packs
|
|
|
353
353
|
- Destructive: `no`
|
|
354
354
|
- Output modes: `json, ndjson, human`
|
|
355
355
|
- Example:
|
|
356
|
-
- `autotouch agents signals [-h] [--
|
|
356
|
+
- `autotouch agents signals [-h] [--target {LEADS,ACCOUNTS}]
|
|
357
|
+
[--base-url BASE_URL] [--token TOKEN]
|
|
357
358
|
[--use-x-api-key] [--timeout TIMEOUT]
|
|
358
359
|
[--output {json,ndjson,human}] [--compact]
|
|
359
360
|
[--select SELECT |
|
|
360
361
|
--json-pointer JSON_POINTER] [--verbose]`
|
|
361
362
|
- Options:
|
|
363
|
+
- `--target` (kind=string; choices=LEADS,ACCOUNTS): Filter signals to a target type
|
|
362
364
|
- `--base-url` (kind=string; default=https://app.autotouch.ai): API base URL (default: https://app.autotouch.ai)
|
|
363
365
|
- `--token` (kind=string; sensitive): Developer API key / JWT token
|
|
364
366
|
- `--use-x-api-key` (kind=boolean; when omitted=False; when present=True): Send token via X-API-Key header
|
|
@@ -379,6 +381,7 @@ Update an existing agent
|
|
|
379
381
|
- Output modes: `json, ndjson, human`
|
|
380
382
|
- Example:
|
|
381
383
|
- `autotouch agents update [-h] [--name NAME]
|
|
384
|
+
[--assigned-user ASSIGNED_USER]
|
|
382
385
|
[--status {DRAFT,ACTIVE,PAUSED}]
|
|
383
386
|
[--auto-find-email AUTO_FIND_EMAIL]
|
|
384
387
|
[--auto-find-phone AUTO_FIND_PHONE]
|
|
@@ -401,12 +404,13 @@ Update an existing agent
|
|
|
401
404
|
agent_id`
|
|
402
405
|
- Options:
|
|
403
406
|
- `--name` (kind=string): New agent name
|
|
407
|
+
- `--assigned-user` (kind=string): Assigned user ID. Use this to move ownership or force a specific user-scoped connected context.
|
|
404
408
|
- `--status` (kind=string; choices=DRAFT,ACTIVE,PAUSED): New status
|
|
405
409
|
- `--auto-find-email` (kind=string): Enable/disable auto email finder
|
|
406
410
|
- `--auto-find-phone` (kind=string): Enable/disable auto phone finder
|
|
407
411
|
- `--auto-broaden` (kind=string): Enable/disable auto broaden search
|
|
408
412
|
- `--auto-create-lead-mode` (kind=string; choices=qualified_only,everyone,manual_only): Which discovered prospects become leads
|
|
409
|
-
- `--auto-sequence-id` (kind=string): Sequence ID for
|
|
413
|
+
- `--auto-sequence-id` (kind=string): Sequence ID for enrollment after lead sync; sequence step settings control manual vs automated execution. Pass empty string to clear.
|
|
410
414
|
- `--schedule-time` (kind=string): Time of day (HH:MM) — used by daily/weekly
|
|
411
415
|
- `--schedule-tz` (kind=string): Timezone
|
|
412
416
|
- `--schedule-frequency` (kind=string; choices=hourly,every_6h,every_12h,daily,weekly): Run cadence
|
|
@@ -6062,7 +6066,7 @@ Use workflows for full user goals. Recipes are leaf templates; workflow plans de
|
|
|
6062
6066
|
- Example:
|
|
6063
6067
|
- `autotouch workflows list`
|
|
6064
6068
|
- `autotouch workflows plan --type bulk-outreach`
|
|
6065
|
-
- `autotouch workflows scaffold --type
|
|
6069
|
+
- `autotouch workflows scaffold --type agent-to-sequence --out-dir workflow`
|
|
6066
6070
|
|
|
6067
6071
|
#### `autotouch workflows list`
|
|
6068
6072
|
|
|
@@ -6097,13 +6101,13 @@ Plan the workflow before creating files or running side effects. Use this to cho
|
|
|
6097
6101
|
- Output modes: `json, ndjson, human`
|
|
6098
6102
|
- Example:
|
|
6099
6103
|
- `autotouch workflows plan [-h]
|
|
6100
|
-
--type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}
|
|
6104
|
+
--type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}
|
|
6101
6105
|
[--out-file OUT_FILE]
|
|
6102
6106
|
[--output {json,ndjson,human}] [--compact]
|
|
6103
6107
|
[--select SELECT |
|
|
6104
6108
|
--json-pointer JSON_POINTER]`
|
|
6105
6109
|
- Options:
|
|
6106
|
-
- `--type` (required; kind=string; choices=bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table): Workflow blueprint type
|
|
6110
|
+
- `--type` (required; kind=string; choices=bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table): Workflow blueprint type
|
|
6107
6111
|
- `--out-file` (kind=file; input=file): Save raw workflow payload to file
|
|
6108
6112
|
- `--output` (kind=string; choices=json,ndjson,human; default=json): Output mode
|
|
6109
6113
|
- `--compact` (kind=boolean; when omitted=False; when present=True): Print compact JSON
|
|
@@ -6121,13 +6125,13 @@ Alias for `workflows plan`
|
|
|
6121
6125
|
- Output modes: `json, ndjson, human`
|
|
6122
6126
|
- Example:
|
|
6123
6127
|
- `autotouch workflows recipe [-h]
|
|
6124
|
-
--type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}
|
|
6128
|
+
--type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}
|
|
6125
6129
|
[--out-file OUT_FILE]
|
|
6126
6130
|
[--output {json,ndjson,human}] [--compact]
|
|
6127
6131
|
[--select SELECT |
|
|
6128
6132
|
--json-pointer JSON_POINTER]`
|
|
6129
6133
|
- Options:
|
|
6130
|
-
- `--type` (required; kind=string; choices=bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table): Workflow blueprint type
|
|
6134
|
+
- `--type` (required; kind=string; choices=bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table): Workflow blueprint type
|
|
6131
6135
|
- `--out-file` (kind=file; input=file): Save raw workflow payload to file
|
|
6132
6136
|
- `--output` (kind=string; choices=json,ndjson,human; default=json): Output mode
|
|
6133
6137
|
- `--compact` (kind=boolean; when omitted=False; when present=True): Print compact JSON
|
|
@@ -6145,13 +6149,13 @@ Emit ordered workflow files and commands for a blueprint
|
|
|
6145
6149
|
- Output modes: `json, ndjson, human`
|
|
6146
6150
|
- Example:
|
|
6147
6151
|
- `autotouch workflows scaffold [-h]
|
|
6148
|
-
--type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}
|
|
6152
|
+
--type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}
|
|
6149
6153
|
[--out-dir OUT_DIR]
|
|
6150
6154
|
[--output {json,ndjson,human}] [--compact]
|
|
6151
6155
|
[--select SELECT |
|
|
6152
6156
|
--json-pointer JSON_POINTER]`
|
|
6153
6157
|
- Options:
|
|
6154
|
-
- `--type` (required; kind=string; choices=bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table): Workflow blueprint type
|
|
6158
|
+
- `--type` (required; kind=string; choices=bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table): Workflow blueprint type
|
|
6155
6159
|
- `--out-dir` (kind=string): Directory to save scaffold payload files
|
|
6156
6160
|
- `--output` (kind=string; choices=json,ndjson,human; default=json): Output mode
|
|
6157
6161
|
- `--compact` (kind=boolean; when omitted=False; when present=True): Print compact JSON
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.2.
|
|
2
|
+
"version": "0.2.103",
|
|
3
3
|
"manifest_schema_version": 2,
|
|
4
4
|
"entry_points": {
|
|
5
5
|
"autotouch": "autotouch_cli.cli:main",
|
|
@@ -8983,7 +8983,7 @@
|
|
|
8983
8983
|
"examples": [
|
|
8984
8984
|
"autotouch workflows list",
|
|
8985
8985
|
"autotouch workflows plan --type bulk-outreach",
|
|
8986
|
-
"autotouch workflows scaffold --type
|
|
8986
|
+
"autotouch workflows scaffold --type agent-to-sequence --out-dir workflow"
|
|
8987
8987
|
],
|
|
8988
8988
|
"stability": "stable",
|
|
8989
8989
|
"handler": null
|
|
@@ -9133,6 +9133,7 @@
|
|
|
9133
9133
|
"company-table-to-people",
|
|
9134
9134
|
"table-to-outreach",
|
|
9135
9135
|
"research-to-sequence",
|
|
9136
|
+
"agent-to-sequence",
|
|
9136
9137
|
"account-research",
|
|
9137
9138
|
"signal-outreach",
|
|
9138
9139
|
"website-visitors",
|
|
@@ -9242,7 +9243,7 @@
|
|
|
9242
9243
|
},
|
|
9243
9244
|
"availability": null,
|
|
9244
9245
|
"examples": [
|
|
9245
|
-
"autotouch workflows plan [-h]\n --type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}\n [--out-file OUT_FILE]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER]"
|
|
9246
|
+
"autotouch workflows plan [-h]\n --type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}\n [--out-file OUT_FILE]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER]"
|
|
9246
9247
|
],
|
|
9247
9248
|
"stability": "stable",
|
|
9248
9249
|
"handler": "_fn"
|
|
@@ -9274,6 +9275,7 @@
|
|
|
9274
9275
|
"company-table-to-people",
|
|
9275
9276
|
"table-to-outreach",
|
|
9276
9277
|
"research-to-sequence",
|
|
9278
|
+
"agent-to-sequence",
|
|
9277
9279
|
"account-research",
|
|
9278
9280
|
"signal-outreach",
|
|
9279
9281
|
"website-visitors",
|
|
@@ -9383,7 +9385,7 @@
|
|
|
9383
9385
|
},
|
|
9384
9386
|
"availability": null,
|
|
9385
9387
|
"examples": [
|
|
9386
|
-
"autotouch workflows recipe [-h]\n --type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}\n [--out-file OUT_FILE]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER]"
|
|
9388
|
+
"autotouch workflows recipe [-h]\n --type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}\n [--out-file OUT_FILE]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER]"
|
|
9387
9389
|
],
|
|
9388
9390
|
"stability": "stable",
|
|
9389
9391
|
"handler": "_fn"
|
|
@@ -9415,6 +9417,7 @@
|
|
|
9415
9417
|
"company-table-to-people",
|
|
9416
9418
|
"table-to-outreach",
|
|
9417
9419
|
"research-to-sequence",
|
|
9420
|
+
"agent-to-sequence",
|
|
9418
9421
|
"account-research",
|
|
9419
9422
|
"signal-outreach",
|
|
9420
9423
|
"website-visitors",
|
|
@@ -9523,7 +9526,7 @@
|
|
|
9523
9526
|
},
|
|
9524
9527
|
"availability": null,
|
|
9525
9528
|
"examples": [
|
|
9526
|
-
"autotouch workflows scaffold [-h]\n --type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}\n [--out-dir OUT_DIR]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER]"
|
|
9529
|
+
"autotouch workflows scaffold [-h]\n --type {bulk-outreach,company-table-to-people,table-to-outreach,research-to-sequence,agent-to-sequence,account-research,signal-outreach,website-visitors,list-build-to-table}\n [--out-dir OUT_DIR]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER]"
|
|
9527
9530
|
],
|
|
9528
9531
|
"stability": "stable",
|
|
9529
9532
|
"handler": "_fn"
|
|
@@ -35891,7 +35894,7 @@
|
|
|
35891
35894
|
{
|
|
35892
35895
|
"dest": "assigned_user",
|
|
35893
35896
|
"required": false,
|
|
35894
|
-
"help": "Assigned user ID",
|
|
35897
|
+
"help": "Assigned user ID. Optional on create; if omitted, the API resolves a real active user in the target organization.",
|
|
35895
35898
|
"kind": "string",
|
|
35896
35899
|
"action": "store",
|
|
35897
35900
|
"flags": [
|
|
@@ -36058,7 +36061,7 @@
|
|
|
36058
36061
|
{
|
|
36059
36062
|
"dest": "auto_sequence_id",
|
|
36060
36063
|
"required": false,
|
|
36061
|
-
"help": "Sequence ID \u2014 discovered leads
|
|
36064
|
+
"help": "Sequence ID \u2014 enroll discovered leads after lead sync; sequence step settings control manual vs automated execution.",
|
|
36062
36065
|
"kind": "string",
|
|
36063
36066
|
"action": "store",
|
|
36064
36067
|
"flags": [
|
|
@@ -36301,6 +36304,17 @@
|
|
|
36301
36304
|
],
|
|
36302
36305
|
"takes_value": true
|
|
36303
36306
|
},
|
|
36307
|
+
{
|
|
36308
|
+
"dest": "assigned_user",
|
|
36309
|
+
"required": false,
|
|
36310
|
+
"help": "Assigned user ID. Use this to move ownership or force a specific user-scoped connected context.",
|
|
36311
|
+
"kind": "string",
|
|
36312
|
+
"action": "store",
|
|
36313
|
+
"flags": [
|
|
36314
|
+
"--assigned-user"
|
|
36315
|
+
],
|
|
36316
|
+
"takes_value": true
|
|
36317
|
+
},
|
|
36304
36318
|
{
|
|
36305
36319
|
"dest": "status",
|
|
36306
36320
|
"required": false,
|
|
@@ -36369,7 +36383,7 @@
|
|
|
36369
36383
|
{
|
|
36370
36384
|
"dest": "auto_sequence_id",
|
|
36371
36385
|
"required": false,
|
|
36372
|
-
"help": "Sequence ID for
|
|
36386
|
+
"help": "Sequence ID for enrollment after lead sync; sequence step settings control manual vs automated execution. Pass empty string to clear.",
|
|
36373
36387
|
"kind": "string",
|
|
36374
36388
|
"action": "store",
|
|
36375
36389
|
"flags": [
|
|
@@ -36654,7 +36668,7 @@
|
|
|
36654
36668
|
},
|
|
36655
36669
|
"availability": null,
|
|
36656
36670
|
"examples": [
|
|
36657
|
-
"autotouch agents update [-h] [--name NAME]\n [--status {DRAFT,ACTIVE,PAUSED}]\n [--auto-find-email AUTO_FIND_EMAIL]\n [--auto-find-phone AUTO_FIND_PHONE]\n [--auto-broaden AUTO_BROADEN]\n [--auto-create-lead-mode {qualified_only,everyone,manual_only}]\n [--auto-sequence-id AUTO_SEQUENCE_ID]\n [--schedule-time SCHEDULE_TIME]\n [--schedule-tz SCHEDULE_TZ]\n [--schedule-frequency {hourly,every_6h,every_12h,daily,weekly}]\n [--schedule-days {all,weekdays}]\n [--schedule-day-of-week 0-6]\n [--schedule-window-start SCHEDULE_WINDOW_START]\n [--schedule-window-end SCHEDULE_WINDOW_END]\n [--from-file FROM_FILE] [--dry-run]\n [--base-url BASE_URL] [--token TOKEN]\n [--use-x-api-key] [--timeout TIMEOUT]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT | --json-pointer JSON_POINTER]\n [--verbose]\n agent_id"
|
|
36671
|
+
"autotouch agents update [-h] [--name NAME]\n [--assigned-user ASSIGNED_USER]\n [--status {DRAFT,ACTIVE,PAUSED}]\n [--auto-find-email AUTO_FIND_EMAIL]\n [--auto-find-phone AUTO_FIND_PHONE]\n [--auto-broaden AUTO_BROADEN]\n [--auto-create-lead-mode {qualified_only,everyone,manual_only}]\n [--auto-sequence-id AUTO_SEQUENCE_ID]\n [--schedule-time SCHEDULE_TIME]\n [--schedule-tz SCHEDULE_TZ]\n [--schedule-frequency {hourly,every_6h,every_12h,daily,weekly}]\n [--schedule-days {all,weekdays}]\n [--schedule-day-of-week 0-6]\n [--schedule-window-start SCHEDULE_WINDOW_START]\n [--schedule-window-end SCHEDULE_WINDOW_END]\n [--from-file FROM_FILE] [--dry-run]\n [--base-url BASE_URL] [--token TOKEN]\n [--use-x-api-key] [--timeout TIMEOUT]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT | --json-pointer JSON_POINTER]\n [--verbose]\n agent_id"
|
|
36658
36672
|
],
|
|
36659
36673
|
"stability": "stable",
|
|
36660
36674
|
"handler": "_fn"
|
|
@@ -38300,6 +38314,21 @@
|
|
|
38300
38314
|
"required_flags": [],
|
|
38301
38315
|
"positionals": [],
|
|
38302
38316
|
"options": [
|
|
38317
|
+
{
|
|
38318
|
+
"dest": "target",
|
|
38319
|
+
"required": false,
|
|
38320
|
+
"help": "Filter signals to a target type",
|
|
38321
|
+
"kind": "string",
|
|
38322
|
+
"action": "store",
|
|
38323
|
+
"choices": [
|
|
38324
|
+
"LEADS",
|
|
38325
|
+
"ACCOUNTS"
|
|
38326
|
+
],
|
|
38327
|
+
"flags": [
|
|
38328
|
+
"--target"
|
|
38329
|
+
],
|
|
38330
|
+
"takes_value": true
|
|
38331
|
+
},
|
|
38303
38332
|
{
|
|
38304
38333
|
"dest": "base_url",
|
|
38305
38334
|
"required": false,
|
|
@@ -38453,7 +38482,7 @@
|
|
|
38453
38482
|
},
|
|
38454
38483
|
"availability": null,
|
|
38455
38484
|
"examples": [
|
|
38456
|
-
"autotouch agents signals [-h] [--base-url BASE_URL] [--token TOKEN]\n [--use-x-api-key] [--timeout TIMEOUT]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER] [--verbose]"
|
|
38485
|
+
"autotouch agents signals [-h] [--target {LEADS,ACCOUNTS}]\n [--base-url BASE_URL] [--token TOKEN]\n [--use-x-api-key] [--timeout TIMEOUT]\n [--output {json,ndjson,human}] [--compact]\n [--select SELECT |\n --json-pointer JSON_POINTER] [--verbose]"
|
|
38457
38486
|
],
|
|
38458
38487
|
"stability": "stable",
|
|
38459
38488
|
"handler": "_fn"
|
|
@@ -488,7 +488,7 @@ def build_parser(
|
|
|
488
488
|
pw._codex_examples = [
|
|
489
489
|
"autotouch workflows list",
|
|
490
490
|
"autotouch workflows plan --type bulk-outreach",
|
|
491
|
-
"autotouch workflows scaffold --type
|
|
491
|
+
"autotouch workflows scaffold --type agent-to-sequence --out-dir workflow",
|
|
492
492
|
]
|
|
493
493
|
workflows_sub = pw.add_subparsers(dest="workflows_cmd", required=True)
|
|
494
494
|
|
|
@@ -1762,6 +1762,109 @@ def _workflow_scaffold_research_to_sequence() -> Dict[str, Any]:
|
|
|
1762
1762
|
}
|
|
1763
1763
|
|
|
1764
1764
|
|
|
1765
|
+
def _agent_to_sequence_payload() -> Dict[str, Any]:
|
|
1766
|
+
return {
|
|
1767
|
+
"name": "<AGENT_NAME>",
|
|
1768
|
+
"targetType": "LEADS",
|
|
1769
|
+
"assignedUserId": "<USER_ID>",
|
|
1770
|
+
"personaConfig": {
|
|
1771
|
+
"brief": "<ICP_BRIEF>",
|
|
1772
|
+
"industries": ["Software Development"],
|
|
1773
|
+
"companySizes": ["11-50", "51-200"],
|
|
1774
|
+
"locations": ["United States"],
|
|
1775
|
+
"companyExclusions": [],
|
|
1776
|
+
"candidatesPerCompany": 2,
|
|
1777
|
+
"additionalContext": (
|
|
1778
|
+
"Find people who are likely to own or influence the outreach motion. "
|
|
1779
|
+
"Return none when the company or person fit is weak."
|
|
1780
|
+
),
|
|
1781
|
+
},
|
|
1782
|
+
"selectedSignals": [
|
|
1783
|
+
{
|
|
1784
|
+
"key": "hiring-signals",
|
|
1785
|
+
"config": {
|
|
1786
|
+
"jobTitles": ["Sales Development Representative", "Business Development Representative", "SDR", "BDR"],
|
|
1787
|
+
"keywords": ["outbound", "prospecting", "cold email", "cold calling"],
|
|
1788
|
+
"remoteOnly": False,
|
|
1789
|
+
"lookbackWindow": "24h",
|
|
1790
|
+
},
|
|
1791
|
+
}
|
|
1792
|
+
],
|
|
1793
|
+
"schedule": {
|
|
1794
|
+
"timezone": "America/New_York",
|
|
1795
|
+
"timeOfDay": "09:00",
|
|
1796
|
+
"frequency": "daily",
|
|
1797
|
+
"days": "weekdays",
|
|
1798
|
+
},
|
|
1799
|
+
"autoFindEmail": True,
|
|
1800
|
+
"autoCreateLeadMode": "qualified_only",
|
|
1801
|
+
"autoSequenceId": "<SEQUENCE_ID>",
|
|
1802
|
+
"status": "ACTIVE",
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1805
|
+
|
|
1806
|
+
def _sequence_task_query_payload() -> Dict[str, Any]:
|
|
1807
|
+
return {
|
|
1808
|
+
"filters": [
|
|
1809
|
+
{"field": "sequence_id", "operator": "eq", "value": "<SEQUENCE_ID>"},
|
|
1810
|
+
{"field": "assigned_to", "operator": "eq", "value": "<USER_ID>"},
|
|
1811
|
+
{"field": "task_status", "operator": "eq", "value": "pending"},
|
|
1812
|
+
],
|
|
1813
|
+
"sort": {"field": "due_date", "direction": "asc"},
|
|
1814
|
+
"include_skipped": False,
|
|
1815
|
+
"include_total_count": True,
|
|
1816
|
+
"include_research_values": True,
|
|
1817
|
+
}
|
|
1818
|
+
|
|
1819
|
+
|
|
1820
|
+
def _workflow_scaffold_agent_to_sequence() -> Dict[str, Any]:
|
|
1821
|
+
artifacts = [
|
|
1822
|
+
_workflow_artifact(
|
|
1823
|
+
step=1,
|
|
1824
|
+
kind="agent_payload",
|
|
1825
|
+
provider="agents",
|
|
1826
|
+
filename="01-agent-to-sequence.json",
|
|
1827
|
+
payload=_agent_to_sequence_payload(),
|
|
1828
|
+
table_scope="agent",
|
|
1829
|
+
notes=[
|
|
1830
|
+
"Use this payload when you want explicit signal/persona config instead of --generate.",
|
|
1831
|
+
"Keep targetType=LEADS and autoCreateLeadMode=qualified_only for sequence handoffs unless the user asks otherwise.",
|
|
1832
|
+
],
|
|
1833
|
+
),
|
|
1834
|
+
_workflow_artifact(
|
|
1835
|
+
step=2,
|
|
1836
|
+
kind="task_query",
|
|
1837
|
+
provider="tasks",
|
|
1838
|
+
filename="02-sequence-task-query.json",
|
|
1839
|
+
payload=_sequence_task_query_payload(),
|
|
1840
|
+
table_scope="sequence",
|
|
1841
|
+
notes=["Set SEQUENCE_ID and USER_ID before querying the visible tasks created by the run."],
|
|
1842
|
+
),
|
|
1843
|
+
]
|
|
1844
|
+
return {
|
|
1845
|
+
"artifacts": artifacts,
|
|
1846
|
+
"commands": [
|
|
1847
|
+
"autotouch auth status --output json",
|
|
1848
|
+
"autotouch agents signals --target LEADS --output json",
|
|
1849
|
+
"autotouch sequences list --status ACTIVE --include-stats --output json",
|
|
1850
|
+
"autotouch sequences get --sequence-id <SEQUENCE_ID> --output json",
|
|
1851
|
+
"autotouch agents create --name '<AGENT_NAME>' --target LEADS --generate --auto-find-email --auto-create-lead-mode qualified_only --auto-sequence-id <SEQUENCE_ID> --status ACTIVE --output json",
|
|
1852
|
+
"autotouch agents update <AGENT_ID> --assigned-user <USER_ID> --auto-find-email true --auto-create-lead-mode qualified_only --auto-sequence-id <SEQUENCE_ID> --status ACTIVE --output json",
|
|
1853
|
+
"autotouch agents watch <AGENT_ID> --interval 10 --max-wait 900 --output json",
|
|
1854
|
+
"autotouch agents runs <AGENT_ID> --limit 5 --output json",
|
|
1855
|
+
"autotouch sequences stats --sequence-id <SEQUENCE_ID> --output json",
|
|
1856
|
+
"autotouch tasks query --data-file 02-sequence-task-query.json --output json",
|
|
1857
|
+
],
|
|
1858
|
+
"notes": [
|
|
1859
|
+
"Use an existing ACTIVE Autotouch Sequence. The sequence's own step settings control manual review versus automated execution.",
|
|
1860
|
+
"For demos, prefer manual-review or AI-draft manual sequence steps so the created tasks are visible before any send/execute action.",
|
|
1861
|
+
"Pass --assigned-user <USER_ID> on create only when impersonating or when a specific user's connected context matters; otherwise the API assigns a real active user in the target organization.",
|
|
1862
|
+
"Use the --generate create command for a fast demo path, or edit 01-agent-to-sequence.json when the signal/persona config must be deterministic.",
|
|
1863
|
+
"Do not default to LinkedIn signals unless the user asks for LinkedIn or the signal catalog indicates that LinkedIn is connected and appropriate.",
|
|
1864
|
+
],
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
|
|
1765
1868
|
def _workflow_scaffold_company_table_to_people() -> Dict[str, Any]:
|
|
1766
1869
|
artifacts = [
|
|
1767
1870
|
_workflow_artifact(
|
|
@@ -1877,7 +1980,7 @@ def _workflow_scaffold_signal_outreach() -> Dict[str, Any]:
|
|
|
1877
1980
|
"autotouch agents --help",
|
|
1878
1981
|
"autotouch agents generate-persona --target LEADS --output json",
|
|
1879
1982
|
"autotouch agents create --help",
|
|
1880
|
-
"autotouch workflows scaffold --type
|
|
1983
|
+
"autotouch workflows scaffold --type agent-to-sequence --out-dir sequence-handoff",
|
|
1881
1984
|
"autotouch workflows scaffold --type table-to-outreach --out-dir outreach-handoff",
|
|
1882
1985
|
],
|
|
1883
1986
|
"notes": [
|
|
@@ -2263,6 +2366,7 @@ def _workflow_scaffold_bundle(workflow_type: str) -> Dict[str, Any]:
|
|
|
2263
2366
|
"company-table-to-people": _workflow_scaffold_company_table_to_people,
|
|
2264
2367
|
"table-to-outreach": _workflow_scaffold_table_to_outreach,
|
|
2265
2368
|
"research-to-sequence": _workflow_scaffold_research_to_sequence,
|
|
2369
|
+
"agent-to-sequence": _workflow_scaffold_agent_to_sequence,
|
|
2266
2370
|
"account-research": _workflow_scaffold_account_research,
|
|
2267
2371
|
"signal-outreach": _workflow_scaffold_signal_outreach,
|
|
2268
2372
|
"website-visitors": _workflow_scaffold_website_visitors,
|
|
@@ -97,6 +97,34 @@ _GOAL_WORKFLOW_BLUEPRINTS: Dict[str, Dict[str, Any]] = {
|
|
|
97
97
|
{"provider": "to_sequence", "purpose": "enroll Leads into an active sequence and assign generated tasks"},
|
|
98
98
|
],
|
|
99
99
|
},
|
|
100
|
+
"agent-to-sequence": {
|
|
101
|
+
"goal": "Run a lead-target scheduled agent, create qualified Leads, and enroll them into an active Autotouch Sequence.",
|
|
102
|
+
"use_case": "scheduled_agent_sequence_handoff",
|
|
103
|
+
"supported_starting_points": ["scheduled_agent", "signal_catalog", "active_sequence"],
|
|
104
|
+
"recommended_when": [
|
|
105
|
+
"the user wants Autotouch to find signal-qualified people and create visible sequence tasks",
|
|
106
|
+
"the destination is an Autotouch Sequence rather than Instantly, Smartlead, or an external CRM",
|
|
107
|
+
"the demo or workflow should show agent discovery, lead sync, sequence enrollment, and task inspection end to end",
|
|
108
|
+
],
|
|
109
|
+
"default_safety": {
|
|
110
|
+
"target_type": "LEADS",
|
|
111
|
+
"auto_create_lead_mode": "qualified_only",
|
|
112
|
+
"assigned_user_required": False,
|
|
113
|
+
"assigned_user_default": "api_resolved_active_target_org_user",
|
|
114
|
+
"sequence_must_be_active": True,
|
|
115
|
+
"ai_draft_steps": "manual_review",
|
|
116
|
+
"skip_active_sequence_conflicts": True,
|
|
117
|
+
"sample_first": True,
|
|
118
|
+
},
|
|
119
|
+
"steps": [
|
|
120
|
+
{"provider": "auth", "purpose": "confirm API key, organization, user, and remaining credits"},
|
|
121
|
+
{"provider": "agents.signals", "purpose": "list lead-compatible signal packs for this organization"},
|
|
122
|
+
{"provider": "sequences", "purpose": "choose an existing ACTIVE sequence with manual-review tasks for demos"},
|
|
123
|
+
{"provider": "agents", "purpose": "create or update a LEADS agent with auto email, qualified-only lead creation, optional explicit assignee, and autoSequenceId"},
|
|
124
|
+
{"provider": "agents.watch", "purpose": "run the agent and wait for a terminal run state"},
|
|
125
|
+
{"provider": "sequences|tasks", "purpose": "inspect sequence stats and visible assigned tasks"},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
100
128
|
"account-research": {
|
|
101
129
|
"goal": "Research accounts for rep enablement, optionally discover leads, and hand off to manual AI-draft sequences.",
|
|
102
130
|
"use_case": "rep_enablement",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autotouch-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.103
|
|
4
4
|
Summary: Autotouch Smart Table CLI
|
|
5
5
|
Project-URL: Homepage, https://app.autotouch.ai
|
|
6
6
|
Project-URL: Documentation, https://github.com/nicolonic/autotouch_main/tree/main/docs/research-table/reference
|
|
@@ -91,6 +91,11 @@ autotouch auth bootstrap \
|
|
|
91
91
|
autotouch auth check
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
+
Demo accounts:
|
|
95
|
+
|
|
96
|
+
- For a brand-new demo org plus developer key, use `autotouch auth bootstrap` as shown above.
|
|
97
|
+
- For a demo login inside an existing seeded demo org, create the org with `apps/api/scripts/create_demo_org.py`, then add the user through the invite/register flow in `docs/operations/demo-accounts.md`.
|
|
98
|
+
|
|
94
99
|
Config precedence:
|
|
95
100
|
- Explicit flags win over environment variables.
|
|
96
101
|
- Environment variables win over saved config.
|
|
@@ -183,7 +188,7 @@ For structured company builds, start with industry IDs plus geo/company-size fil
|
|
|
183
188
|
|
|
184
189
|
For account-first prospecting from LinkedIn/Sales Navigator, build companies/accounts first, inspect the returned company IDs, then pass those IDs to `autotouch list-build leads --current-company-id ...`. Do not use Exa company search as a default pre-step for every LinkedIn list build; use it when the user's target is genuinely semantic, niche, competitor-based, or not meant to be LinkedIn-sourced.
|
|
185
190
|
|
|
186
|
-
Use `autotouch agents ...` for recurring signal-based discovery. Scheduled agents support `--target ACCOUNTS` for company/account output and `--target LEADS` for people output. Every agent writes a source/signal table for the evidence it used; lead agents then write `candidate_research.candidates[]` on source rows and list-sync those candidates into the lead/candidate output table. See the agent playbook for the full source-table
|
|
191
|
+
Use `autotouch agents ...` for recurring signal-based discovery. Scheduled agents support `--target ACCOUNTS` for company/account output and `--target LEADS` for people output. Every agent writes a source/signal table for the evidence it used; lead agents then write `candidate_research.candidates[]` on source rows and list-sync those candidates into the lead/candidate output table. LinkedIn engagement lead agents screen all harvested engagers by headline/title before company resolution and final lead scoring; company agents can keep matches in review or auto-promote qualified matches into the Companies workspace. See the agent playbook for the full source-table, candidate-sync, and company-promotion contract.
|
|
187
192
|
|
|
188
193
|
## Workflow Plans
|
|
189
194
|
|
|
@@ -198,7 +203,7 @@ discover -> plan -> scaffold -> run primitives -> inspect
|
|
|
198
203
|
- `autotouch workflows scaffold --type <TYPE> --out-dir <DIR>` writes payload files and a command runbook.
|
|
199
204
|
- `autotouch columns recipe` and `autotouch sequences recipe` remain leaf-level templates.
|
|
200
205
|
|
|
201
|
-
Goal-level workflow types include `bulk-outreach`, `company-table-to-people`, `table-to-outreach`, `research-to-sequence`, `account-research`, `signal-outreach`, `website-visitors`, and `list-build-to-table`. These keep CRM, outreach providers, Autotouch Leads, Autotouch Sequences, webhooks, visitor sources, and external intent sources as sources/destinations inside one organized workflow layer instead of creating one-off top-level commands.
|
|
206
|
+
Goal-level workflow types include `bulk-outreach`, `company-table-to-people`, `table-to-outreach`, `research-to-sequence`, `agent-to-sequence`, `account-research`, `signal-outreach`, `website-visitors`, and `list-build-to-table`. These keep CRM, outreach providers, Autotouch Leads, Autotouch Sequences, scheduled agents, webhooks, visitor sources, and external intent sources as sources/destinations inside one organized workflow layer instead of creating one-off top-level commands.
|
|
202
207
|
|
|
203
208
|
## Sources And Destinations
|
|
204
209
|
|
|
@@ -268,10 +273,11 @@ For automation or agent-driven setup, use:
|
|
|
268
273
|
- `autotouch cli-manifest --output json` for the local machine-readable command contract
|
|
269
274
|
- `autotouch cli-reference` for the shipped parser-generated reference
|
|
270
275
|
- `autotouch capabilities --output json` for provider/workflow contracts
|
|
271
|
-
- `autotouch --version` should be `0.2.
|
|
276
|
+
- `autotouch --version` should be `0.2.103` or newer for structured company list builds without user-supplied keywords, stored list-build input lookup, research-workspace list-build guidance, the cleaned single LinkedIn-sourced list-build path, Exa Company Search up to 100 results, scheduled agent `--target ACCOUNTS|LEADS`, `agents signals --target`, the `agent-to-sequence` workflow scaffold, paced HTTP Request column contracts, branch-aware LinkedIn sequence recipes, real agent soft-delete with associated-table handling, research-table sequence handoff assignee and active-sequence-conflict guard config, backend-owned directional source/destination helpers, goal-level workflow plans, website visitor/external intent webhook workflow guidance, and create-time agent assignment defaults
|
|
272
277
|
- `autotouch capabilities --output json --select list_builds` for documented list-build inputs such as geography IDs, company size buckets, profile language, and company IDs
|
|
273
278
|
- `autotouch integrations list` and `autotouch integrations status --provider <provider>` before choosing source/destination workflows
|
|
274
279
|
- `autotouch workflows plan --type bulk-outreach` and `autotouch workflows scaffold --type bulk-outreach --out-dir workflow` for goal-level workflow planning
|
|
280
|
+
- `autotouch workflows plan --type agent-to-sequence` and `autotouch workflows scaffold --type agent-to-sequence --out-dir workflow` for scheduled agent discovery into Autotouch Sequence tasks
|
|
275
281
|
- `autotouch workflows plan --type website-visitors` and `autotouch workflows scaffold --type website-visitors --out-dir workflow` for website visitor or external intent provider webhook workflows
|
|
276
282
|
- `autotouch integrations recipe --type from_crm --provider hubspot` for CRM-to-research-table imports
|
|
277
283
|
- `autotouch columns recipe --type to_crm|to_outreach|to_leads|to_sequence` for research-table destination workflows
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|