abort_import
ChatGPTCancel an in-progress import session. Args: import_id: The import session UUID. Returns: Confirmation.
add_events_to_contact
ChatGPTAttach one or more events to a contact — e.g. where you met them. Event names are resolved to existing events or created if missing. If you only have the contact's name, resolve it with find_contact first — ask the user which contact if it's ambiguous. Args: contact_id: The contact UUID. event_names: Event names to attach, e.g. ["Web Summit 2026"]. Returns: Confirmation.
assign_contacts_to_network
ChatGPTMove one or more contacts to a different network/label. Args: contact_ids: List of contact UUIDs to move. network_id: Target network UUID. Returns: Confirmation of the update.
create_card
ChatGPTCreate a new business card. Args: label: Card display label (required). first_name: First name on the card (required). last_name: Last name on the card. company: Company name. job_title: Job title / designation. emails: Email entries, e.g. [{"value": "j@co.com", "label": "Work"}]. phones: Phone entries, e.g. [{"value": "+1555123", "label": "Mobile"}]. websites: Website entries, e.g. [{"value": "example.com", "label": "Website"}]. A missing scheme is normalized to https://. social_links: Social profile entries, e.g. [{"value": "https://linkedin.com/in/jane", "label": "LinkedIn"}]. label should be the platform name (LinkedIn, Twitter/X, Instagram, GitHub, YouTube, TikTok, WhatsApp, etc.) — the web/App Clip card picks the icon from it. value may be a full URL or a bare handle; for a known platform a handle is expanded to the full profile URL. Returns: The created card object.
create_contact
ChatGPTCreate a new contact. Args: first_name: Contact first name (required). last_name: Contact last name. company: Company name. job_title: Job title / designation. network_id: Network/label ID to assign the contact to (default network when omitted; a first card named "My Card" is created if the user has none). notes: Free-text notes about the contact. bio: Short bio / description of the contact. industry_id: Industry ID to assign (see list_industries). emails: List of email objects, e.g. [{"value": "j@co.com", "label": "Work"}]. phones: List of phone objects, e.g. [{"value": "+1555123", "label": "Mobile"}]. events: List of event names where you met the contact (created if missing). Returns: The created contact object.
create_import_session
ChatGPTStart a new contact import session. The session tracks import progress and can be used for batch imports. Args: label: Human-readable label for this import batch (e.g. "Salesforce Q1 2026"). source: Import source identifier — "csv", "phonebook", or "crm". Returns: Import session object with id and status.
create_network
ChatGPTCreate a new network (label / contact group). Args: name: Network display name (required). description: Optional description. Returns: The created network object.
delete_card
ChatGPTDelete a business card permanently. Args: card_id: The card UUID. Returns: Confirmation.
delete_contacts
ChatGPTDelete one or more contacts. This is irreversible. If you only have a contact's name, call find_contact first. If it returns multiple matches, ask the user which one before deleting — never guess when contacts share a name. Args: contact_ids: List of contact UUIDs to delete (from find_contact or a prior list/search call). Returns: Confirmation with count of deleted contacts.
delete_network
ChatGPTDelete a network. Contacts in this network are moved to the default network. Args: network_id: The network UUID. Returns: Confirmation.
export_contacts_csv
ChatGPTExport contacts as CSV. Requires ConnectMachine Premium — free accounts get a clear upgrade message instead of the export. Args: network_id: Optional — export only contacts from this network/label. Omit to export all contacts from every network. Returns: Export result with download_url and expires_at.
find_contact
ChatGPTResolve a contact's name to a contact_id before calling update_contact, delete_contacts, or any tag/network tool that takes a contact_id. ALWAYS call this before acting on a contact by name. If two or more contacts share that name, this returns status="ambiguous" with every match — STOP and ask the user which one they mean before doing anything else. Never guess based on which one looks more "recent" or "complete"; a wrong guess edits/deletes/tags the wrong person's data. Args: name: Full name to look up, e.g. "Meraj Ansari". company: Optional company to narrow an ambiguous result. Returns: status="found" with a single contact, status="ambiguous" with a matches list (ask the user to pick one, then call this tool again with company set, or use the chosen contact_id directly), or status="not_found".
get_card
ChatGPTGet full details for a single business card. Args: card_id: The card UUID. Returns: Card object with all fields, infos, social links, and share settings.
get_contact
ChatGPTGet full details for a single contact. Args: contact_id: The contact UUID. Returns: Contact object with infos, tags, notes, location, and meeting details.
get_contact_counts
ChatGPTGet how many contacts you have and where they came from. Returns the all-time total plus a breakdown by source, e.g. "ai" (added through an AI tool like this one), "manual", "qr", "import", "link", "nfc", "share_back". Returns: total, onboarded, and by_source counts. When the network is larger than the scan limit, by_source covers the most recent contacts and breakdown_note says how many were scanned.
get_duplicate_contacts
ChatGPTFind duplicate contact groups. Returns: List of duplicate groups, each containing the matching contacts.
get_enrichment_data
ChatGPTGet auto-enrichment data for the authenticated user. Uses public data to suggest profile completions: name, company, designation, social profiles. Returns: Enrichment suggestions with confidence scores.
get_import_status
ChatGPTCheck the status of an import session. Args: import_id: The import session UUID. Returns: Session object with status (pending/in_progress/completed), records_imported, records_skipped, started_at, finished_at.
get_profile
ChatGPTGet the authenticated user's profile. Returns: User object: id, first_name, last_name, email, phone, company, designation, bio, subscription status, profile_pic_url.
get_shared_card
ChatGPTFetch a business card's public details via its share link ID. This does not require authentication — used when a CRM receives a ConnectMachine share link. Args: share_id: The short share ID from a mycm.ai link. Returns: Public card details: name, company, title, contact info, social links.
get_subscription_status
ChatGPTGet the user's current subscription status and available plans. Lists the monthly and yearly subscriptions only. One-off purchases and trial details are left out, so an assistant does not offer them as if they were plans. Returns: Subscription details: whether the account is paid, the active and previous subscriptions, and the monthly/yearly plans with prices.
get_unread_count
ChatGPTGet the count of unread notifications. Returns: Object with unread_count field.
import_contacts_batch
ChatGPTImport a batch of contacts into an existing import session. Each contact should have: first_name, last_name, company, job_title, and an infos array with {type, value, label} entries. Max 500 contacts per batch. Call multiple times for larger imports. Args: import_id: The import session UUID from create_import_session. contacts: Array of contact objects to import. Example: [{"first_name": "Jane", "last_name": "Doe", "company": "Acme", "infos": [{"type": "email", "value": "jane@acme.com", "label": "Work"}]}] Returns: Import progress with records_imported and records_skipped counts.
list_cards
ChatGPTList the authenticated user's business cards. Args: include_archived: True returns every card, archived ones included. False (default) returns only active, non-archived cards. Returns: Array of card objects with id, label, first_name, last_name, company, job_title, social_links, profile_pic_url.
list_contacts
ChatGPTList contacts with pagination, search, and filtering. Args: page: Page number (1-indexed). limit: Results per page (max 100). search: Free-text search across name, company, job title, email, phone, notes, location, meeting location, and event names. E.g. "founder" matches job titles, "WebSummit" matches events. network_id: Filter by network/label ID. network_name: Filter by network/label name (Consumer API). status: Filter by contact status (e.g. active). industry_ids: Filter by industry IDs (see list_industries). country: Filter by country name(s), comma-separated. state: Filter by state name(s), comma-separated. city: Filter by city name(s), comma-separated. sort: Sort field — created_at, first_name, last_name, company. order: Sort direction — asc or desc. Returns: Paginated list of contacts with total count.
list_events
ChatGPTList the user's events, e.g. conferences and meetups where contacts were met. To see who you met at an event, search contacts by the event name. Returns: Array of event objects: id, name, type, created_at, updated_at.
list_import_sessions
ChatGPTList all import sessions for the authenticated user. Returns: Array of import session objects.
list_industries
ChatGPTList all industries (predefined + user-created) with their IDs. Use the IDs with list_contacts(industry_ids=...) to filter contacts by industry, or with create_contact/update_contact to set a contact's industry. Returns: Array of industry objects: id, name.
list_networks
ChatGPTList all networks (labels / contact groups) with contact counts. Returns: Array of network objects: id, name, description, contactsCount, isDefault.
list_notifications
ChatGPTList notifications for the authenticated user. Args: notification_type: Filter by type — system, card_share, connection_request, netsend. is_unread: Only return unread notifications. limit: Results per page (max 100). offset: Offset for pagination. Returns: Paginated list of notifications.
mark_all_notifications_read
ChatGPTMark all notifications as read, optionally filtered by source. Args: source: Optional — only mark notifications from this source as read. Returns: Confirmation with count of notifications marked.
mark_notification_read
ChatGPTMark a single notification as read. Args: notification_id: The notification UUID. Returns: Confirmation.
merge_contacts
ChatGPTMerge duplicate contacts into one. Runs the required merge-preview step first (the backend builds the merge plan from it), then executes the merge with the previewed contact, optionally overridden by fields. Args: group_id: The numeric duplicate group ID from get_duplicate_contacts. contact_ids: The contact UUIDs in the group to merge (min 2). fields: Optional overrides for the merged contact, e.g. {"first_name": "Jane", "company": "Acme"}. Returns: The merged contact object.
read_card_image
ChatGPTExtract contact information from a business card image using AI/OCR. Provide either image_base64 (the card photo) or ocr_text (pre-extracted text), or both for best accuracy. Args: image_base64: Base64-encoded card image (JPEG/PNG). ocr_text: Pre-extracted OCR text from the card. latitude: Optional — current latitude for location enrichment. longitude: Optional — current longitude for location enrichment. Returns: Extracted contact fields: first_name, last_name, company, job_title, infos (emails, phones, websites), and location.
remove_events_from_contact
ChatGPTDetach events from a contact by name. Args: contact_id: The contact UUID. event_names: Event names to remove from the contact. Returns: Confirmation, or a no-op note if none of the names matched.
reorder_networks
ChatGPTSet the display order of networks. Args: network_ids: Ordered list of network UUIDs (first = top). Returns: Confirmation.
search_contacts
ChatGPTSearch contacts by name, company, job title, email, phone, notes, location, meeting location, or event name. Examples: "founder" (job title), "Acme" (company), "WebSummit" (event where you met), "Berlin" (location / meeting location). This is a convenience wrapper around list_contacts with search; use list_contacts for industry or country/state/city filters. Args: query: Search text. limit: Max results to return (default 10). Returns: Matching contacts.
update_card
ChatGPTUpdate a business card's fields. Only non-empty fields are updated. Args: card_id: The card UUID (required). label: New card label. first_name: New first name. last_name: New last name. company: New company. job_title: New job title. emails: Full new list of email objects, e.g. [{"value": "j@co.com", "label": "Work"}]. Replaces existing emails; other info types are preserved. phones: Full new list of phone objects, e.g. [{"value": "+1555123", "label": "Mobile"}]. Replaces existing phones; other info types are preserved. websites: Full new list of website objects, e.g. [{"value": "example.com", "label": "Website"}]. A missing scheme is normalized to https://. Replaces existing websites; other info types are preserved. social_links: Full new list of social profile objects, e.g. [{"value": "https://linkedin.com/in/jane", "label": "LinkedIn"}]. label should be the platform name (drives the web/App Clip icon); value may be a full URL or a bare handle (expanded for known platforms). Replaces existing social links; other info types are preserved. Returns: The updated card object.
update_contact
ChatGPTUpdate an existing contact's fields, contact info, and events. Only provided (non-empty) fields are changed. emails/phones REPLACE the contact's existing emails/phones respectively; other contact info types (websites, socials) are preserved. If you only have the contact's name (not their ID), call find_contact first. If it returns multiple matches, ask the user which one before calling this tool — never guess when contacts share a name. Args: contact_id: The contact UUID (required — from find_contact or a prior list/search call). first_name: New first name. last_name: New last name. company: New company. job_title: New job title. notes: New notes (replaces existing). bio: New bio (replaces existing). network_id: Move contact to this network/label. industry_id: Set the contact's industry (see list_industries). emails: Full new list of email objects, e.g. [{"value": "j@co.com", "label": "Work"}]. phones: Full new list of phone objects, e.g. [{"value": "+1555123", "label": "Mobile"}]. add_events: Event names to attach, e.g. where you met (created if missing). remove_events: Event names to detach from the contact. Returns: The updated contact object.
update_network
ChatGPTUpdate a network's name or description. Args: network_id: The network UUID (required). name: New name (if non-empty). description: New description (if non-empty). Returns: The updated network object.
abort_import
Claudeadd_events_to_contact
Claudeassign_contacts_to_network
Claudecreate_card
Claudecreate_contact
Claudecreate_import_session
Claudecreate_network
Claudedelete_card
Claudedelete_contacts
Claudedelete_network
Claudeexport_contacts_csv
Claudefind_contact
Claudeget_card
Claudeget_contact
Claudeget_contact_counts
Claudeget_duplicate_contacts
Claudeget_enrichment_data
Claudeget_import_status
Claudeget_profile
Claudeget_shared_card
Claudeget_subscription_status
Claudeget_unread_count
Claudeimport_contacts_batch
Claudelist_cards
Claudelist_contacts
Claudelist_events
Claudelist_import_sessions
Claudelist_industries
Claudelist_networks
Claudelist_notifications
Claudemark_all_notifications_read
Claudemark_notification_read
Claudemerge_contacts
Clauderead_card_image
Clauderemove_events_from_contact
Claudereorder_networks
Claudesearch_contacts
Claudeupdate_card
Claudeupdate_contact
Claudeupdate_network
Claude