> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Google Contacts

## What you can do

Connect this agent connector to let your agent:

- **Manage contacts** — create, read, update, and delete contacts; batch create, update, and delete up to 200–500 contacts in a single request
- **Search contacts** — search across names, emails, and phone numbers in the main contacts list or "Other contacts"
- **Handle contact groups** — create, update, delete, and modify membership of contact groups
- **Work with other contacts** — list and search auto-generated contacts from email history, and copy them into the main contacts list
- **Access directory** — list and search people in a Google Workspace domain directory (requires Workspace account)
- **Manage photos** — upload or remove contact profile photos

## Authentication

This connector uses **OAuth 2.0**. Scalekit acts as the OAuth client: it redirects your user to Google, obtains an access token, and automatically refreshes it before it expires. Your agent code never handles tokens directly — you only pass a `connectionName` and a user `identifier`.

You supply your Google **OAuth app credentials** (Client ID + Secret) once per environment in the Scalekit dashboard.

<details>
<summary>Set up the connector</summary>

<SetupGooglecontactsSection />

</details>

<details>
<summary>Code examples</summary>

<UsageGooglecontactsSection />

</details>

## Getting resource IDs

Most tools require IDs that must be fetched from the API — never guess or hard-code them.

| Resource | Tool to get ID | Field in response |
|----------|---------------|-------------------|
| Person ID | `googlecontacts_contacts_list` | `connections[].resourceName` (part after `people/`) |
| Contact etag | `googlecontacts_contact_get` | `etag` |
| Group ID | `googlecontacts_groups_list` | `contactGroups[].resourceName` (part after `contactGroups/`) |
| Group etag | `googlecontacts_group_get` | `etag` |
| Other contact person ID | `googlecontacts_other_contacts_list` | `otherContacts[].resourceName` (part after `people/`) |

## Tool list

<ToolList tools={tools} />

---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
