> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trybrein.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify

> Each new customer in your Shopify store creates their Contact and their Company.

## What it brings into Brein

When a customer is created in your store, Brein creates or fills in their **Contact** and, if it has one, their **Company**. If you ask at connect time, it also opens an **Opportunity**.

| From Shopify | Goes to |
| - | - |
| `first_name` and `last_name` | Contact name |
| `email` | Contact email |
| `phone` | Contact phone |
| `default_address.company` | Company name |

## Connect it

Shopify signs its notices with the *client secret* of the app that creates the subscription. You paste that secret in Brein.

<Steps>
  <Step title="In Brein">
    Go to **Settings → Integrations → Connect → Shopify** and copy the **address**.
  </Step>

  <Step title="In Shopify">
    In your Shopify app's webhook settings, create an HTTPS subscription to the topic below. Paste the address as the destination.
  </Step>

  <Step title="Copy the secret">
    Copy that app's *client secret*.
  </Step>

  <Step title="Paste it in Brein">
    In the Integration, paste the secret and save. Until you paste it, Brein rejects every notice. If you change the app's *client secret*, Shopify can take up to an hour to sign with the new one.
  </Step>
</Steps>

## Which events to choose

The topic `customers/create`: a new customer. Shopify sends the topic in a header, not in the body, and Brein does not read it. So **subscribe only to the customer topics you want to receive**: Brein treats every notice that arrives as a customer.

## Limits

* Brein tells one notice from another by its content, because the customer notice does not carry the event id in its body. If the same customer arrives with different data, it enters as a new Arrival; if it arrives identical, it is a **duplicate**.
* A customer with no email or phone arrives as **no person**.
* Shopify retries notices that are not acknowledged. Brein recognizes them and duplicates nothing.

More about results, how people are recognized and privacy: [Integrations](/integrations). Source: [Shopify HTTPS webhooks](https://shopify.dev/docs/apps/build/webhooks/subscribe/https).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.