# Google Contacts

## Links

- Product page URL: https://www.agentpmt.com/marketplace/google-contacts
- Product markdown URL: https://www.agentpmt.com/marketplace/google-contacts?format=agent-md
- Product JSON URL: https://www.agentpmt.com/marketplace/google-contacts?format=agent-json

## Overview

- Product ID: 697abb9f72860b342caa2962
- Vendor: Apoth3osis
- Type: connector
- Unit type: request
- Price: 500 credits
- Categories: Automation, Sales Engagement & Outreach, Meeting & Calendar Scheduling, Marketing Automation, Team Collaboration & Workspaces, Appointment & Scheduling
- Generated at: 2026-04-15T18:27:00.718Z

### Page Description

Connect your AI agent to Google Contacts for complete contact management capabilities. Search contacts by name, email, or phone number to quickly find the people you need, list recent contacts for context during conversations, and create new contacts directly from agent interactions. Update existing contact information including phone numbers, emails, addresses, company details, and notes. This tool is perfect for agents that support customer outreach, sales engagement, scheduling coordination, and customer service workflows. Keep your contact database synchronized with your CRM, auto-fill customer details during support interactions, build outreach lists from existing contacts, and maintain a clean, organized address book. All operations use the Google People API with your connected Google account credentials.

### Agent Description

Google Contacts connector to list, search, create, update, and delete a user's contacts

## Details Tab

### Details

Connect your AI agent to Google Contacts for complete contact management capabilities. Search contacts by name, email, or phone number to quickly find the people you need, list recent contacts for context during conversations, and create new contacts directly from agent interactions. Update existing contact information including phone numbers, emails, addresses, company details, and notes. This tool is perfect for agents that support customer outreach, sales engagement, scheduling coordination, and customer service workflows. Keep your contact database synchronized with your CRM, auto-fill customer details during support interactions, build outreach lists from existing contacts, and maintain a clean, organized address book. All operations use the Google People API with your connected Google account credentials.

### Actions

- `list_contacts` (5 credits): List all contacts sorted by first name ascending.
- `search_contacts` (5 credits): Search contacts by name, email, phone, or other text.
- `get_contact` (5 credits): Retrieve a single contact by resource name.
- `create_contact` (5 credits): Create a new contact. At least one field must be provided in the contact object.
- `update_contact` (5 credits): Update an existing contact. Only the fields included in the contact object are modified; other fields remain unchanged.
- `delete_contact` (5 credits): Permanently delete a contact. This action is irreversible.

### Use Cases

Search contacts by name or email or phone, List recent contacts for conversation context, Create new contacts from agent interactions, Update contact phone numbers and emails, Add notes and organization details to contacts, Look up contacts by resource name, Sync contacts with external CRM systems, Auto-fill customer details during support, Build outreach lists from existing contacts, Maintain an organized address book

### Workflows Using This Tool

#### Send Flowers and Thank You Card to Google Contact

Given a person's name, search Google Contacts to retrieve their phone number and address, then order red roses with a thank-you note using the flower delivery tool.

- Page URL: https://www.agentpmt.com/agent-workflow-skills/send-red-roses-to-google-contact
- Markdown URL: https://www.agentpmt.com/agent-workflow-skills/send-red-roses-to-google-contact?format=agent-md
- Published: 2026-02-26T18:03:56.881Z

#### Gmail Smart Inbox: Filter, Draft Responses, and Discord Summary

Searches Gmail for recent unread emails, cross-references senders against Google Contacts to filter out spam and automated messages, identifies important emails from real people, drafts and saves personalized responses in Gmail for each, then posts a formatted summary of all important emails and drafted responses to a Discord channel.

- Page URL: https://www.agentpmt.com/agent-workflow-skills/gmail-search-and-discord-notification
- Markdown URL: https://www.agentpmt.com/agent-workflow-skills/gmail-search-and-discord-notification?format=agent-md
- Published: 2026-02-19T19:01:06.332Z

### Related Content

No related content is currently linked to this product.

## Advanced Tab

### DynamicMCP

- Setup page URL: https://www.agentpmt.com/dynamic-mcp
- Claude setup guide: https://www.agentpmt.com/dynamic-mcp?platform=claude#videos
- ChatGPT setup guide: https://www.agentpmt.com/dynamic-mcp?platform=chatgpt#videos
- Cursor setup guide: https://www.agentpmt.com/dynamic-mcp?platform=cursor#videos
- Windsurf setup guide: https://www.agentpmt.com/dynamic-mcp?platform=windsurf#videos

STDIO connector for Claude Code, Codex, Cursor, Zed, and other LLMs that require STDIO or custom connections. This lightweight connector routes requests to `https://api.agentpmt.com/mcp`. All tool execution happens in the cloud and the server cannot edit any files on your computer.

```bash
npm install -g @agentpmt/mcp-router
agentpmt-setup
```

### REST API

The live page renders cURL, Python, JavaScript, and Node.js examples. Logged-in users see those examples prefilled with their own API and budget credentials.

- Purchase endpoint: https://api.agentpmt.com/products/purchase
- Authorization format: `Bearer <base64(apiKey:budgetKey)>`

```bash
curl -X POST "https://api.agentpmt.com/products/purchase" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eW91ci1hcGkta2V5LWhlcmU6eW91ci1idWRnZXQta2V5LWhlcmU=" \
  -d '{
    "product_id": "697abb9f72860b342caa2962",
    "parameters": {
      "action": "list_contacts",
      "page_size": 25
    }
  }'
```

### Autonomous Agents

Do not use the abbreviated instructions in this product markdown for wallet-based invocation. Retrieve the full External Agent API markdown document instead.

- External Agent API page URL: https://www.agentpmt.com/external-agent-api
- External Agent API markdown URL: https://www.agentpmt.com/external-agent-api?format=agent-md

### Schema

#### Credentials

These runtime credentials should be provided under `parameters._credentials` when required.

- Google OAuth (`google_oauth`, oauth_token, required)
  Help: Connect your Google account.
  Connection ID: 69616abea90ed54743f01957

#### Parameters

- Schema type: actions

```json
{
  "actions": {
    "list_contacts": {
      "description": "List all contacts sorted by first name ascending.",
      "properties": {
        "page_size": {
          "type": "integer",
          "description": "Max results per page (default 25, max 200)",
          "required": false,
          "default": 25,
          "minimum": 1,
          "maximum": 200
        },
        "page_token": {
          "type": "string",
          "description": "Pagination token from a previous response",
          "required": false
        }
      }
    },
    "search_contacts": {
      "description": "Search contacts by name, email, phone, or other text.",
      "properties": {
        "query": {
          "type": "string",
          "description": "Search text to match against contact fields",
          "required": true
        },
        "page_size": {
          "type": "integer",
          "description": "Max results per page (default 25, max 200)",
          "required": false,
          "default": 25,
          "minimum": 1,
          "maximum": 200
        },
        "page_token": {
          "type": "string",
          "description": "Pagination token from a previous response",
          "required": false
        }
      }
    },
    "get_contact": {
      "description": "Retrieve a single contact by resource name.",
      "properties": {
        "resource_name": {
          "type": "string",
          "description": "Contact resource name (e.g., 'people/c1234567890'). The 'people/' prefix is optional.",
          "required": true
        }
      }
    },
    "create_contact": {
      "description": "Create a new contact. At least one field must be provided in the contact object.",
      "properties": {
        "contact": {
          "type": "object",
          "description": "Contact data. At least one field is required. Also accepts Google People API format (names, emailAddresses, phoneNumbers arrays) and plural aliases (emails, phones).",
          "required": true,
          "properties": {
            "full_name": {
              "type": "string",
              "description": "Full name / display name. Used to derive first/last name if those are not provided.",
              "required": false
            },
            "first_name": {
              "type": "string",
              "description": "Given/first name",
              "required": false
            },
            "last_name": {
              "type": "string",
              "description": "Family/last name",
              "required": false
            },
            "email": {
              "type": "string",
              "description": "Primary email address",
              "required": false
            },
            "phone": {
              "type": "string",
              "description": "Primary phone number",
              "required": false
            },
            "company": {
              "type": "string",
              "description": "Organization/company name",
              "required": false
            },
            "job_title": {
              "type": "string",
              "description": "Job title",
              "required": false
            },
            "notes": {
              "type": "string",
              "description": "Notes / biography text",
              "required": false
            },
            "address": {
              "type": "object",
              "description": "Physical address",
              "required": false,
              "properties": {
                "street_address": {
                  "type": "string",
                  "description": "Street address",
                  "required": false
                },
                "city": {
                  "type": "string",
                  "description": "City",
                  "required": false
                },
                "region": {
                  "type": "string",
                  "description": "State/region",
                  "required": false
                },
                "postal_code": {
                  "type": "string",
                  "description": "Postal/ZIP code",
                  "required": false
                },
                "country": {
                  "type": "string",
                  "description": "Country",
                  "required": false
                }
              }
            }
          }
        }
      }
    },
    "update_contact": {
      "description": "Update an existing contact. Only the fields included in the contact object are modified; other fields remain unchanged.",
      "properties": {
        "resource_name": {
          "type": "string",
          "description": "Contact resource name (e.g., 'people/c1234567890')",
          "required": true
        },
        "contact": {
          "type": "object",
          "description": "Fields to update. Same structure as create_contact. Only provided fields are changed.",
          "required": true,
          "properties": {
            "full_name": {
              "type": "string",
              "description": "Full name / display name",
              "required": false
            },
            "first_name": {
              "type": "string",
              "description": "Given/first name",
              "required": false
            },
            "last_name": {
              "type": "string",
              "description": "Family/last name",
              "required": false
            },
            "email": {
              "type": "string",
              "description": "Primary email address",
              "required": false
            },
            "phone": {
              "type": "string",
              "description": "Primary phone number",
              "required": false
            },
            "company": {
              "type": "string",
              "description": "Organization/company name",
              "required": false
            },
            "job_title": {
              "type": "string",
              "description": "Job title",
              "required": false
            },
            "notes": {
              "type": "string",
              "description": "Notes / biography text",
              "required": false
            },
            "address": {
              "type": "object",
              "description": "Physical address",
              "required": false,
              "properties": {
                "street_address": {
                  "type": "string",
                  "description": "Street address",
                  "required": false
                },
                "city": {
                  "type": "string",
                  "description": "City",
                  "required": false
                },
                "region": {
                  "type": "string",
                  "description": "State/region",
                  "required": false
                },
                "postal_code": {
                  "type": "string",
                  "description": "Postal/ZIP code",
                  "required": false
                },
                "country": {
                  "type": "string",
                  "description": "Country",
                  "required": false
                }
              }
            }
          }
        },
        "etag": {
          "type": "string",
          "description": "ETag for optimistic concurrency. If omitted, the tool fetches it automatically.",
          "required": false
        }
      }
    },
    "delete_contact": {
      "description": "Permanently delete a contact. This action is irreversible.",
      "properties": {
        "resource_name": {
          "type": "string",
          "description": "Contact resource name (e.g., 'people/c1234567890')",
          "required": true
        }
      }
    }
  },
  "properties": {
    "action": {
      "type": "string",
      "description": "Action to perform",
      "required": true,
      "enum": [
        "get_instructions",
        "list_contacts",
        "search_contacts",
        "get_contact",
        "create_contact",
        "update_contact",
        "delete_contact"
      ]
    },
    "query": {
      "type": "string",
      "description": "Search string for search_contacts (name, email, phone, etc.)",
      "required": false
    },
    "page_size": {
      "type": "integer",
      "description": "Max results per page (default 25, max 200)",
      "required": false,
      "default": 25,
      "minimum": 1,
      "maximum": 200
    },
    "page_token": {
      "type": "string",
      "description": "Pagination token from a previous list/search response",
      "required": false
    },
    "resource_name": {
      "type": "string",
      "description": "Contact resource name (e.g., 'people/c1234567890') for get_contact/update_contact/delete_contact",
      "required": false
    },
    "etag": {
      "type": "string",
      "description": "Optional ETag for update_contact. If omitted, the tool fetches it automatically.",
      "required": false
    },
    "contact": {
      "type": "object",
      "description": "Contact fields for create_contact/update_contact",
      "required": false,
      "properties": {
        "full_name": {
          "type": "string",
          "description": "Full name / display name",
          "required": false
        },
        "first_name": {
          "type": "string",
          "description": "Given/first name",
          "required": false
        },
        "last_name": {
          "type": "string",
          "description": "Family/last name",
          "required": false
        },
        "email": {
          "type": "string",
          "description": "Primary email address",
          "required": false
        },
        "phone": {
          "type": "string",
          "description": "Primary phone number",
          "required": false
        },
        "company": {
          "type": "string",
          "description": "Organization/company name",
          "required": false
        },
        "job_title": {
          "type": "string",
          "description": "Job title",
          "required": false
        },
        "notes": {
          "type": "string",
          "description": "Notes / biography text",
          "required": false
        },
        "address": {
          "type": "object",
          "description": "Optional single address",
          "required": false,
          "properties": {
            "street_address": {
              "type": "string",
              "required": false
            },
            "city": {
              "type": "string",
              "required": false
            },
            "region": {
              "type": "string",
              "description": "State/region",
              "required": false
            },
            "postal_code": {
              "type": "string",
              "required": false
            },
            "country": {
              "type": "string",
              "required": false
            }
          }
        }
      }
    }
  }
}
```

### Usage Instructions

# Google Contacts

## Overview
Manage your Google Contacts: list, search, create, update, and delete contacts. Supports both simple flat-field input and canonical Google People API format for maximum flexibility.

## Actions

### list_contacts
List all contacts sorted by first name ascending.

**Required fields:** none (just the action)

**Optional fields:**
- `page_size` (integer, 1-200, default 25) - number of contacts per page
- `page_token` (string) - pagination token from a previous response

**Example:**
```json
{
  "action": "list_contacts",
  "page_size": 50
}
```

**Response includes:** array of contacts (each with resource_name, etag, name, first_name, last_name, emails, phones, company, job_title, notes, addresses) and `next_page_token` if more results exist.

---

### search_contacts
Search contacts by name, email, phone, or other text.

**Required fields:**
- `query` (string) - search text to match against contact fields

**Optional fields:**
- `page_size` (integer, 1-200, default 25)
- `page_token` (string)

**Example:**
```json
{
  "action": "search_contacts",
  "query": "Jane Smith",
  "page_size": 10
}
```

---

### get_contact
Retrieve a single contact by resource name.

**Required fields:**
- `resource_name` (string) - contact identifier, e.g. `"people/c1234567890"`

**Example:**
```json
{
  "action": "get_contact",
  "resource_name": "people/c1234567890"
}
```

**Note:** You can pass the ID with or without the `people/` prefix; it will be normalized automatically.

---

### create_contact
Create a new contact. At least one field must be provided in the `contact` object.

**Required fields:**
- `contact` (object) - contact data with at least one field

**Contact object fields (all optional, but at least one required):**
- `first_name` (string) - given name
- `last_name` (string) - family name
- `full_name` (string) - display name (used to derive first/last if those are not provided; splits on spaces)
- `email` (string) - primary email address
- `phone` (string) - primary phone number
- `company` (string) - organization name
- `job_title` (string) - job title
- `notes` (string) - free-text notes
- `address` (object) - with fields: `street_address`, `city`, `region`, `postal_code`, `country`

**Example:**
```json
{
  "action": "create_contact",
  "contact": {
    "first_name": "Jane",
    "last_name": "Smith",
    "email": "jane.smith@example.com",
    "phone": "+1-555-867-5309",
    "company": "Acme Corp",
    "job_title": "VP of Engineering",
    "notes": "Met at the 2026 tech conference",
    "address": {
      "street_address": "123 Main St",
      "city": "San Francisco",
      "region": "CA",
      "postal_code": "94105",
      "country": "US"
    }
  }
}
```

**Alternative input formats:** The contact object also accepts canonical Google People API format (e.g. `names`, `emailAddresses`, `phoneNumbers` arrays) and plural aliases (`emails`, `phones` arrays). The first element of each array is used.

---

### update_contact
Update an existing contact. Only the fields you include in the `contact` object will be modified; other fields remain unchanged.

**Required fields:**
- `resource_name` (string) - the contact to update, e.g. `"people/c1234567890"`
- `contact` (object) - fields to update (same structure as create_contact)

**Optional fields:**
- `etag` (string) - ETag for optimistic concurrency. If omitted, the tool fetches the current ETag automatically.

**Example:**
```json
{
  "action": "update_contact",
  "resource_name": "people/c1234567890",
  "contact": {
    "job_title": "CTO",
    "company": "New Ventures Inc"
  }
}
```

**Note:** The update mask is automatically derived from the fields you provide. For example, providing `email` updates only the emailAddresses field on the contact.

---

### delete_contact
Permanently delete a contact.

**Required fields:**
- `resource_name` (string) - the contact to delete, e.g. `"people/c1234567890"`

**Example:**
```json
{
  "action": "delete_contact",
  "resource_name": "people/c1234567890"
}
```

**Warning:** This action is irreversible. The contact is permanently removed.

---

## Common Workflows

### 1. Find and Update a Contact
Search for a contact, then update their information:
1. `search_contacts` with `query: "Jane Smith"` to find the contact
2. Note the `resource_name` from the result (e.g. `"people/c1234567890"`)
3. `update_contact` with that `resource_name` and the fields to change

### 2. Export a Contact List
Retrieve all contacts with pagination:
1. `list_contacts` with `page_size: 200` (maximum per page)
2. If `next_page_token` is returned, call `list_contacts` again with that `page_token`
3. Repeat until no `next_page_token` is returned

### 3. Add a New Contact and Verify
Create a contact and confirm it was saved:
1. `create_contact` with the contact details
2. Note the `resource_name` from the response
3. `get_contact` with that `resource_name` to verify all fields were saved correctly

## Important Notes
- **Pagination:** Maximum `page_size` is 200. Default is 25. Use `next_page_token` to retrieve additional pages.
- **Resource names:** Contact identifiers look like `"people/c1234567890"`. You can pass just the ID portion (e.g. `"c1234567890"`) and it will be normalized.
- **Name derivation:** If you provide `full_name` without `first_name`/`last_name`, the tool splits on spaces: first word becomes given name, remaining words become family name.
- **Update behavior:** Only fields included in the `contact` object are updated. Omitted fields are not cleared.
- **ETag handling:** For updates, the ETag is fetched automatically if not provided. You can pass the `etag` from a previous get/list response for optimistic concurrency control.
- **Single values only:** The flat input format (`email`, `phone`) stores one value per field. If you need multiple emails or phones, use the People API array format (`emailAddresses`, `phoneNumbers`), though only the first entry in each array is used.
- **Sorting:** `list_contacts` always returns results sorted by first name ascending.
- **Delete is permanent:** There is no undo for `delete_contact`.

### About The Developer

- Vendor name: Apoth3osis
- Website: apoth3osis.io

We build tools that enable AI agents to excel in the mathematical realm.

Our small team develops experimental and unique solutions in the AI arena, with a strong focus on modular computing for agentic applications and custom model deployment. We have handled projects for a variety of applications across many sectors, from algorithmic trading and financial analysis, to molecular simulations and predictions, to habitat and biodiversity monitoring and wildlife conservation.

### Frequently Asked Questions

No linked FAQs are currently available.

### Dependencies

This product has no public dependency products.