Skip to content

Customer data

Yamidoo can pull what your store knows about a visitor — orders, licenses, subscriptions — into the conversation. Your team sees it in the inbox next to the messages. If you choose to, the AI can also use it to answer questions like “when does my license expire?” for customers who are logged in to your site — a separate switch, off by default.

Nothing is copied into Yamidoo, and nobody outside your workspace can request it. When a conversation is opened or the AI needs it, your workspace asks your site for that one email address’s record over a request signed with your secret, shows it, and discards it.

The Customer panel in the inbox sidebar: an Easy Digital Downloads customer with licenses, orders and subscriptions

Easy Digital Downloads (with Software Licensing and Recurring) and WooCommerce (with Subscriptions) are supported out of the box by the WordPress plugin. Each has its own page with the exact fields: WooCommerce and Easy Digital Downloads.

If you connected with the Connect to Yamidoo button, the endpoint and secret are already in place — just make sure Show customer data in my Yamidoo inbox is ticked in wp-admin. If you pasted a Site ID by hand:

  1. In the dashboard open your project → Integrations → Customer data.
  2. Set the Lookup URL to the address shown under Settings → Yamidoo → Customer data in wp-admin — usually https://your-site.com/wp-json/yamidoo/v1/customer.
  3. Click Generate secret, copy it, and paste it into the Lookup secret field in wp-admin. Tick Show customer data in my Yamidoo inbox and save.
  4. Back in the dashboard, use Test with a customer email to confirm the card comes back.
The Customer data tab under Integrations: the Lookup URL field, the Rotate secret button, the Use customer data switch and the test lookup

Selling through Freemius? The data lives in Freemius, not on your site, so this one is set up in the dashboard alone. The Freemius page has screenshots and the exact fields; in short:

  1. In the Freemius Developer Dashboard open the product, then Settings → API & Keys, and copy the Product ID and the API bearer token.
  2. In Yamidoo open your project → Integrations → Customer data, paste both under Freemius and click Add product. Repeat for each product.

Yamidoo checks the token against the product right away, stores it encrypted, and from then on looks the visitor’s email up in Freemius when a conversation is opened: customer, licenses with expiry and activations, payments and refunds, subscriptions with renewal dates, and the sites the product is activated on. A product can be removed from the same list at any time; nothing is kept in Yamidoo afterwards.

Open a conversation with a visitor whose email is known and the Customer panel appears in the sidebar, titled after the store it came from:

  • Customer — name, purchase count, lifetime value, customer since.
  • Licenses — product, status, expiry, activations used, key.
  • Orders — number, total, products, date, gateway. Collapsed when long.
  • Subscriptions — product, status, renewal date, amount.

Each row links to the matching screen in your store’s admin. Agents can look up any email; the panel refreshes on demand and caches for five minutes.

Nothing, until you say so. The Customer data tab has two switches:

  • Show in the inbox — your team sees the record. On by default once the connector is set up.
  • Let the AI answer account questions — off by default. Turn it on and the AI reads the record too, but only for visitors your site has vouched for: the plugin signs the logged-in user’s email with your secret when it identifies them, so a visitor cannot type someone else’s address and ask about their orders. Anonymous visitors, and visitors who typed an email into a contact form, keep getting normal answers from your content without account data.

The AI never sees the panel your team uses; it gets a plain-text summary of the same record, and only for the conversation it is answering.

The connector is a small JSON contract, so a Shopify app or a Laravel backend can implement it in an afternoon. Set the Lookup URL and generate a secret in Integrations → Customer data, then serve the endpoint.

Request. Yamidoo sends a POST with a JSON body and two headers:

POST /api/yamidoo/customer
Content-Type: application/json
X-Yamidoo-Timestamp: 1757950000
X-Yamidoo-Signature: sha256=<hex HMAC-SHA256(secret, "1757950000.jane@example.com")>
{ "email": "jane@example.com", "ts": 1757950000 }

Verify the signature over ts.email (email lowercased) and reject timestamps older than a few minutes. Answer within 5 seconds.

Response. A card with sections; return { "sections": [] } for an unknown email.

{
"source": "My Store",
"url": "https://admin.example.com/customers/42",
"sections": [
{
"title": "Orders",
"collapsed": true,
"url": "https://admin.example.com/customers/42/orders",
"items": [
{
"value": "#3100 · $49.00",
"badge": "complete",
"tone": "success",
"meta": "Pro plan · Sep 1, 2026 · Stripe",
"url": "https://admin.example.com/orders/3100"
}
]
}
]
}
Field Notes
source Shown as the panel title. Optional.
url Link to the customer in your admin. Optional.
sections[].title Section heading. Up to 12 sections.
sections[].collapsed Start collapsed. Optional.
items[].value The main text. Required.
items[].label Small caption above the value. Optional.
items[].badge, items[].tone Status pill and its color: success, warning, danger, neutral. Optional.
items[].meta Secondary line. Optional.
items[].url Opens in a new tab. Optional.

Signed identify. To let the AI use the record for a logged-in user, add signature to the identify() call: the hex HMAC-SHA256 of the lowercased email with the same secret, computed on your server.

yamidoo('identify', {
name: 'Jane Doe',
email: 'jane@example.com',
signature: '<hex HMAC-SHA256(secret, "jane@example.com")>',
});