# Connect your sources (/connect)

Connect a Shopify store and a mailbox, and check that their data has arrived.

A **connection** is one configured source: a mailbox for conversations, or a
Shopify store for orders. **Sync** is the process that brings records from a
connection into EcomSquad. Platform calls connections "accounts" in some places.

Most tickets need both: the mailbox supplies the conversation, and the store
supplies its orders.

## Connect a Shopify store [#connect-a-shopify-store]

You need Platform access and permission to manage connectors. Ask the
administrator responsible for EcomConnect setup for:

* The EcomConnect organization ID.
* The EcomConnect connection ID for your store.
* The configured agent key reference to select.

These identify a connection already prepared in EcomConnect. Use the supplied
IDs, rather than your Shopify store URL or EcomSquad organization ID.

### Open Shopify setup [#open-shopify-setup]

In Platform, open **Connectors → Shopify**. You should see **Connect a store**
if your organization has no store configured yet.

### Enter the connection details [#enter-the-connection-details]

Enter a recognizable **Label**, such as “Example store”, and the supplied
**ecomconn organization ID** and **ecomconn connection ID**. Select the supplied
**Agent key** reference.

### Connect the store [#connect-the-store]

Choose **Connect store**. The store should appear in the list, initially with
**No sync yet** if it has not run.

### Check the first sync [#check-the-first-sync]

If available, choose **Sync now**, then use **Refresh** to check health.
Look for an updated **Last success** time. “Sync started” confirms a run was
requested, not that it succeeded.

Then read a ticket through [MCP](/mcp) or the [API](/quickstart) and check its
[linked orders](/tickets#linked-orders). A synced store does not by itself mean
every ticket has current order information.

## Connect a mailbox [#connect-a-mailbox]

<Callout type="info" title="Mailbox setup is assisted">
  Ask your EcomSquad administrator to arrange the mailbox connection. Platform does not currently
  have a mailbox setup form.
</Callout>

Tell your administrator which mailbox your team answers customers from, and
whether you need ongoing live sync or a one-time import of past mail. An archive
import may not have ongoing live sync. Once your administrator confirms
conversations have been synced or imported, check the mailbox's
[status](#connection-status) and list a conversation through [MCP](/mcp) or the
[API](/quickstart).

## Connection status [#connection-status]

Open **Connections** in Platform and select a connection to see its status.

| Status             | What to check                                                                  |
| ------------------ | ------------------------------------------------------------------------------ |
| Connected          | The connection is enabled. Check **Last success** to confirm a sync succeeded. |
| No sync yet        | No sync health information is available yet.                                   |
| Last run           | A run occurred; check whether it succeeded.                                    |
| Synced through     | Progress for that resource. "Snapshot" means a whole-resource snapshot.        |
| Health unavailable | Refresh before concluding that sync failed.                                    |

Mailbox sync and order lookups are separate. A synced mailbox shows conversations;
a ticket's orders still depend on the store's sync and lookups; see
[Tickets](/tickets#stored-not-live).

## Agent keys and API keys [#agent-keys-and-api-keys]

Two kinds of credential are involved, and they are not interchangeable.

| Credential            | Used by                       | Purpose                                                         | Where to manage it                                                                   |
| --------------------- | ----------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| EcomConnect agent key | EcomSquad                     | Retrieve source data from EcomConnect.                          | Your administrator manages the secret; setup shows its reference, such as `primary`. |
| EcomSquad API key     | Your application or assistant | Access EcomSquad with chosen permissions and connection limits. | **API keys** in Platform. See [API keys and access](/api-keys).                      |

## Disconnecting [#disconnecting]

**Disconnect** stops syncing. It does not delete stored data or revoke the
provider login:

* Stored data stays readable by any key that can read the connection. To stop an
  integration reading it, [revoke its API key](/api-keys#replace-or-revoke-a-key).
* To restore a disconnected store or revoke provider access, ask your
  administrator.

## Common problems [#common-problems]

* **No setup form:** an existing store, including a disconnected one, hides the
  form. Ask your administrator to restore it. You also need connector management
  permission to see setup controls.
* **The save was not confirmed:** refresh the store list before submitting again.
  The connection may have saved even though its response did not arrive.
* **The page asks for an EcomConnect agent key:** your administrator must set it
  up first. An agent key is not an EcomSquad API key.
* **No conversations appear:** confirm with your administrator that the mailbox has
  synced, then check that your sign-in or key can read it. See
  [connection limits](/api-keys#connection-limits).
* **Conversations appear without order context:** connect a store and check the
  ticket's [linked orders](/tickets#linked-orders).

For sync failures, see [connection troubleshooting](/troubleshooting#a-connection-is-missing-or-has-not-synced).
