Customer
The Customer resource represents a buyer who registers to your site.
A Customer in WooCommerce is someone with a user account to log in to your store. People purchasing as a guest (without logging into an account) are not considered customers. WooCommerce by default configured to allow customers to create an account. If you are relying on this resource, you can enforce registration by disabling Guest Checkout.
WooCommerce stores customer data alongside WordPress user data. If you customise WordPress Roles and Capabilities feature, make sure to not rename the Customer role, it may interfere with the plugin functionality.
Trigger Rules¶
A Trigger Rule defines an event (or multiple events) that will cause WooCommerce data to be sent to a Zapier Zap.
The following trigger rules are available to trigger your Zaps when customer data in your WooCommerce store is added, changed or deleted.
Customer created¶
Triggers when:
- a customer registers (creates an account) in your WooCommerce store.
- a WordPress user account (with any role) is created.
This trigger rule does not trigger when someone purchases as a guest without registering for an account. Please use one of the Order trigger rules if you would like guest purchases to be sent to Zapier.
Customer deleted¶
Triggers when a customer is deleted.
Due to limitations in how WooCommerce handles deleted events, only the ID
of the deleted resource is sent to Zapier when using this trigger rule. No other data fields are available.
There is no trash functionality for customers (users) in WordPress
Customer updated¶
Triggers when a customer (or any WordPress user) is updated, edited, changed, or modified.
Actions and Searches¶
The following actions are available for use in your Zaps to create, update or find customers.
Line-Item Enabled Data Field: Meta Data
To specify multiple values for these field(s), the values must be sent in a line-item aware format. Please see here for details on how the Line Itemizer can be used to achieve this.
Create Customer¶
Creates a new Customer in WooCommerce.
Create Input Fields¶
NAME | TYPE | DESCRIPTION |
---|---|---|
string | New user email address. Required | |
First Name | string | Customer first name. |
Last Name | string | Customer last name. |
Username | string | New user username. |
Password | password | New user password. |
Billing | object | List of billing address data. Only the child fields are visible in the Zapier UI. |
Billing → First Name | string | First name. |
Billing → Last Name | string | Last name. |
Billing → Company | string | Company name. |
Billing → Address 1 | string | Address line 1 |
Billing → Address 2 | string | Address line 2 |
Billing → City | string | City name. |
Billing → State | string | ISO code or name of the state, province or district. |
Billing → Postcode | string | Postal code. |
Billing → Country | string | ISO code of the country. |
Billing → Email | string | Email address. |
Billing → Phone | string | Phone number. |
Shipping | object | List of shipping address data. Only the child fields are visible in the Zapier UI. |
Shipping → First Name | string | First name. |
Shipping → Last Name | string | Last name. |
Shipping → Company | string | Company name. |
Shipping → Address 1 | string | Address line 1 |
Shipping → Address 2 | string | Address line 2 |
Shipping → City | string | City name. |
Shipping → State | string | ISO code or name of the state, province or district. |
Shipping → Postcode | string | Postal code. |
Shipping → Country | string | ISO code of the country. |
Shipping → Phone | string | Phone number. |
Meta Data | array | Meta data. Only the child fields are visible in the Zapier UI. |
Meta Data → Key | string | Meta key. |
Meta Data → Value | any | Meta value. |
Update Customer¶
Updates (modifies) an existing Customer in WooCommerce.
An update action always requires a valid top-level ID to be specified. This ensures that your Zap knows which record to update. On the other hand, any non-top-level ID is optional. If you leave it empty, WooCommerce will create a new entry, such as a new Meta Data item.
To help identify the correct Resource ID, you can add a Find step before your update step. The result of your Find step will contain the Resource ID, which you can then use in the Update step.
Update Input Fields¶
NAME | TYPE | DESCRIPTION |
---|---|---|
Existing ID | integer | Unique identifier for the resource. Required |
string | The email address for the customer. | |
First Name | string | Customer first name. |
Last Name | string | Customer last name. |
Username | string | Customer login name. |
Password | password | Customer password. |
Billing | object | List of billing address data. Only the child fields are visible in the Zapier UI. |
Billing → First Name | string | First name. |
Billing → Last Name | string | Last name. |
Billing → Company | string | Company name. |
Billing → Address 1 | string | Address line 1 |
Billing → Address 2 | string | Address line 2 |
Billing → City | string | City name. |
Billing → State | string | ISO code or name of the state, province or district. |
Billing → Postcode | string | Postal code. |
Billing → Country | string | ISO code of the country. |
Billing → Email | string | Email address. |
Billing → Phone | string | Phone number. |
Shipping | object | List of shipping address data. Only the child fields are visible in the Zapier UI. |
Shipping → First Name | string | First name. |
Shipping → Last Name | string | Last name. |
Shipping → Company | string | Company name. |
Shipping → Address 1 | string | Address line 1 |
Shipping → Address 2 | string | Address line 2 |
Shipping → City | string | City name. |
Shipping → State | string | ISO code or name of the state, province or district. |
Shipping → Postcode | string | Postal code. |
Shipping → Country | string | ISO code of the country. |
Shipping → Phone | string | Phone number. |
Meta Data | array | Meta data. Only the child fields are visible in the Zapier UI. |
Meta Data → Existing ID | integer | Meta ID. Leave empty to create a new meta data record. Otherwise, enter an existing ID. |
Meta Data → Key | string | Meta key. |
Meta Data → Value | any | Meta value. |
Find Customer¶
Searches for an existing Customer in WooCommerce. Optionally create one if none are found.
All available search fields can be viewed below. We recommend using the following search fields:
- Email: Searches for the specified customer email address.
- Search: Searches the Customer Username, Customer Email, Customer URL, Customer Display Name fields for the specified string/term/phrase.
- Customer ID: Searches for the specified (numeric) customer ID.
The default search behaviour when searching for Customers is to limit the search to users with the “Customer” Role. However, if you want to broaden the result, please select another item in the dropdown. For example, you can choose “All” to search for every user of the WooCommerce store, including administrators.
Consult the search fields table for available Roles.
WordPress Multisite
If you are using the Create WooCommerce Customer if it doesn’t exist yet option in your Find Customer Zap, and you are also using WordPress multisite, please read the following.
The following error can occur if an email address exists in your multisite network, but isn’t assigned as a customer on an individual site in your network:
Communication error. 400 Bad Request.
registration-error-email-exists
An account is already registered with your email address. Please log in.
This is a limitation in how Multisite is designed, and how WooCommerce itself is designed to work with multisite.
WordPress Multisite stores user (and thus customer) accounts in one place (network-wide), and is then added to an individual site in your network when required.
If you encounter this error, the workaround is to go to WordPress Dashboard → Side Menu → Users → Add New and manually add the user with a Customer role to your sub-site.
Searches return the first result found
Each search has a default sort order, so when defining your Search step, you can use the Order and Orderby fields to choose (for example) whether the most recent result or the oldest result is returned from your search.
Search Input Fields¶
NAME | TYPE | DESCRIPTION |
---|---|---|
Customer Id | string | Limit search by ID. |
Search | string | Limit results to those matching a string. |
Order | string | Order sort attribute ascending or descending. |
Orderby | string | Sort collection by object attribute. |
string | Limit result set to resources with a specific email. | |
Role | string | Limit result set to resources with a specific role. |
Customer Data¶
NAME | TYPE | DESCRIPTION |
---|---|---|
Id | integer | Unique identifier for the resource. |
Date Created | date-time | The date the customer was created, in the site’s timezone. |
Date Modified | date-time | The date the customer was last modified, in the site’s timezone. |
string | The email address for the customer. | |
First Name | string | Customer first name. |
Last Name | string | Customer last name. |
Role | string | Customer role. |
Username | string | Customer login name. |
Billing | object | List of billing address data. |
Billing → First Name | string | First name. |
Billing → Last Name | string | Last name. |
Billing → Company | string | Company name. |
Billing → Address 1 | string | Address line 1 |
Billing → Address 2 | string | Address line 2 |
Billing → City | string | City name. |
Billing → State | string | ISO code or name of the state, province or district. |
Billing → Postcode | string | Postal code. |
Billing → Country | string | ISO code of the country. |
Billing → Email | string | Email address. |
Billing → Phone | string | Phone number. |
Shipping | object | List of shipping address data. |
Shipping → First Name | string | First name. |
Shipping → Last Name | string | Last name. |
Shipping → Company | string | Company name. |
Shipping → Address 1 | string | Address line 1 |
Shipping → Address 2 | string | Address line 2 |
Shipping → City | string | City name. |
Shipping → State | string | ISO code or name of the state, province or district. |
Shipping → Postcode | string | Postal code. |
Shipping → Country | string | ISO code of the country. |
Shipping → Phone | string | Phone number. |
Is Paying Customer | boolean | Is the customer a paying customer? |
Avatar Url | string | Avatar URL. |
Meta Data | array | Meta data. |
Meta Data → Id | integer | Meta ID. |
Meta Data → Key | string | Meta key. |
Meta Data → Value | any | Meta value. |
Data Fields May Differ in Your WooCommerce Store
WooCommerce Zapier utilises WooCommerce’s REST API. Data field names, descriptions, and values can vary from one WooCommerce store to another.
Your store’s data, fields, and trigger rules may differ from this documentation due to any of the following:
- WordPress versions and the locale/language used.
- Your WooCommerce versions and the features enabled.
- Your active WordPress plugins and WooCommerce extensions.
- Any custom code that overrides or changes how the WooCommerce/WordPress REST API operates.
Note: The field definitions are generated using the following settings:
- WordPress v6.6 with the
en_US
locale. - WooCommerce v9.2 with tax and coupon functionality enabled.
- The WooCommerce Bookings, WooCommerce Memberships, and WooCommerce Subscriptions plugins were active.