30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

Create Customer

store/create-customer creates a customer account from an email address, with an optional name and billing or shipping address. WooCommerce ships nothing for this.

No password is accepted, and none is set to anything knowable.

At a glance

Abilitystore/create-customer
ToolsetWooCommerce — toolset/woocommerce
GroupWooCommerce › Customers
RequiresWooCommerce, active on the site
Capabilitymanage_options
SafetyWrites data
RepeatableNot idempotent — each call changes the row set, so re-running is not a no-op
Ships inAcrossAI Abilities Manager 0.0.34 and later

Why there is no password parameter that works

An account whose password an assistant chose is not the customer’s account. Whoever saw that exchange can sign in as them, and the customer has no way to know.

So a random password is generated, never returned anywhere, and the customer sets their own through the site’s password reset. The account is real and usable; nobody else ever held the key to it.

The password parameter exists in the schema purely so that attempting to set one returns an explanation rather than a bare schema rejection. It is declared in order to be refused.

The email must not already have an account. A duplicate is refused rather than silently attaching to the existing user.

Billing and shipping addresses can be set at creation, which saves a second call when migrating records in.

Input

NameTypeRequiredWhat it is
emailstringYesEmail address. Must not already have an account.
usernamestringNoUsername. Defaults to the email address.
first_namestringNoFirst name.
last_namestringNoLast name.
billingobjectNoBilling address fields — first_name, address_1, city, postcode, country and so on.
shippingobjectNoShipping address fields, same shape as billing.
passwordstringNot acceptedDeclared only so that trying to set one returns an explanation.

What comes back

NameTypeWhat it is
customerobjectThe created customer.
notestringThe statement about how the password was handled.
successbooleanWhether the call completed.
messagestringA one-line summary of what happened, suitable for showing a human.
error_codestringPresent only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation.

Example

Ask your assistant:

Create a customer account for this email address with their billing address.

It resolves to one call:

{
  "ability": "store/create-customer",
  "parameters": {
    "email": "customer@example.com",
    "first_name": "Sam",
    "billing": {
      "address_1": "14 Avon Street",
      "city": "Bristol",
      "postcode": "BS2 0PT",
      "country": "GB"
    }
  }
}

Worth knowing

  • No password is accepted. The customer sets their own through password reset.
  • A duplicate email is refused, not merged.
  • Not idempotent.
  • The generated password is never returned to anyone.

Related abilities


Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager

Browse the rest: Every ability, by category


Keep reading