Shopify to iPaaS.com Company Mapping Documentation
This mapping collection imports Shopify B2B Companies into iPaaS.com (transfer TO iPaaS.com — Add and Update). Each Shopify company is read and written to a matching iPaaS.com Company, linked by the Shopify company id saved as the external id, so subsequent transfers update the same record rather than creating a duplicate. It is the parent of the Company Contacts child collection, which brings each company's B2B users (contacts) into iPaaS.com as company relationships. It is the inbound counterpart to iPaaS.com to Shopify Company Mapping Documentation (FROM iPaaS.com), which creates and updates companies on the Shopify side.
Companies require Shopify's B2B capability to be enabled on the store. As of April 2026, Shopify's foundational B2B features — including company accounts — are available on the Basic, Grow, Advanced, and Plus plans and are no longer exclusive to Shopify Plus; some advanced B2B capabilities remain Plus-only (see Shopify's B2B for all announcement and the Shopify B2B Help Center).
ID Format
Manual Sync ID: the Shopify company id, entered on the iPaaS.com Manual Sync page.
External ID saved after sync: the Shopify company id is recorded as the external-id link, so later transfers update the same iPaaS.com Company.
Deleted Record Support
Shopify also publishes a Company Deleted (companies/delete) event, but deletion is not handled by this collection — a company deleted in Shopify is not removed from iPaaS.com automatically.
Mapping Collection Status
Status: Enabled (no mapping filter; every Shopify company sent through the collection is processed).
Trigger Events: Shopify Company Created (
companies/create) and Company Updated (companies/update).
The Company Contacts child collection is Enabled and carries a mapping filter — see Supported Child Collections.
Duplicate or Conflicting Mappings
The outbound iPaaS.com to Shopify Company collection writes iPaaS.com Companies to Shopify. The two directions are linked by the same Shopify company id (saved as the external id), so a company that originates on one side is matched and updated on the other rather than duplicated.
When a company is not already linked in iPaaS.com, this inbound collection looks up an existing iPaaS.com Company by Name and links it before creating a new one, so a company that already exists is reused. Because matching falls back to the company Name, keep Shopify company names distinct enough to identify the intended iPaaS.com Company on first sync, before the external-id link is established.
Supported Child Collections
Add/Update Shopify Company Contacts TO iPaaS.com — imports the company's B2B users (contacts) into iPaaS.com as company relationships, each linked to the corresponding iPaaS.com Customer. The child runs as part of this company's transfer; it has no independent automatic trigger. It carries a mapping filter that confirms the related iPaaS.com Customer exists before the contact is created (see Mappings and Prerequisite Handling).
System Caveats
Shopify Caveats
B2B must be enabled. Companies require Shopify's B2B capability — available on the Basic, Grow, Advanced, and Plus plans (foundational B2B is no longer Plus-only as of April 2026; advanced B2B features remain Plus-only). Without B2B enabled, there are no companies to import and this collection has nothing to process.
Read access required. The Shopify connection must be authorized to read companies (the Shopify B2B
read_companiesaccess scope) to import them; without it the transfer fails with an authorization error.Shopify is the source in this direction. This collection reads Shopify companies and does not modify Shopify.
iPaaS.com Caveats
External-id link required. The Shopify company id must be saved as the external id to route subsequent updates to the same iPaaS.com Company; the ExternalId mapping carries it.
Contacts depend on Customers. Each company contact is linked to an existing iPaaS.com Customer. The integration resolves any missing related Customer automatically as a prerequisite (see Prerequisite Handling), so you do not have to pre-sync customers.
Prerequisite Handling
When a company is transferred, the integration automatically resolves the records it depends on, so you do not have to pre-sync them:
If the company is not already linked in iPaaS.com, the integration looks up an existing iPaaS.com Company by Name and links it (avoiding a duplicate).
For each company contact, if the related Customer does not yet exist in iPaaS.com, the integration retrieves it from Shopify and transfers it as a prerequisite before the company completes.
If a prerequisite customer transfer fails, the company transfer also fails — so the Customer mapping must be configured correctly for company transfers to succeed.
Setup Requirements
iPaaS.com Configuration
Enable this mapping collection, and subscribe to the Shopify Company Created (companies/create) and Company Updated (companies/update) events in the subscription configuration's Inbound Data Flows section. No automatic transfers occur until those subscriptions are enabled. Companies can also be imported on demand from the Manual Sync page using the Shopify company id.
Shopify Configuration
The store must have Shopify B2B enabled (available on the Basic, Grow, Advanced, or Plus plans), and the Shopify connection must be authorized to read companies (the read_companies access scope). The Shopify-side webhook registration for the company events is covered in the Shopify Installation Instructions.
Integration Flow
A Shopify company is received via the company webhook, or retrieved via the Shopify Companies API on Manual Sync.
The integration matches the existing iPaaS.com Company by the saved external id (the Shopify company id), or — if none is linked — by Name, linking the existing record. A new iPaaS.com Company is created only when no match is found.
The company Name is written to the iPaaS.com Company, the ExternalId is saved as the external-id link, and any configured custom-field mappings are applied.
For each company contact, the related Customer is resolved (transferred as a prerequisite if missing) and the contact is written as a company relationship linked to that iPaaS.com Customer.
Mappings
Add/Update Shopify Company TO iPaaS.com
Mapping Type | Source Field (Shopify) | Destination Field (iPaaS.com) | Description |
Field | Name | Name | Required. The Shopify company name, imported to the iPaaS.com Company Name. Also used to match an existing iPaaS.com Company by name before the external-id link is established. |
Field | ExternalId | externalId | Required. Carries the Shopify company external id into iPaaS.com so the company is matched and linked. This is how subsequent updates route to the same iPaaS.com Company rather than creating a duplicate. |
Dynamic Formula |
| test_cf (custom field) | Example custom-field mapping: reads the Shopify company metafield named |
Add/Update Shopify Company Contacts TO iPaaS.com (child)
Description: Imports the company's B2B users (contacts) into iPaaS.com as company relationships, each linked to the corresponding iPaaS.com Customer. Runs as part of the parent company's transfer. A mapping filter (below the table) confirms the related Customer exists before the contact is created.
Mapping Type | Source Field (Shopify) | Destination Field (iPaaS.com) | Description |
Field | CustomerFirstName | B2B User First Name | The contact's first name, from the Shopify customer first name on the company relationship. |
Field | CustomerLastName | B2B User Last Name | The contact's last name, from the Shopify customer last name on the company relationship. |
Static |
| Type | Required. Static value |
Dynamic Formula |
| RelatedToId | Required. Resolves the iPaaS.com Customer id for the Shopify CustomerId on the company relationship, linking the contact to its iPaaS.com Customer. The parent company's prerequisite handling transfers any missing related Customer first, so you do not need to pre-sync customers. |
Mapping Filter. The child carries a filter that confirms the related Customer already exists in iPaaS.com:
var customerId = await GetSpaceportIdAsync(CustomerId, "Customer", SpaceportSystemId);
if(customerId == null)
throw new Exception($"There is no customer in iPaaS by this external id: {CustomerId}");
return true;It looks up the iPaaS.com Customer by the Shopify CustomerId from the company relationship, and the record proceeds only if that customer is found. Because the parent's prerequisite handling auto-transfers any missing Customer first, this filter is effectively a safety check — it fails the contact only if its customer is genuinely unavailable.
Error Handling
Unauthorized access — ensure the store has Shopify B2B enabled and the Shopify connection is authorized to read companies (
read_companies).Missing external id — without the Shopify company id saved as the external id, updates cannot be routed to the same iPaaS.com Company; sync the company to establish the link.
"There is no customer in iPaaS by this external id" — a company contact references a Customer that is not in iPaaS.com. The parent's prerequisite handling normally transfers it automatically; if this error appears, the prerequisite Customer transfer failed — confirm the Customer mapping is configured correctly.
Testing & Validation
Sync a Shopify company and confirm it appears in iPaaS.com with the correct Name and the Shopify company id saved as the external id; re-sync and confirm the same iPaaS.com Company is updated rather than duplicated.
Confirm a company that already exists in iPaaS.com (by Name) is linked rather than duplicated on first sync.
Sync a company that has contacts and confirm each contact appears as a company relationship linked to the correct iPaaS.com Customer.
Sync a company whose contact references a Customer not yet in iPaaS.com and confirm the Customer is transferred as a prerequisite and the contact links to it.
If a custom-field mapping is configured, confirm the Shopify metafield value lands in the intended iPaaS.com custom field.
Additional Notes
This direction reads Shopify and imports companies into iPaaS.com. Creating and updating companies on Shopify is handled by the FROM-iPaaS collection (see Related Documents). The default template ships with an example custom-field mapping (test_cf) — replace or remove it during implementation; it is not required for the company sync to succeed.
Related Documents
iPaaS.com to Shopify Company Mapping Documentation — companion article (FROM iPaaS.com direction)
