Skip to main content

Copper CRM to iPaaS.com Person Mapping Documentation

How Copper CRM People and their addresses transfer into iPaaS.com as Customer and Customer Address records — ID formats, integration flow, field mappings and caveats.

Summary

Copper CRM People can be transferred into iPaaS.com as Customer records through webhook events or Manual Sync. Each transfer also produces a Customer Address in iPaaS.com from the single address Copper CRM holds against the person. The mapping carries the person's name, work email address, work phone number, company and, optionally, custom field values.

ID Format

Manual Sync ID Format

Enter the Copper CRM person's system record ID — the numeric identifier Copper CRM assigns to the person. Transferring the person also transfers its address; there is no separate ID to enter for the address.

External ID Format

After a successful transfer, iPaaS.com records the link between the two systems on a dedicated external-ID record:

  • The Customer is linked using the Copper CRM person's identifier.

  • The Customer Address is linked using a composite value made of the person's identifier and the address's role, in the form <PersonId>\Primary. Because Copper CRM holds a single address per person, that address is always the primary one.

These links are the primary match for later transfers, routing a repeat transfer of the same person to an update rather than creating a second Customer. Where no link exists yet, the integration falls back to matching an existing iPaaS.com Customer on the work email address and records the link once a match is found.

Deleted Record Support

Outbound delete is supported for People. Copper CRM emits a person/delete event, and the integration removes the corresponding record so the deletion propagates to iPaaS.com.

Addresses are not deleted independently. Because Copper CRM holds one address per person and that address is transferred as part of the person, there is no separate address delete path; an address is removed only in so far as its parent person is.

Custom Field Support

Copper CRM person custom field values can be read and written into iPaaS.com custom fields.

Custom fields are matched by name and must exist on both sides before any value moves. Create the Copper CRM field under SettingsCustomizeManage Fields On RecordsPeopleCreate Field, then create a Customer custom field with exactly the same name in the iPaaS.com Copper CRM subscription. A Dynamic Formula mapping names the Copper CRM custom field and writes its value to the matching iPaaS.com custom field; if the names differ, no value is transferred.

Mapping Collection Status

Status: Enabled.

Trigger Events: person/new, person/update and person/delete. These events must be subscribed to from the iPaaS.com external webhook subscription page before automatic transfers occur.

Duplicate or Conflicting Mappings

The following mapping collection operates on the same records in the opposite direction:

  • Add/Update Copper Person FROM iPaaS.com: creates or updates People in Copper CRM from iPaaS.com Customer data.

Before enabling both directions, review the mapping collection filters and decide which system is the source of truth for people data. With both active on the default mappings, changes may propagate back and forth. Because Copper CRM holds only one address per person, the inbound and outbound address mappings write to the same single address.

Unmapped Field Overwrite Risk

iPaaS.com uses a full record replace when updating Customer and Customer Address records. The fields below are not mapped in the default mappings, so any existing values in them are replaced with empty values on every inbound transfer unless mappings are added to preserve them:

  • Customer: Comment

  • Customer Address: Company, Address2, Address3, IsPrimaryShipping, Type

To preserve a value, split the collection into separate Add and Update collections and add a Dynamic Formula mapping to the Update collection that carries the existing value forward — for example DestinationValue.Comment written to the iPaaS.com Comment field. This reads the current value from the iPaaS.com record and writes it back so the update does not clear it. Repeat for each field that needs preserving.

Supported Child Collections

Parent Collection: Add/Update Copper Person TO iPaaS.com

  • Add/Update Copper Person Address TO iPaaS.com: transfers the person's Copper CRM address to iPaaS.com as a Customer Address, linked with the composite external ID described above. It runs as part of the parent person's transfer and has no independent trigger.

System Caveats

Copper CRM Caveats

  • One address per person: Copper CRM only permits one address to be saved against a person, so only one address is ever transferred. A person with no address produces no address record in iPaaS.com.

  • Email and phone categories: each email address and phone number is held against a category such as Work or Personal. The mappings read the work category and fall back to the first entry when no Work entry exists.

  • Custom fields must exist first: values can only be read from Copper CRM custom fields that already exist.

  • Free-text address values: country and state are stored as free text rather than from a fixed list, so values should be validated in a staging environment against whatever consumes them downstream.

  • API request limits: Copper CRM limits API traffic to 180 requests per minute on a rolling window and rejects requests beyond it. Rejected transfers appear under DashboardIntegration MonitoringError Logs. Set the subscription's API Throttle Limit, API Throttle Seconds, Concurrent Connections and Concurrent Batch Executions so the integration stays within the limit.

iPaaS.com Caveats

  • Required Customer fields: iPaaS.com rejects a Customer without a customer number and an email address, so both mappings must resolve to a value.

  • Custom fields must exist first: a Customer custom field with a matching name must exist in the iPaaS.com subscription before a mapped value is stored.

  • The parent must transfer first: the address is attached to the Customer created or updated by the parent collection. If the parent transfer fails, no address is written.

Integration-Specific Caveats

  • Duplicate prevention by email: when a Copper CRM person is not yet linked, the integration searches iPaaS.com for a Customer with the same work email address and links the two records instead of creating a duplicate. Changing which email category the mapping selects changes which address is used for that matching.

  • Customer number is populated from a phone number: the default mappings write the person's work phone number into the required CustomerNumber field, which also acts as a fallback matching key. Confirm this is a stable, unique value for each person, or remap it to a more stable identifier before go-live.

Setup Requirements

Copper CRM Configuration

  1. Generate an API Key under SettingsIntegrationsAPI Keys. An API Key is required in order to subscribe to Copper CRM webhooks.

  2. Create any person custom fields you intend to transfer under SettingsCustomizeManage Fields On RecordsPeopleCreate Field.

iPaaS.com Configuration

  1. Enter the API URL, API Key and API Email on the Copper CRM subscription. See the Copper CRM Connections and Settings article for the full field reference.

  2. Create Customer custom fields with names matching the Copper CRM fields.

  3. Subscribe to the Copper CRM People webhook events from the iPaaS.com external webhook subscription page. Until this is done, records transfer only by Manual Sync.

Integration Flow

  1. A person is created, changed or deleted in Copper CRM, and Copper CRM notifies iPaaS.com through the subscribed webhook event. Alternatively, the transfer is started from the iPaaS.com Manual Sync page using the person's record ID.

  2. The integration retrieves the full Copper CRM person record, including its email addresses, phone numbers, address and custom field values.

  3. The integration checks whether the person is already linked to an iPaaS.com Customer. If it is not, it searches iPaaS.com for a Customer with the same work email address and records a link when one is found, so that an existing Customer is updated rather than duplicated.

  4. The Customer is created or updated in iPaaS.com from the parent collection's mappings.

  5. The person's address is transferred through the child collection and linked to the Customer using the composite external ID <PersonId>\Primary.

  6. For a person/delete event, the linked iPaaS.com record is removed rather than updated.

Mappings

Add/Update Copper Person TO iPaaS.com

Description. Transfers the Copper CRM person into iPaaS.com as a Customer record.

This collection has no mapping filter, so all People received through webhook events or Manual Sync are processed.

Mapping Type

Source Field (Copper CRM)

Destination Field (iPaaS.com)

Description

Dynamic Formula

await GetEmailFromList(Emails,"work");

EmailAddress

Required. Selects the email whose category is work, falling back to the first email held on the person. iPaaS.com requires an email address on every Customer, so a person with no email cannot transfer. This value also drives duplicate matching.

Dynamic Formula

await GetPhoneFromList(PhoneNumbers,"work");

CustomerNumber

Required. Selects the phone number whose category is work, falling back to the first number held. iPaaS.com requires a customer number on every Customer, and this value doubles as a fallback record-matching key — confirm it is stable and unique per person, or remap it.

Field

FirstName

FirstName

Recommended. The person's first name.

Field

LastName

LastName

Recommended. The person's last name.

Field

CompanyName

Company

Recommended where the person belongs to a company. The company name held on the Copper CRM person.

Field

CompanyId

Copper CRM Company Id (custom field)

Optional. Stores the Copper CRM company identifier so the iPaaS.com Customer can be traced back to its originating company.

Dynamic Formula

var custField = await GetValueFromCustomField(CustomFields,"Favourite Sports"); return custField.ToString();

Interested Sports (custom field)

Optional. Reads a Copper CRM custom field by name and writes it to an iPaaS.com custom field. Placeholder value — replace during implementation: Favourite Sports and Interested Sports are example custom fields; substitute your own names or remove the mapping.

Dynamic Formula source. The custom field formula above spans two lines. It is reproduced here exactly as it is configured on the mapping collection:

Interested Sports

var custField = await GetValueFromCustomField(CustomFields,"Favourite Sports");
return custField.ToString();

Add/Update Copper Person Address TO iPaaS.com (Child)

Mapping Filter

SourceTypeName == "ParentOnly"

Filter Description. Only addresses arriving as part of a parent person transfer are processed. An address presented in any other context is skipped, and no error is raised for a skipped record. This is why the collection has no independent Manual Sync entry point — it is reached by transferring the parent person.

Description. Transfers the single address Copper CRM holds against the person into iPaaS.com as a Customer Address, flagged as the primary billing address.

Mapping Type

Source Field (Copper CRM)

Destination Field (iPaaS.com)

Description

Dynamic Formula

Parent.Address.Street

Address1

Recommended. The street line of the person's address.

Dynamic Formula

Parent.Address.City

City

Recommended. The city.

Dynamic Formula

Parent.Address.State

Region

Recommended. The state or province. Copper CRM labels this State; iPaaS.com labels it Region.

Dynamic Formula

Parent.Address.Postal_code

PostalCode

Recommended. The postal or ZIP code.

Dynamic Formula

Parent.Address.Country

Country

Recommended. The country, stored as free text in Copper CRM.

Dynamic Formula

Parent.FirstName

FirstName

Recommended. Taken from the parent person so the address identifies who it belongs to when viewed on its own.

Dynamic Formula

Parent.LastName

LastName

Recommended. Taken from the parent person.

Dynamic Formula

await GetPhoneFromList(Parent.PhoneNumbers,"work");

PhoneNumber

Optional. The parent person's work phone number, falling back to the first number held.

Static

"true"

IsPrimaryBilling

Flags the address as the Customer's primary billing address. Copper CRM holds one address per person, so it is always treated as primary. The outbound mappings select the address flagged as primary billing, so clearing this can break the return path.

Error Handling

Errors raised during these transfers appear under DashboardIntegration MonitoringError Logs. The most common causes are:

  • A required field resolves to no value: a person with no email address or no phone number cannot produce a valid iPaaS.com Customer, because both the email address and the customer number are required.

  • Copper CRM is unavailable or rejects the request: including when the 180 requests per minute limit is exceeded. The transfer fails and can be retried by triggering a new change in Copper CRM or using Manual Sync.

For the full catalogue of subscriber-visible messages, see the Copper CRM Error Messages article.

Testing & Validation

Test Scenarios

  1. Create a new person in Copper CRM with a work email address, a work phone number and an address, and verify a Customer and a Customer Address are created in iPaaS.com.

  2. Update the person's name in Copper CRM and verify the change reaches the existing iPaaS.com Customer rather than creating a second one.

  3. Create a person in Copper CRM whose work email matches an existing iPaaS.com Customer, and verify the records are linked rather than duplicated.

  4. Attempt a transfer for a person with no email address and confirm the transfer fails with a clear error in the Error Logs.

  5. Transfer a person manually from the Manual Sync page using the Copper CRM person record ID and confirm both the Customer and its address arrive.

  6. Change the person's address in Copper CRM, re-transfer the person, and confirm the address is updated rather than duplicated.

  7. Populate a mapped Copper CRM custom field and confirm the value reaches the matching iPaaS.com custom field.

  8. Delete a person in Copper CRM and confirm the deletion propagates to iPaaS.com.

Validation Checklist

  • Copper CRM API Key and API Email are entered on the subscription.

  • The Copper CRM People webhook events are subscribed from the iPaaS.com external webhook subscription page.

  • Custom fields exist on both sides with identical names.

  • The example custom field mapping has been replaced or removed.

  • The value mapped to CustomerNumber has been confirmed as stable and unique, or remapped.

  • Throttle and concurrency values are set so the integration stays within Copper CRM's request limit.

Additional Notes

  • Only the single address Copper CRM holds against a person is transferred. iPaaS.com Customers that carry several addresses do not receive additional addresses from Copper CRM.

  • There is no separate address change event in Copper CRM, so an edited address reaches iPaaS.com the next time the parent person is transferred.

Related Documents

Did this answer your question?