skills/google-contacts/SKILL.md
Google Contacts connector to list, search, create, update, and delete a user's contacts Use when an agent needs google contacts, 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, create contact, contact, delete contact through AgentPMT-hosted remote tool calls. Discovery terms: google contacts, search contacts by name or email or phone.
npx skillsauth add AgentPMT/agent-skills google-contactsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Last updated: 2026-06-24.
If the current date is more than 7 days after the last updated date, reinstall this skill from skills.sh or ClawHub before relying on endpoints, schemas, setup steps, or examples.
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.
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.
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 pagepage_token (string) - pagination token from a previous responseExample:
{
"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 by name, email, phone, or other text.
Required fields:
query (string) - search text to match against contact fieldsOptional fields:
page_size (integer, 1-200, default 25)page_token (string)Example:
{
"action": "search_contacts",
"query": "Jane Smith",
"page_size": 10
}
Retrieve a single contact by resource name.
Required fields:
resource_name (string) - contact identifier, e.g. "people/c1234567890"Example:
{
"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 a new contact. At least one field must be provided in the contact object.
Required fields:
contact (object) - contact data with at least one fieldContact object fields (all optional, but at least one required):
first_name (string) - given namelast_name (string) - family namefull_name (string) - display name (used to derive first/last if those are not provided; splits on spaces)email (string) - primary email addressphone (string) - primary phone numbercompany (string) - organization namejob_title (string) - job titlenotes (string) - free-text notesaddress (object) - with fields: street_address, city, region, postal_code, countryExample:
{
"action": "create_contact",
"contact": {
"first_name": "Jane",
"last_name": "Smith",
"email": "[email protected]",
"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 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:
{
"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.
Permanently delete a contact.
Required fields:
resource_name (string) - the contact to delete, e.g. "people/c1234567890"Example:
{
"action": "delete_contact",
"resource_name": "people/c1234567890"
}
Warning: This action is irreversible. The contact is permanently removed.
Search for a contact, then update their information:
search_contacts with query: "Jane Smith" to find the contactresource_name from the result (e.g. "people/c1234567890")update_contact with that resource_name and the fields to changeRetrieve all contacts with pagination:
list_contacts with page_size: 200 (maximum per page)next_page_token is returned, call list_contacts again with that page_tokennext_page_token is returnedCreate a contact and confirm it was saved:
create_contact with the contact detailsresource_name from the responseget_contact with that resource_name to verify all fields were saved correctlypage_size is 200. Default is 25. Use next_page_token to retrieve additional pages."people/c1234567890". You can pass just the ID portion (e.g. "c1234567890") and it will be normalized.full_name without first_name/last_name, the tool splits on spaces: first word becomes given name, remaining words become family name.contact object are updated. Omitted fields are not cleared.etag from a previous get/list response for optimistic concurrency control.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.list_contacts always returns results sorted by first name ascending.delete_contact.Google Contacts on AgentPMT.create_contact, delete_contact, get_contact, list_contacts, search_contacts, update_contact.No categories or industry tags are published for this tool.
Complete generated action schema: ./schema.md.
Supported action count: 6.
x402 availability: not enabled for this product.
create_contact (action slug: create-contact): Create a new contact. At least one field must be provided in the contact object. Price: 5 credits. Parameters: contact.delete_contact (action slug: delete-contact): Permanently delete a contact. This action is irreversible. Price: 5 credits. Parameters: resource_name.get_contact (action slug: get-contact): Retrieve a single contact by resource name. Price: 5 credits. Parameters: resource_name.list_contacts (action slug: list-contacts): List all contacts sorted by first name ascending. Price: 5 credits. Parameters: page_size, page_token.search_contacts (action slug: search-contacts): Search contacts by name, email, phone, or other text. Price: 5 credits. Parameters: page_size, page_token, query.update_contact (action slug: update-contact): Update an existing contact. Only the fields included in the contact object are modified; other fields remain unchanged. Price: 5 credits. Parameters: contact, etag, resource_name.Use the compact schema above for ordinary calls. Before a new production integration, or whenever parameters, enum values, nested objects, outputs, or examples are unclear, fetch live details first.
agentpmt-tool-search-and-execution with action: "get_schema", and tool_id: "google-contacts".agentpmt-tool-search-and-execution with action: "get_instructions" and tool_id: "google-contacts", or call this product with action: "get_instructions" when the product tool is already selected.MCP schema lookup through the main AgentPMT MCP server:
{
"method": "tools/call",
"params": {
"name": "AgentPMT-Tool-Search-and-Execution",
"arguments": {
"action": "get_schema",
"tool_id": "google-contacts"
}
}
}
For live examples, keep the same MCP tool and use these arguments:
{
"action": "get_instructions",
"tool_id": "google-contacts"
}
Authenticated AgentPMT REST schema lookup body:
{
"name": "agentpmt-tool-search-and-execution",
"parameters": {
"action": "get_schema",
"tool_id": "google-contacts"
}
}
Authenticated AgentPMT REST live examples body:
{
"name": "agentpmt-tool-search-and-execution",
"parameters": {
"action": "get_instructions",
"tool_id": "google-contacts"
}
}
Product slug: google-contacts
Marketplace page: https://www.agentpmt.com/marketplace/google-contacts
../agentpmt-account-mcp-rest-api-setup to connect the main MCP server or REST API for an Agent Group where this tool is enabled.../what-is-agentpmt for marketplace, Agent Group, workflow, MCP, REST, and payment concepts.If those setup skills are not installed beside this product skill, use the downloads below.
Core AgentPMT setup skills:
openclaw skills install what-is-agentpmtnpx skills add AgentPMT/agent-skills --skill what-is-agentpmtopenclaw skills install agentpmt-account-mcp-rest-api-setupnpx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setupskills.sh install script:
npx skills add AgentPMT/agent-skills --skill what-is-agentpmt
npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup
MCP call shape after the main AgentPMT MCP server is connected:
{
"method": "tools/call",
"params": {
"name": "Google-Contacts",
"arguments": {
"action": "create_contact",
"contact": {
"address": {
"city": "example city",
"country": "example country",
"postal_code": "example postal code",
"region": "example region",
"street_address": "example street address"
},
"company": "example company",
"email": "[email protected]",
"first_name": "example first name",
"full_name": "example full name",
"job_title": "example job title",
"last_name": "example last name",
"notes": "example notes"
}
}
}
}
Use the exact tool name returned by tools/list; the name above is the expected readable form.
Authenticated AgentPMT REST call body:
{
"name": "google-contacts",
"parameters": {
"action": "create_contact",
"contact": {
"address": {
"city": "example city",
"country": "example country",
"postal_code": "example postal code",
"region": "example region",
"street_address": "example street address"
},
"company": "example company",
"email": "[email protected]",
"first_name": "example first name",
"full_name": "example full name",
"job_title": "example job title",
"last_name": "example last name",
"notes": "example notes"
}
}
}
Use the setup skill for the account connection details before making REST calls.
passed or success-style boolean, use it as the workflow gate.get_schema or get_instructions before retrying.create_contact fails, preserve the request parameters and retry only after fixing schema, auth, or payment errors.what-is-agentpmt, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: npx skills add AgentPMT/agent-skills --skill what-is-agentpmt)agentpmt-account-mcp-rest-api-setup, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup)tools
Plaud Transcripts Corrected With Your Own Terminology Glossary: Fixes the words your transcription keeps getting wrong, by giving the pipeline your vocabulary instead of hoping a bigger model guesses right. Every speech model mangles terms it has never seen: cell line and reagent names, drug and device names, case and matter numbers, part numbers, local spelling and number conventions, team and client names. Swapping to a different model does not fix this, because none of them have your terms e.
tools
Plaud Spoken Field Notes to a Structured Sheet: Turns a spoken site visit into a filled-in spreadsheet row, so measurements and specs never get typed up twice. Built for anyone who dictates structured details on the job rather than writing them down: window and flooring measurements, equipment specs, inspection findings, punch lists, service call notes. Say the details out loud in the same order each visit (client, room, width, drop, colour, notes) and the workflow reads each new Plaud recordin.
development
Plaud Recordings to Google Calendar Events: Puts the meetings you agree to out loud straight onto your Google Calendar, without Zapier in the middle. Plaud's own app has no Calendar integration, so this closes that gap directly: each new recording is scanned, the transcript pulled, and any genuine scheduling commitment spoken in it ("let's do Tuesday at 3", "I'll come back out Thursday morning") is extracted with the relative date resolved against the recording's own date and your timezone. Eac.
development
One Plaud Recording, Several Differently Formatted Summaries: Gets you past the one-template-per-recording ceiling. The Plaud app applies a single AutoFlow template to a recording, so if you want a short recap for yourself, a decisions-only version for the people who missed it, and a clean action list for your task manager, you are re-running or rewriting by hand. This workflow reads the transcript once and produces every format you have defined in a single pass: you list the output formats you.