Skip to main content
Manage contacts directly from the command line with full CRUD operations and CSV import.

List Contacts

View all contacts with optional filtering:
consuelo contacts list
Limit the number of results:
consuelo contacts list --limit 50
Filter by a field:
consuelo contacts list --filter "status=active"
consuelo contacts list --filter "company=Acme Corp"

Get a Contact

Retrieve details for a specific contact:
consuelo contacts get contact_abc123
Output includes all fields, tags, and associated call history.

Create a Contact

Create a new contact with required fields:
consuelo contacts create \
  --name "Jane Smith" \
  --phone "+15551234567"

Create with Optional Fields

consuelo contacts create \
  --name "Jane Smith" \
  --phone "+15551234567" \
  --email "jane@example.com" \
  --company "Acme Corp" \
  --tags "prospect,enterprise" \
  --custom-fields '{"lead_score": 85, "source": "website"}'

Options

OptionRequiredDescription
--nameYesContact name
--phoneYesPhone number in E.164 format
--emailNoEmail address
--companyNoCompany name
--tagsNoComma-separated tags
--custom-fieldsNoJSON object for custom fields

Update a Contact

Update specific fields on an existing contact:
consuelo contacts update contact_abc123 \
  --name "Jane Smith-Jones" \
  --tags "prospect,enterprise,priority"
You can update any field except the ID.

Delete a Contact

Remove a contact:
consuelo contacts delete contact_abc123
Deletion is permanent. There is no undo.

Search Contacts

Search across all contact fields:
consuelo contacts search "jane"
consuelo contacts search "Acme Corp"
consuelo contacts search "+1555"
Limit search results:
consuelo contacts search "jane" --limit 10
Search is case-insensitive and matches partial strings in name, email, company, and phone fields.

Import Contacts from CSV

Import contacts in bulk from a CSV file:
consuelo contacts import contacts.csv

CSV Format

Your CSV should have a header row with column names:
name,phone,email,company
John Doe,+15551112222,john@example.com,Acme Corp
Jane Smith,+15553334444,jane@example.com,Globex Inc

Column Mapping

If your CSV uses different column names, map them:
consuelo contacts import contacts.csv \
  --map "Full Name=name,Phone Number=phone,Email Address=email"

Dry Run

Preview import without making changes:
consuelo contacts import contacts.csv --dry-run
This shows:
  • Number of contacts to import
  • Any validation errors
  • Column mapping results

Supported Fields

CSV ColumnMaps ToRequired
nameContact nameYes
phonePhone (E.164)Yes
emailEmail addressNo
companyCompany nameNo
tagsComma-separated tagsNo
The import command validates phone numbers and will reject rows with invalid E.164 format.

Phone Number Format

All phone numbers must be in E.164 format:
+<country_code><number>
Examples:
  • US: +15551234567 (1 + area code + number)
  • UK: +442071234567 (44 + area code + number)
  • Germany: +49301234567 (49 + area code + number)
Non-E.164 numbers will be rejected. Include the leading + and omit spaces, dashes, or parentheses.

Output Formats

Human-Readable (Default)

consuelo contacts list
Displays a formatted table with columns.

JSON Output

For scripting and automation:
consuelo contacts list --json
[
  {
    "id": "contact_abc123",
    "name": "Jane Smith",
    "phone": "+15551234567",
    "email": "jane@example.com",
    "company": "Acme Corp"
  }
]

Quiet Mode

Suppress all output (useful for scripts):
consuelo contacts delete contact_abc123 --quiet

Next Steps