# Googlecontacts

Access and manage Google Contacts data via the Google People API

- **Category:** productivity
- **Auth:** OAUTH2
- **Composio Managed App Available?** No
- **Tools:** 24
- **Triggers:** 0
- **Slug:** `GOOGLECONTACTS`
- **Version:** 00000000_00

## Tools

### Batch create contacts

**Slug:** `GOOGLECONTACTS_BATCH_CREATE_CONTACTS`

Create a batch of new contacts in Google Contacts. This action creates up to 200 contacts in a single API call and returns the PersonResponses for the newly created contacts. Use this action when you need to create multiple contacts at once to reduce API calls and improve performance. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. Note: The contacts array accepts Person objects with any valid People API fields (names, emailAddresses, phoneNumbers, addresses, organizations, etc.). Each contact must be wrapped in a 'contactPerson' object.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | List of source types to include in the response. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not specified. |
| `contacts` | array | Yes | List of contacts to create. Each contact must have a 'contactPerson' field with the Person data. Supports up to 200 contacts per request. |
| `readMask` | string | Yes | Comma-separated list of contact fields to return (e.g., 'names,emailAddresses,phoneNumbers'). If empty, post-mutate-get is skipped and no person data is returned. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch get contact groups

**Slug:** `GOOGLECONTACTS_BATCH_GET_CONTACT_GROUPS`

Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names. Use when you need to retrieve details for specific contact groups, such as getting group metadata, member counts, or group names for multiple groups in a single API call.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `max_members` | integer | No | Specifies the maximum number of members to return for each group. If not set, all members are returned. |
| `group_fields` | string | No | A field mask to restrict which fields are returned in the contact group. Valid values: clientData, groupType, memberCount, metadata, name. Comma-separated for multiple fields. |
| `resource_names` | array | Yes | The resource names of the contact groups to get. You can specify up to 200 contact groups. Format: contactGroups/{contactGroupId}. Use 'contactGroups/myContacts' for the authenticated user's My Contacts group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch Update Google Contacts

**Slug:** `GOOGLECONTACTS_BATCH_UPDATE_CONTACTS`

Update a batch of contacts in Google Contacts and return the updated contact data. Use this action when you need to modify multiple contacts at once, such as: - Updating names, phone numbers, or email addresses for several contacts - Making bulk changes to contact information - Syncing contact data from another source This action allows updating up to 200 contacts per request. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | Optional. Mask of source types to include in the response. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not specified. Valid values: READ_SOURCE_TYPE_CONTACT, READ_SOURCE_TYPE_PROFILE, READ_SOURCE_TYPE_DOMAIN_CONTACT, READ_SOURCE_TYPE_DOMAIN_PROFILE |
| `contacts` | object | Yes | A map of resource names to PersonData to update. Keys are resource names (e.g., "people/123", "contacts/456") and values are PersonData objects with the fields to update. Common fields include: names (list of Name objects with givenName, familyName, displayName), phoneNumbers, emailAddresses, addresses, organizations, etc. Must include an 'etag' field if updating an existing contact to prevent conflicts. |
| `readMask` | string | Yes | A comma-separated list of fields to return in the response. If empty, the response will not include person data. Example: "names,phoneNumbers,emailAddresses"  |
| `updateMask` | string | Yes | A comma-separated list of field paths to update. Common values: names, phoneNumbers, emailAddresses, addresses, organizations, biographies, birthdays, occupations. Example: "names,phoneNumbers,emailAddresses"  |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Copy Other Contact to My Contacts

**Slug:** `GOOGLECONTACTS_COPY_OTHER_CONTACT_TO_MY_CONTACTS`

Copies an Other contact to a new contact in the user's myContacts group. Use this action when you need to save an existing "Other contact" (from Google's contact suggestions) to your permanent contacts in the myContacts group. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | Mask of source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set. |
| `copy_mask` | array | Yes | Field mask to restrict which fields are copied from the source contact. Valid values: emailAddresses, names, phoneNumbers |
| `read_mask` | string | No | Field mask to restrict which fields are returned in the copied contact. Defaults to copyMask with metadata and membership fields if not set. Multiple fields are separated by commas. |
| `other_contacts_id` | string | Yes | The resource name of the Other contact to copy. Format: otherContacts/{otherContactId} |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact

**Slug:** `GOOGLECONTACTS_CREATE_CONTACT`

Create a new contact in Google Contacts and return the person resource for that contact. Use when you need to add a new person to the authenticated user's Google Contacts. The request returns a 400 error if more than one field is specified on a field that is a singleton for contact sources: biographies, birthdays, genders, or names. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. This action creates a single contact; for bulk creation of multiple contacts, use GOOGLECONTACTS_BATCH_CREATE_CONTACTS instead. Note: Only the primary entry for singleton fields (biographies, birthdays, genders, names) will be saved for contact sources.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urls` | array | No | List of URLs for the contact. |
| `names` | array | No | List of names for the contact. For contact sources, only the primary name is allowed. |
| `events` | array | No | List of events for the contact. |
| `skills` | array | No | List of skills for the contact. |
| `genders` | array | No | List of genders for the contact. For contact sources, only the primary gender is allowed. |
| `locales` | array | No | List of locales for the contact. |
| `sources` | array | No | A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not specified. |
| `fileAses` | array | No | List of file-as entries for the contact. |
| `addresses` | array | No | List of addresses for the contact. |
| `birthdays` | array | No | List of birthdays for the contact. For contact sources, only the primary birthday is allowed. |
| `imClients` | array | No | List of IM clients for the contact. |
| `interests` | array | No | List of interests for the contact. |
| `locations` | array | No | List of locations for the contact. |
| `nicknames` | array | No | List of nicknames for the contact. |
| `relations` | array | No | List of relations for the contact. |
| `clientData` | array | No | List of client data entries for the contact. |
| `biographies` | array | No | List of biographies for the contact. For contact sources, only the primary biography is allowed. |
| `externalIds` | array | No | List of external IDs for the contact. |
| `memberships` | array | No | List of memberships for the contact. |
| `occupations` | array | No | List of occupations for the contact. |
| `userDefined` | array | No | List of user-defined fields for the contact. |
| `calendarUrls` | array | No | List of calendar URLs for the contact. |
| `miscKeywords` | array | No | List of misc keywords for the contact. |
| `personFields` | string | Yes | Required. A field mask to restrict which fields are returned on the created contact. Comma-separated list of supported fields: names, emailAddresses, phoneNumbers, addresses, organizations, birthdays, biographies, genders, nicknames, occupations, relations, events, imClients, urls, sipAddresses, skills, interests, locales, locations, calendarsUrls, externalIds, fileAses, clientData, userDefined, memberships, miscKeywords, metadata, photos, coverPhotos, ageRanges, residences. At minimum, 'names' should be included to identify the contact. |
| `phoneNumbers` | array | No | List of phone numbers for the contact. |
| `sipAddresses` | array | No | List of SIP addresses for the contact. |
| `organizations` | array | No | List of organizations for the contact. |
| `emailAddresses` | array | No | List of email addresses for the contact. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact Group

**Slug:** `GOOGLECONTACTS_CREATE_CONTACT_GROUP`

Create a new contact group owned by the authenticated user. The group name must be unique among the user's contact groups. Use this action when you need to create a new contact group to organize the user's Google Contacts. Attempting to create a group with a duplicate name will return an HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_group` | object | Yes | The contact group to create. Must contain at least a 'name' field with the group name. |
| `read_group_fields` | string | No | Optional. A field mask to restrict which fields on the created contact group are returned. Defaults to 'metadata', 'groupType', and 'name' if not set or empty. Valid fields: 'clientData', 'groupType', 'metadata', 'name'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Google Contact

**Slug:** `GOOGLECONTACTS_DELETE_CONTACT`

Delete a contact person from Google Contacts. Any non-contact data will not be deleted. Use this action when you need to permanently remove a contact from the user's Google Contacts list. This action is irreversible — the contact cannot be recovered once deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resource_name` | string | Yes | The resource name of the contact to delete. Format: people/{personId} or contacts/{contactId} |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete contact group

**Slug:** `GOOGLECONTACTS_DELETE_CONTACT_GROUP`

Deletes an existing contact group owned by the authenticated user by specifying the contact group resource name. This action is irreversible — once deleted, the contact group cannot be recovered. Use this action when you need to remove a contact group that is no longer needed. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `delete_contacts` | boolean | No | Optional. If set to true, also deletes all contacts in the specified contact group. Defaults to false, which only deletes the contact group itself. |
| `contact_group_id` | string | Yes | The resource name of the contact group to delete. This is typically in the format 'contactGroups/{id}', for example 'contactGroups/79d41ce0f0139ea'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Contact Photo

**Slug:** `GOOGLECONTACTS_DELETE_CONTACT_PHOTO`

Delete a contact's photo from Google Contacts. Use when you need to remove a profile picture from a specific contact. This action is irreversible — once the photo is deleted, it cannot be recovered. Mutate requests for the same user should be sent sequentially to avoid lock contention and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | A mask of what source types to return on the person. Common values include 'READ_SOURCE_TYPE_CONTACT' and 'READ_SOURCE_TYPE_PROFILE'. |
| `person_fields` | string | No | A field mask to restrict which fields are returned on the person after the photo is deleted. If not specified, the person data is not returned. |
| `resource_name` | string | Yes | The resource name of the contact whose photo will be deleted. Format: people/{personId} |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch Delete Google Contacts

**Slug:** `GOOGLECONTACTS_DELETE_CONTACTS_BATCH`

Delete a batch of contacts from Google Contacts. Any non-contact data will not be deleted. Use this action when you need to permanently remove multiple contacts from the user's Google Contacts list at once. This action is irreversible — the contacts cannot be recovered once deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `resourceNames` | array | Yes | The resource names of the contacts to delete. Each resource name must be in the format 'people/{personId}' or 'contactEntities/{contactId}'. Maximum 500 contacts can be deleted in a single request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Batch get people

**Slug:** `GOOGLECONTACTS_GET_BATCH_PEOPLE`

Batch retrieves information about multiple people from Google Contacts. Use this action when you need to fetch contact information for several people in a single API call rather than making individual requests per person. This improves efficiency when you need data from multiple contacts at once. Note: The personFields parameter is required and determines which contact information fields are returned in the response. If a person cannot be found, the corresponding response will contain a status but no person data.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | A mask specifying which source types to return. If not specified, all sources are returned. |
| `personFields` | string | Yes | A field mask specifying which fields to return (comma-separated). Valid values include: addresses, ageRanges, biographies, birthdays, calendarUrls, clientData, coverPhotos, emailAddresses, events, externalIds, fileAses, genders, imClients, interests, locales, locations, memberships, metadata, miscKeywords, names, nicknames, occupations, organizations, phoneNumbers, photos, relations, sipAddresses, skills, snippets, urls, userDomains. |
| `resourceNames` | array | Yes | List of resource names of people to retrieve. Use 'people/me' for the authenticated user. Maximum 200 per request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Contact Group

**Slug:** `GOOGLECONTACTS_GET_CONTACT_GROUP`

Retrieves a specific contact group owned by the authenticated user by specifying the contact group resource name. Use when you need to get details about a specific contact group, including its name, member count, and metadata. This is a read-only operation that fetches an existing contact group when you already know its resource name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `max_members` | integer | No | The maximum number of members to return. If the number of members in the contact group exceeds this limit, only the first 'maxMembers' members are returned. If not specified, a default limit is applied. |
| `group_fields` | string | No | A field mask to restrict which fields are returned in the contact group response. Multiple fields can be specified as a comma-separated list. For example: 'metadata,groupType,memberCount,name'. If not specified, returns 'metadata', 'groupType', 'memberCount', and 'name' by default. |
| `contact_group_id` | string | Yes | The resource name of the contact group to get. This is typically in the format 'contactGroups/{id}', for example 'contactGroups/myContacts' or 'contactGroups/79d41ce0f0139ea'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Person

**Slug:** `GOOGLECONTACTS_GET_PERSON`

Provides information about a person by specifying a resource name. Use when you need to retrieve detailed information about a specific person, including their names, email addresses, phone numbers, organizations, and other profile data. Use 'people/me' as the resource name to get the authenticated user's profile. The request will return a 400 error if 'personFields' is not specified.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | List of source types to include in the response. |
| `personFields` | string | Yes | Required. A field mask to restrict which fields are returned. Comma-separated list of supported fields: names, emailAddresses, phoneNumbers, addresses, organizations, birthdays, biographies, ages, events, genders, imClients, interests, locales, miscKeywords, nicknames, occupations, relations, residences, sipAddresses, skills, urls, userDefined, photos, coverPhotos, memberships, clientData, externalIds, fileAses, calendarUrls. |
| `resourceName` | string | Yes | The resource name of the person to get. Use 'people/me' to get the authenticated user. Use 'people/{account_id}' for a Google account, or the contact resource name for contacts. |
| `requestMask.includeField` | string | No | Comma-separated list of additional person fields to include in the response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Connections

**Slug:** `GOOGLECONTACTS_LIST_CONNECTIONS`

Lists the connections (contacts) for the authenticated user. Use when you need to retrieve a paginated list of all contacts with optional sorting, filtering, and incremental sync support. Sync tokens expire 7 days after a full sync — requests with expired tokens return a 410 error. When using page_token or sync_token, all other parameters must match the original request. Deleted contacts appear as Person objects with PersonMetadata.deleted set to true. Incremental syncs are not intended for read-after-write use cases.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | The number of connections to include in the response. Maximum 1000. |
| `person_id` | string | No | Resource name of the person whose connections to list. Use 'me' for the authenticated user. Only 'people/me' is valid. |
| `page_token` | string | No | A page token received from a previous list call. When specified, all other request parameters must match the first call. |
| `sort_order` | string ("LAST_MODIFIED_ASCENDING" | "LAST_MODIFIED_DESCENDING" | "FIRST_NAME_ASCENDING" | "LAST_NAME_ASCENDING") | No | Sort order for contacts. |
| `sync_token` | string | No | A sync token returned by a previous list call. When specified, all other request parameters must match the first call. Expires 7 days after full sync. If expired, returns a 410 error. |
| `person_fields` | string | No | A field mask to restrict which fields are returned. Comma-separated list of fields (e.g., 'names,emailAddresses,phoneNumbers'). |
| `request_sync_token` | boolean | No | Whether the response should return nextSyncToken for incremental sync. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Contact Groups

**Slug:** `GOOGLECONTACTS_LIST_CONTACT_GROUPS`

List all contact groups owned by the authenticated user. Use when you need to retrieve all contact groups (e.g., "My Contacts", "Starred", custom groups) for organizing or managing contacts. Members of the contact groups are not populated in this response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page_size` | integer | No | The maximum number of resources to return. Valid values are 1 to 1000. Default is 30. |
| `page_token` | string | No | The nextPageToken value returned from a previous list call, to request the next page of results. |
| `sync_token` | string | No | A sync token returned by a previous list call. When provided, only changes since that sync are returned. |
| `group_fields` | string | No | A field mask to restrict which fields are returned. Valid values: clientData, groupType, memberCount, metadata, name. Defaults to metadata,groupType,memberCount,name if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Directory People

**Slug:** `GOOGLECONTACTS_LIST_DIRECTORY_PEOPLE`

Lists domain profiles and domain contacts in the authenticated user's domain directory. Use when you need to retrieve directory information for all users in a Google Workspace domain, including their contact details like names, emails, and phone numbers. Supports pagination via pageToken and incremental sync via syncToken. When syncToken is used, deleted resources are returned with PersonMetadata.deleted set to true. Note: Write propagation delays of several minutes may apply for sync requests — this is not suitable for read-after-write use cases. All request parameters must remain consistent when using pagination or sync tokens.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | Yes | Directory sources to return. Use 'DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT' for domain contacts and 'DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE' for domain profiles. |
| `pageSize` | integer | No | The number of people to include in the response. Maximum 1000. Default is 100. |
| `readMask` | string | Yes | A field mask to restrict which fields are returned. Comma-separated list of field names (e.g., 'names,emailAddresses,phoneNumbers'). |
| `pageToken` | string | No | A page token received from a previous list call. Use to retrieve subsequent pages of results. |
| `syncToken` | string | No | A sync token returned by a previous list call. When specified, only resources changed since that token are returned. |
| `mergeSources` | array | No | Additional directory sources to merge into the results. Same source type values as sources. |
| `requestSyncToken` | boolean | No | Whether the response should return a nextSyncToken for incremental sync. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Other Contacts

**Slug:** `GOOGLECONTACTS_LIST_OTHER_CONTACTS`

Lists "Other contacts" from Google People API. Other contacts are contacts that are not in a contact group, typically auto-created from interactions like emails sent or received. Use this action when you need to retrieve contacts that exist outside of organized contact groups, such as auto-generated contacts from email communications. Sync tokens expire 7 days after a full sync. If you receive an EXPIRED_SYNC_TOKEN error, make a new request without a sync_token. The first page of a full sync has a fixed quota that cannot be increased. When using pageToken or syncToken, all other request parameters must match the original call.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sources` | array | No | A mask of what source types to return. If not specified, defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE. |
| `page_size` | integer | No | The number of other contacts to include in the response. Minimum 1, maximum 1000. Default is 25. |
| `read_mask` | string | Yes | A field mask to restrict which fields are returned. Comma-separated list of field names (e.g., 'names,emailAddresses,phoneNumbers'). Valid fields: names, emailAddresses, phoneNumbers, photos, metadata. |
| `page_token` | string | No | A page token received from a previous list call. Use this to get the next page of results. |
| `sync_token` | string | No | A sync token to retrieve contacts changed since the last sync. When specified, only contacts modified after this token will be returned. |
| `request_sync_token` | boolean | No | Whether the response should include nextSyncToken. Set to true to enable incremental sync. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Modify Contact Group Members

**Slug:** `GOOGLECONTACTS_MODIFY_CONTACT_GROUP_MEMBERS`

Modifies the members of a contact group by adding or removing contact resource names. Only system contact groups 'contactGroups/myContacts' and 'contactGroups/starred' can have members added. Other system contact groups are deprecated and can only have contacts removed. Use when you need to add contacts to or remove contacts from a contact group. Note: Combined total of contacts to add and remove cannot exceed 1000 per request.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact_group_id` | string | Yes | The resource name of the contact group to modify. Format: contactGroups/{contact_group_id}. Use 'myContacts' for the authenticated user's main contact group or 'starred' for starred contacts. |
| `resource_names_to_add` | array | No | Resource names of contacts to add to the group in format 'people/{person_id}'. Only 'contactGroups/myContacts' and 'contactGroups/starred' accept new members. Other system groups are deprecated. |
| `resource_names_to_remove` | array | No | Resource names of contacts to remove from the group in format 'people/{person_id}'. Can be used with any contact group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Contacts

**Slug:** `GOOGLECONTACTS_SEARCH_CONTACTS`

Searches the authenticated user's contacts for matches against the provided query. The query matches against names, nicknames, email addresses, phone numbers, and organizations. Use this action when you need to find specific contacts in the user's Google Contacts by name, email, phone, or organization. Clients should send a warmup request with an empty query before searching to update the cache. Results are limited to contacts from the CONTACT source.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | The plain-text query for the request. The query matches against a contact's names, nickNames, emailAddresses, phoneNumbers, and organizations fields. To search without a query (for cache warming), provide an empty string. |
| `sources` | array | No | Optional list of source types to return. If not specified or empty, all sources are returned. Supported values: CONTACT (user's saved contacts), PROFILE (user's profile data). |
| `page_size` | integer | No | The number of results to return. Valid range is 0-100. If set to 0 or not specified, defaults to 10 results. Values greater than 30 are capped to 30 by the API. |
| `read_mask` | string | No | A field mask to restrict which fields are returned for each contact. Provide a comma-separated list of field names (e.g., 'names,emailAddresses,phoneNumbers'). Invalid fields are silently ignored. Common fields: names, emailAddresses, phoneNumbers, organizations, addresses, birthdays. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Domain Directory People

**Slug:** `GOOGLECONTACTS_SEARCH_DIRECTORY_PEOPLE`

Search domain directory people in Google Contacts. Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query. Use this action when you need to find people within your organization's Google Workspace domain by searching their names or email addresses. This action requires the https://www.googleapis.com/auth/directory.readonly OAuth scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Prefix query that matches fields in the person (e.g., name, email). Does not use readMask for determining match fields. |
| `sources` | array | Yes | Directory sources to return. Use DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT for domain contacts and DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE for domain profiles. |
| `page_size` | integer | No | The number of people to include in the response. Valid values: 1-500. Defaults to 25. |
| `read_mask` | string | Yes | A field mask to restrict which fields are returned. Multiple fields should be comma-separated (e.g., 'names,emailAddresses,phoneNumbers'). Valid values: addresses, ageRanges, biographies, birthdays, calendarUrls, clientData, coverPhotos, emailAddresses, events, externalIds, genders, imClients, interests, locales, locations, memberships, metadata, miscKeywords, names, nicknames, occupations, organizations, phoneNumbers, photos, relations, sipAddresses, skills, urls, userDefined. |
| `page_token` | string | No | A page token received from a previous search call. Must match the first call's parameters. |
| `merge_sources` | array | No | Additional data to merge into directory sources if connected through verified join keys (email addresses or phone numbers). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search Other Contacts

**Slug:** `GOOGLECONTACTS_SEARCH_OTHER_CONTACTS`

Searches other contacts from Google People API that match a query string. Other contacts are contacts not in any contact group, typically auto-created from interactions like emails sent or received. This action searches across names, email addresses, and phone numbers using prefix matching. Use this action when you need to find a specific contact among the authenticated user's other contacts by searching for a name, email, or phone number. Note: The Google People API recommends sending a warmup request with an empty query before the first search to update the cache, ensuring fresh results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | The plain-text query to search for in other contacts. Matches prefix phrases across names, email addresses, and phone numbers. For example, 'j' matches 'John Doe' and 'Jane Smith'. |
| `page_size` | integer | No | The number of results to return. Minimum 1, maximum 30. Default is 25. Values above 30 are capped to 30 by the API. |
| `read_mask` | string | Yes | A field mask to restrict which fields are returned. Comma-separated list of field names (e.g., 'names,emailAddresses,phoneNumbers'). Valid fields: names, emailAddresses, phoneNumbers, photos, metadata. |
| `page_token` | string | No | A page token received from a previous search call. Use this to retrieve the next page of results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Google Contact

**Slug:** `GOOGLECONTACTS_UPDATE_CONTACT`

Update contact data for an existing contact person. Any non-contact data will not be modified. Use this action when you need to update information (such as name, email, phone) for an existing contact in Google Contacts. Important notes: - All fields specified in `update_person_fields` will be replaced. Fields not specified in the update mask will remain unchanged. - The `etag` field in the request body is required for optimistic concurrency control. - The server returns a 400 error if the contact has been modified since it was read (etag mismatch). - The server returns a 400 error if more than one value is specified for singleton fields (names, birthdays, genders, biographies). - Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `person` | object | Yes | The Person object with updated contact data. Must include 'etag' for optimistic concurrency control. Only fields specified in updatePersonFields will be updated. |
| `sources` | array | No | A mask of what source types to return. By default, all sources are returned. Options: CONTACT, PROFILE, DOMAIN_CONTACT, OTHER_CONTACT |
| `personFields` | string | No | A field mask to restrict which fields are returned on the updated contact. Use comma-separated field names (e.g., 'names,emailAddresses'). If not specified, all fields are returned. |
| `resourceName` | string | Yes | The resource name of the contact to update. Format: people/{personId} or contacts/{contactId} |
| `updatePersonFields` | string | Yes | A field mask to restrict which fields to update. Use comma-separated field names (e.g., 'names,emailAddresses,phoneNumbers'). Required - you must specify at least one field. See the API documentation for available field names. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Contact Group

**Slug:** `GOOGLECONTACTS_UPDATE_CONTACT_GROUP`

Update the name of an existing contact group owned by the authenticated user. Use this action when you need to rename a contact group or update its metadata. Attempting to create a group with a duplicate name will return an HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contactGroup` | object | Yes | The contact group to update. Must include resourceName, etag, and name. |
| `readGroupFields` | string | No | Optional field mask specifying which fields to return in the response. Valid values: 'clientData', 'groupType', 'memberCount', 'metadata', 'name'. |
| `updateGroupFields` | string | No | Optional field mask specifying which fields to update. Valid values: 'clientData', 'name'. If not specified, all fields are updated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Contact Photo

**Slug:** `GOOGLECONTACTS_UPDATE_CONTACT_PHOTO`

Update a contact's photo. Use when you need to change or set the profile picture for an existing Google Contact. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures. The photo should be provided as base64-encoded bytes (JPEG, PNG, or WebP format).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `photo_bytes` | string | Yes | Base64-encoded photo bytes. The photo should be JPEG, PNG, or WebP format. |
| `person_fields` | string | No | A field mask to restrict which fields to return in the response. Example: 'names,emailAddresses,photos' |
| `resource_name` | string | Yes | The resource name of the contact whose photo to update. Format: people/{personId} |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
