# import_contacts

Returns imported count.

## Purpose

Bulk-import merchant contact details (email, owner name, country, plan) keyed by myshopify domain — e.g. a CSV export or customers read from a previous analytics tool's MCP. Non-null fields win; nulls never clobber existing data. Max 500 per call; batch larger sets.

## Credentials and scope

Owner workspace credential. The credential determines tool visibility. For tools with appId, use the HeyCrust app UUID from list_apps; the dashboard app selector does not supply MCP arguments for you.

## Inputs

- `contacts`: required; array; minItems: 1; maxItems: 500

## Example request

The identifiers and merchant are fictional. Replace them with records returned for your own workspace; this example is schema-checked, not a promise that the fictional record exists.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "import_contacts",
    "arguments": {
      "contacts": [
        {
          "shopDomain": "example.myshopify.com",
          "email": "owner@example.com",
          "ownerName": "Example owner"
        }
      ]
    }
  }
}
```

POST this JSON to `https://heycrust.com/api/mcp` with `Content-Type: application/json` and `Authorization: Bearer <YOUR_CREDENTIAL>`. The tool result normally contains JSON encoded as text in `result.content`; inspect JSON-RPC errors and `result.isError` before using it.

## Result

Returns imported count. It does not establish that merchant addresses have received any email.

## Effects and verification

Writes merchant contacts, keyed by normalized shop domain. Non-null values update fields; null values do not overwrite existing values. This changes stored contact data.

## Troubleshooting

A missing tool can mean that the credential lacks its catalog or required scopes. Invalid arguments are different from unavailable source data or a record outside the workspace. A handler can return a business error even when the argument schema is valid. Read [MCP overview](/docs/mcp) and [Help](/docs/help).

## Contact object fields

| Field | Contract |
| --- | --- |
| `contacts` | Required array of 1–500 contact objects. |
| `contacts[].shopDomain` | Required string of at least 4 characters; use the permanent myshopify.com domain as the join key. |
| `contacts[].email` | Optional or null; when present must be a valid email. |
| `contacts[].ownerName` | Optional string or null. |
| `contacts[].country` | Optional string or null; send known source data. |
| `contacts[].shopifyPlan` | Optional string or null. |
| `contacts[].phone` | Optional string or null; include only if authorized and needed. |
