View as Markdown
Google Ads icon

Google Ads ACTION

Add Contact to Customer List by Email

Adds one or more contacts to a Google Ads Customer Match user list by email. Accepts an array of email addresses and batches them all into a single offline user data job (one lookup to confirm the target list is a Customer Match list + one create + one addOperations + one run = exactly 4 API calls per run regardless of list size). Emails are normalized (trimmed, lowercased; Gmail/Googlemail addresses additionally have dots removed from the local part and plus-suffixes stripped) before SHA-256 hashing so they match Google's expected Customer Match hash. Lists typically update in 6 to 12 hours after the operation. Use List User Lists to find a valid Customer List ID and confirm it's a Customer Match (CRM_BASED) list before calling this action. See the documentation
  • Action
  • Writes data
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Google Ads account once, then configure and run Add Contact to Customer List by Email from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_ads-add-contact-to-list-by-email",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_ads: { authProvisionId: "apn_xxxxxxx" },
    accountId: "Use Google Ads As",
    customerClientId: "Managed Account",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Add Contact to Customer List by Email inputs
Property Type Description
accountId Use Google Ads As string
The ID of an account of a customer directly accessible by the authenticated user. This is usually a Manager Account, used as login-customer-id (e.g., 1234567890). Use the List Account ID Options action to get the list of accessible accounts.
Required Dynamic
customerClientId Managed Account string
The ID of a customer client from the list of customers linked to the selected account (e.g., 1234567890). Use the List Customer Clients action to get the list of customer clients.
Optional Dynamic
emails Email Addresses string[]
Array of email addresses to add to the Customer Match list, e.g. [" Test.User+promo@Gmail.com ", "ALICE@EXAMPLE.COM"]. Each is normalized before hashing: whitespace is trimmed and the address is lowercased for all domains; for Gmail/Googlemail addresses (gmail.com, googlemail.com), dots are also removed from the local part and any +suffix is stripped. All emails are submitted in one batched job. Google caps a single AddOfflineUserDataJobOperations request at 100,000 identifiers; arrays larger than that are rejected — split into multiple calls instead.
Required
userListId Customer List ID string
The numeric Customer List (user list) ID to add the contacts to, e.g. 98765432. Run List User Lists first to find valid IDs and confirm the target list's type is CRM_BASED (Customer Match) — this action rejects any other list type.
Required

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
google_ads-add-contact-to-list-by-email
Version
1.0.0
App
Google Ads
Authentication
OAuth
Read-only
No
Destructive
No
Open world
Yes