Examples
Search people by any combination of criteria (name, email, domain, phone, company):--modal-sync controls that preflight, not whether the write happens:
upsert:
--apply):
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Command reference for gtm attio — Attio CRM commands. Generated from the CLI help text.
uv run gtm attio people search --email-domain "acme.dev" --limit 10
# Browse recent records without a filter.
uv run gtm attio people search --sample
--modal-sync controls that preflight, not whether the write happens:
uv run gtm attio people add "jane@acme.dev" \
--first-name "Jane" \
--last-name "Doe" \
--company "acme.dev"
uv run gtm attio people update --email "jane@acme.dev" \
--company "acme.dev" \
--first-name "Jane"
upsert:
uv run gtm attio people upsert "jane@acme.dev" \
--first-name "Jane" \
--last-name "Doe"
--apply):
uv run gtm attio companies add --domain "acme.dev" --name "Acme Corp"
gtm attio peoplegtm attio people adduv run gtm attio people add [OPTIONS] [EMAIL]
| Argument | Type | Required |
|---|---|---|
EMAIL | text | no |
| Option | Type | Default | Description |
|---|---|---|---|
--add-email | text | [] | Additional email for this person (repeat for multiple). |
--first-name | text | — | First name |
--last-name | text | — | Last name |
--phone | text | — | Phone number |
--linkedin | text | — | LinkedIn profile URL |
--location | text | — | Primary location |
--country-code | text | — | ISO-3166-1 alpha-2 country code paired with —location (e.g. US, IN). Required for the location to be written; see ai-sfp. |
--company | text | — | Company domain |
--notes | text | — | Intake notes |
--strict | boolean | false | Fail fast on optional-field mismatches |
--location-mode | text | city | Location normalization mode: city|raw |
--no-connectivity-probe | boolean | false | Skip Modal connectivity preflight |
--modal-sync | text | check | Modal sync strategy for mutation commands: check|deploy|skip |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override Attio API key |
gtm attio people searchuv run gtm attio people search [OPTIONS]
| Option | Type | Default | Description |
|---|---|---|---|
--name | text | — | Search by name (fuzzy, case-insensitive) |
--email | text | — | Search by exact email address |
--email-domain | text | — | Search by email domain (e.g. continue.dev) |
--phone | text | — | Search by phone number (partial match) |
--company | text | — | Search by company name or domain |
--sample | boolean | false | Fetch recent records without filtering (overrides all search criteria) |
--limit | integer | 25 | Max results to return |
--no-connectivity-probe | boolean | false | Skip Modal connectivity preflight |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override Attio API key |
gtm attio people updateuv run gtm attio people update [OPTIONS]
| Option | Type | Default | Description |
|---|---|---|---|
--email | text | — | Email to look up person |
--id | text | — | Attio record ID |
--add-email | text | [] | Email to merge onto the person (repeat for multiple). Existing addresses are kept; duplicates are dropped. |
--replace-emails | boolean | false | Replace stored emails with lookup identity (—email) plus —add-email only (no merge with existing). |
--first-name | text | — | First name |
--last-name | text | — | Last name |
--phone | text | — | Phone number |
--linkedin | text | — | LinkedIn profile URL |
--location | text | — | Primary location |
--country-code | text | — | ISO-3166-1 alpha-2 country code paired with —location (e.g. US, IN). Required for the location to be written; see ai-sfp. |
--company | text | — | Company domain |
--notes | text | — | Intake notes |
--strict | boolean | false | Fail fast on optional-field mismatches |
--location-mode | text | city | Location normalization mode: city|raw |
--no-connectivity-probe | boolean | false | Skip Modal connectivity preflight |
--modal-sync | text | check | Modal sync strategy for mutation commands: check|deploy|skip |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override Attio API key |
gtm attio people upsertuv run gtm attio people upsert [OPTIONS] [EMAIL]
| Argument | Type | Required |
|---|---|---|
EMAIL | text | no |
| Option | Type | Default | Description |
|---|---|---|---|
--add-email | text | [] | Extra email to store (repeat for multiple). On update, merged with existing unless —replace-emails. |
--replace-emails | boolean | false | On update, set emails to identity email plus —add-email only. |
--first-name | text | — | First name |
--last-name | text | — | Last name |
--phone | text | — | Phone number |
--linkedin | text | — | LinkedIn profile URL |
--location | text | — | Primary location |
--country-code | text | — | ISO-3166-1 alpha-2 country code paired with —location (e.g. US, IN). Required for the location to be written; see ai-sfp. |
--company | text | — | Company domain |
--notes | text | — | Intake notes |
--strict | boolean | false | Fail fast on ambiguity or optional-field mismatches |
--location-mode | text | city | Location normalization mode: city|raw |
--no-connectivity-probe | boolean | false | Skip Modal connectivity preflight |
--modal-sync | text | check | Modal sync strategy for mutation commands: check|deploy|skip |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override Attio API key |
gtm attio companiesgtm attio companies adduv run gtm attio companies add [OPTIONS] [NAME]
| Argument | Type | Required |
|---|---|---|
NAME | text | no |
| Option | Type | Default | Description |
|---|---|---|---|
--domain | text | — | Company domain |
--description | text | — | Company description |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
gtm attio companies searchuv run gtm attio companies search [OPTIONS]
| Option | Type | Default | Description |
|---|---|---|---|
--name | text | — | Search by company name |
--domain | text | — | Search by exact domain |
--limit | integer | 25 | Max results to return |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
gtm attio companies updateuv run gtm attio companies update [OPTIONS]
| Option | Type | Default | Description |
|---|---|---|---|
--domain | text | — | Domain to look up company |
--id | text | — | Attio record ID |
--name | text | — | New company name |
--description | text | — | New description |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
gtm attio companies create-attribute-typeuv run gtm attio companies create-attribute-type [OPTIONS]
| Option | Type | Default | Description |
|---|---|---|---|
--title | text | — | Display title for the new attribute |
--api-slug | text | — | API slug for the new attribute (derived from title when omitted) |
--type | text | select | Attio attribute type (e.g. select, text, number) |
--description | text | "" | Attribute description shown in Attio |
--is-multiselect, --no-is-multiselect | boolean | true | Allow multiple values per record |
--is-required, --no-is-required | boolean | false | Require a value on every record |
--is-unique, --no-is-unique | boolean | false | Enforce unique values across records |
--apply | boolean | false | Perform the write to Attio (default is preview) |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
--apply this command prints the planned mutation and writes nothing. See the CLI contract.gtm attio notesgtm attio notes adduv run gtm attio notes add [OPTIONS] [TITLE] [CONTENT]
| Argument | Type | Required |
|---|---|---|
TITLE | text | no |
CONTENT | text | no |
| Option | Type | Default | Description |
|---|---|---|---|
--object | text | "" | Parent object: ‘people’ or ‘companies’ |
--record-id | text | — | Parent record ID |
--email | text | — | Look up person by email |
--domain | text | — | Look up company by domain |
--format | text | plaintext | Content format: plaintext or markdown |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
gtm attio notes updateuv run gtm attio notes update [OPTIONS] [NOTE_ID]
| Argument | Type | Required |
|---|---|---|
NOTE_ID | text | no |
| Option | Type | Default | Description |
|---|---|---|---|
--title | text | — | New title |
--content | text | — | New content |
--format | text | plaintext | Content format: plaintext or markdown |
--json | text | — | JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
gtm attio enrichmentgtm attio enrichment backfill-domainsuv run gtm attio enrichment backfill-domains [OPTIONS]
| Option | Type | Default | Description |
|---|---|---|---|
--ext-tam-filter | text | — | JSON filter for ext_tam (e.g., ’{“source”:“snowflake_scored_accounts_csv”}‘) |
--company-ids | text | — | Comma-separated Company record IDs |
--limit | integer | — | Max Companies to process |
--sleep-seconds | float | 0.0 | Sleep between Companies |
--apply | boolean | false | Actually PATCH (default: preview only) |
--json | text | — | Full JSON payload (overrides flags) |
--attio-api-key | text | — | Override the Attio API key for this invocation |
--exa-api-key | text | — | Override the Exa API key for this invocation |
--apply this command prints the planned mutation and writes nothing. See the CLI contract.Related topics
Go-To-Market SDK and CLIgtm CLI overview and command groupsgtm accountsgtm enrichmentThis week in gtm-sdk (week of July 13, 2026)Was this page helpful?