Skip to main content

Zoho CRM to iPaaS.com Contact Mapping Documentation

How Zoho CRM contacts and their addresses map into iPaaS.com as Customer and Customer Address records: field mappings, filters, and transfer methods.

Summary

Zoho CRM contacts can be transferred into iPaaS.com as Customer records, either on a schedule or the moment Zoho CRM reports a change. Each contact becomes one iPaaS.com Customer, and the contact's two address blocks — mailing and other — are captured as separate iPaaS.com Customer Address records through child collections. This document covers the parent Contact collection and both address children together.

ID Format

Manual Sync ID Format

To transfer a single contact on demand from the iPaaS.com Manual Sync page, enter the Zoho CRM contact id — the long numeric identifier Zoho CRM assigns to the contact record, for example 6027981000006223001. This is the contact's own record id in Zoho CRM, not the iPaaS.com Customer id.

The two address collections have no Manual Sync id of their own. Zoho CRM holds an address as a block of fields on the contact rather than as a record with its own identifier, so an address is transferred by transferring the contact it belongs to.

External ID Format

After a successful transfer, iPaaS.com saves the Zoho CRM contact id on a dedicated external-ID record. That record is the primary match for every later transfer of the same contact — it routes a repeat transfer to an update of the existing iPaaS.com Customer rather than creating a duplicate. The default template also maps the Zoho CRM contact id into the iPaaS.com CustomerNumber field, which makes the record recognisable on the iPaaS.com side and serves as a fallback match when no external-ID record yet exists.

Each address record is linked with a composite of the contact's id and an identifier for the child collection that produced it. That combination keeps the mailing address and the other address as two separate, stable records on the same customer, so repeat transfers update each in place rather than adding duplicates.

Deleted Record Support

Deletion of the iPaaS.com record is not supported. Deleting a contact in Zoho CRM does not remove or deactivate the corresponding iPaaS.com Customer; the record remains until it is removed in iPaaS.com directly. A Contacts.delete event is offered when configuring the Zoho CRM webhook, but this integration does not act on deletions — subscribers or their MiSP should leave it unselected and handle removals as a manual step.

Custom Field Support

Custom fields are not supported on this direction. Values held in Zoho CRM contact custom fields are not captured when a contact is brought into iPaaS.com. (Custom fields are supported in the opposite direction — see the Zoho CRM from iPaaS.com Contact Mapping Documentation.)

Mapping Collection Status

Status: Enabled. The parent Contact collection has no mapping filter, so every contact put forward for transfer is processed. Each address child carries a filter that limits which contacts produce an address record — see the Mappings section.

Trigger Events: Created and Updated. A contact reaches iPaaS.com when the scheduled contact poll runs, or immediately when a Zoho CRM workflow webhook reports a Contacts.create or Contacts.edit event. Whether a transfer results in an Add or an Update on the iPaaS.com side is decided by whether the contact is already linked by an external ID, not by which event fired.

Duplicate or Conflicting Mappings

Conflicting collection

The collection Add/Update Zoho CRM Contact FROM iPaaS.com operates on the same entity in the opposite direction, writing iPaaS.com Customers out to Zoho CRM. Running both directions carries an overwrite risk: each system can change the same person, and a transfer in one direction can overwrite an edit made in the other. Before enabling them together, decide which system is the source of truth for contact data and use each collection's filter and Add/Update settings to keep the other from writing over it. Align the two collections' mappings field by field — a field is only round-trip safe when both directions read and write the same value.

Unmapped field overwrite risk

The iPaaS.com API uses PUT (full record replace) when updating Customer records. The following Customer field is not mapped in the default template mappings for Add/Update Zoho CRM Contact TO iPaaS.com. Any existing value in this field on the iPaaS.com Customer record will be overwritten with an empty value each time an inbound transfer runs, unless an additional mapping is added to preserve it:

  • Company

The recommended resolution is to split this combined Add/Update collection into separate Add and Update collections, then use the DestinationValue function in the Update collection to carry the existing iPaaS.com value forward. DestinationValue reads the current value from the iPaaS.com record before the PUT replaces it and writes it back into the outgoing payload. To preserve the company name during an update, add a Dynamic Formula mapping with the source formula DestinationValue.Company mapped to the iPaaS.com Company field. This matters here because iPaaS.com requires at least one of FirstName, LastName or Company on a Customer — a subscriber who populates Company from another source would lose it on every inbound transfer.

Collision handling is not configurable on this collection.

Supported Child Collections

This collection is the parent of two address collections:

  • Add/Update Zoho CRM Contact Mailing Address TO iPaaS.com: captures the contact's mailing address as an iPaaS.com Customer Address, and marks it as the primary billing address.

  • Add/Update Zoho CRM Contact Other Address TO iPaaS.com: captures the contact's other address as a second iPaaS.com Customer Address.

Neither child transfers on its own. Both are transferred as part of the contact's transfer, and each only produces a record when the corresponding Zoho CRM address block has both a street and a city populated.

System Caveats

Zoho CRM Caveats

  • Every poll cycle reads the whole contact list: the integration pages through all contacts in the Zoho CRM organization on each cycle and then decides locally which ones changed. The number of Zoho CRM calls per cycle grows with the size of the contact base, not with the number of changes.

  • Call credits are consumed by polling: Zoho CRM meters API usage against a rolling 24-hour credit allowance that varies by edition, and also caps how many calls an application may have in flight at once. When the allowance or the concurrency cap is reached, Zoho CRM rejects the call. The transfer is not retried or rescheduled — it fails, and the failure is recorded under Dashboard / Integration Monitoring / Error Logs. Set the poll interval with the size of the contact base and the Zoho CRM edition in mind.

  • Changes are detected by last-modified time: when polling, a contact is put forward when Zoho CRM's own last-modified timestamp is later than the previous poll. Changes Zoho CRM does not reflect in that timestamp are not detected by polling; a workflow webhook fires on the record action itself and is not subject to this.

  • A contact has exactly two address blocks: Zoho CRM's contact layout provides one mailing address and one other address. No further address detail held elsewhere on the contact is captured.

  • Address values are free text: Zoho CRM applies no validation or standard vocabulary to the state and country fields, so whatever a Zoho CRM organization has entered is what transfers.

iPaaS.com Caveats

  • A contact with no email address cannot be transferred: iPaaS.com requires an email address on a Customer, while Zoho CRM does not require one on a Contact. A Zoho CRM contact with an empty email is rejected when iPaaS.com receives it, and the failure appears under Dashboard / Integration Monitoring / Error Logs. Subscribers or their MiSP whose Zoho CRM data includes contacts without email addresses should add a mapping filter to exclude them, or populate the field in Zoho CRM.

  • An address needs the contact to transfer first: each address record is created against the iPaaS.com Customer produced by the parent transfer. If the contact itself fails to transfer, no address is recorded either.

  • Only one address can be the primary billing address: iPaaS.com allows a single primary billing address per customer, and the mailing address collection claims it. Setting the same flag on the other address collection leaves the outcome dependent on which one transferred last.

Setup Requirements

Contacts reach iPaaS.com by either or both of two paths; at least one must be configured before any automatic transfer occurs.

  • Scheduled polling is enabled on the iPaaS.com side by adding the contact poll event to the subscription's scheduled events under Dashboard / Integration Monitoring / Events, and setting the cadence there. Nothing is configured in Zoho CRM for polling.

  • Instant webhook notification is configured in Zoho CRM, not in iPaaS.com. Subscribers or their MiSP create a workflow rule on the Zoho CRM Contacts module under Setup > Automation > Workflow Rules, covering the create and edit record actions, and attach a Webhook instant action that posts to the iPaaS.com webhook address. The webhook is authenticated with the subscription's webhook API key, copied from Dashboard / Subscription / Subscriptions / (Zoho CRM) / Subscription Settings. Webhook configuration requires the Manage Workflow permission in Zoho CRM and is subject to per-edition webhook allowances.

The step-by-step webhook setup, including the exact address, header and message body, is in the Zoho CRM Installation Instructions. No further configuration is required on the iPaaS.com side for the webhook — the receiver is the platform's generic webhook receiver.

Integration Flow

  1. A transfer is triggered for a contact — by the scheduled poll, an instant webhook, or a Manual Sync.

  2. The integration retrieves the full contact record from Zoho CRM.

  3. The contact's fields are mapped to an iPaaS.com Customer. iPaaS.com matches the contact to an existing Customer by its external-ID link (or, on first sync, by CustomerNumber), and either updates that Customer or creates a new one.

  4. The contact's mailing address block is evaluated against the mailing address collection's filter. If its street and city are both populated, a Customer Address record is created or updated for the customer and marked as the primary billing address.

  5. The contact's other address block is evaluated against the other address collection's filter in the same way, producing a second Customer Address when both its street and city are populated.

  6. A contact with an empty email address is rejected by iPaaS.com and recorded in the error log; no addresses are recorded for it.

Mappings

Add/Update Zoho CRM Contact TO iPaaS.com

iPaaS.com data type: Customer

Description: Brings a Zoho CRM contact into iPaaS.com as a Customer record, carrying the identifier, name, email address and description. This collection has no mapping filter — every contact put forward for transfer is processed.

Mapping Type

Source Field (Zoho CRM)

Destination Field (iPaaS.com)

Description

Field

id

CustomerNumber

Required. The Zoho CRM contact's own record id. iPaaS.com rejects a Customer without a CustomerNumber. Also serves as the fallback match that links an existing iPaaS.com Customer with the same number rather than duplicating it.

Field

Email

EmailAddress

Required. The contact's primary email. iPaaS.com rejects a Customer without one, even though Zoho CRM does not require an email on a contact.

Field

Last_Name

LastName

Recommended. Zoho CRM requires a last name on every contact, so this reliably satisfies iPaaS.com's rule that at least one of FirstName, LastName or Company be present.

Field

First_Name

FirstName

Recommended. The contact's first name, for a complete customer record.

Field

Description

Comment

Optional. The contact's description. If empty, nothing is sent and any existing iPaaS.com comment is left unchanged.

Add/Update Zoho CRM Contact Mailing Address TO iPaaS.com

iPaaS.com data type: Customer Address

Mapping Filter

SourceTypeName == "ParentOnly" && Parent.Mailing_Street != null && Parent.Mailing_City != null

Filter Description. A mailing address record is produced only when the contact's mailing street (Parent.Mailing_Street) and mailing city (Parent.Mailing_City) are both populated in Zoho CRM. A contact with neither, or with only one of the two, transfers with no mailing address record — no partial address is created, and no error is raised. The SourceTypeName == "ParentOnly" condition restricts the collection to address data supplied by the parent contact transfer, which is the only way it receives data.

Description: Captures the contact's mailing address as an iPaaS.com Customer Address and marks it as the primary billing address. Every field reads from the parent contact.

Mapping Type

Source Field (Zoho CRM)

Destination Field (iPaaS.com)

Description

Dynamic Formula

Parent.Mailing_Street

Address1

Recommended. The mailing street. The filter requires it, so an empty street means no address record is produced at all. Zoho CRM holds the street as one field, so a multi-line street arrives combined here.

Dynamic Formula

Parent.Mailing_City

City

Recommended. The mailing city. The filter requires it alongside the street.

Dynamic Formula

Parent.Mailing_State

Region

Recommended. The mailing state, province or region. Free text in Zoho CRM; validate downstream values in staging.

Dynamic Formula

Parent.Mailing_Zip

PostalCode

Recommended. The mailing postal code, carried across as entered.

Dynamic Formula

Parent.Mailing_Country

Country

Recommended. The mailing country. Free text in Zoho CRM; add a lookup translation to normalise it if needed.

Dynamic Formula

Parent.Last_Name

LastName

Recommended. The addressee's last name, taken from the contact.

Dynamic Formula

Parent.First_Name

FirstName

Recommended. The addressee's first name, taken from the contact.

Dynamic Formula

Parent.Phone

PhoneNumber

Optional. Zoho CRM holds no mailing-specific phone, so the contact's main phone is used; the same number appears on the contact and the address.

Static

true

IsPrimaryBilling

Optional. Fixed by design so the customer always has a primary billing address once the mailing address transfers. The other address collection deliberately does not set this flag.

Add/Update Zoho CRM Contact Other Address TO iPaaS.com

iPaaS.com data type: Customer Address

Mapping Filter

SourceTypeName == "ParentOnly" && Parent.Other_Street != null && Parent.Other_City != null

Filter Description. A second address record is produced only when the contact's other street (Parent.Other_Street) and other city (Parent.Other_City) are both populated in Zoho CRM. Most organizations populate the other address block on fewer contacts than the mailing block, so this collection commonly produces records for only a subset of transferred contacts. As with the mailing collection, SourceTypeName == "ParentOnly" restricts it to data supplied by the parent contact transfer.

Description: Captures the contact's other address as a second iPaaS.com Customer Address. It does not set any billing or shipping designation.

Mapping Type

Source Field (Zoho CRM)

Destination Field (iPaaS.com)

Description

Dynamic Formula

Parent.Other_Street

Address1

Recommended. The other street. Required by the filter; an empty street means no record. Held as one field, so a multi-line street arrives combined here.

Dynamic Formula

Parent.Other_City

City

Recommended. The other city. Required by the filter alongside the street.

Dynamic Formula

Parent.Other_State

Region

Recommended. The other state, province or region. Free text; validate downstream values in staging.

Dynamic Formula

Parent.Other_Zip

PostalCode

Recommended. The other postal code, carried across as entered.

Dynamic Formula

Parent.Other_Country

Country

Recommended. The other country. Free text; add a lookup translation to normalise it if needed.

Dynamic Formula

Parent.Last_Name

LastName

Recommended. The addressee's last name, taken from the contact — review whether the contact is the right addressee for this block.

Dynamic Formula

Parent.First_Name

FirstName

Recommended. The addressee's first name, taken from the contact.

Dynamic Formula

Parent.Other_Phone

PhoneNumber

Optional. Zoho CRM holds a phone specific to this address block, so a genuinely address-specific number is used when one is entered.

Error Handling

  • A contact without an email address fails to transfer. iPaaS.com requires an email address on a Customer; a Zoho CRM contact with an empty email is rejected on arrival and the failure appears under Dashboard / Integration Monitoring / Error Logs. Resolution: populate the email in Zoho CRM, or add a mapping filter to this collection that excludes contacts without one.

  • A transfer fails when the Zoho CRM API call allowance or concurrency cap is reached. Zoho CRM returns a too-many-requests response, and the transfer is not automatically rescheduled — it fails and is recorded in the error log. Resolution: lengthen the poll interval, or run large loads with the supported bulk-sync approach; the transfer can be re-run once the allowance resets.

A dedicated Zoho CRM Error Messages article covers the integration's error catalog in full.

Testing & Validation

Test Scenarios

  1. Create a new contact in Zoho CRM with an email address and a mailing street and city, then trigger a transfer and confirm a Customer with a mailing Customer Address appears in iPaaS.com.

  2. Update the contact's name in Zoho CRM and confirm the change propagates to the existing iPaaS.com Customer rather than creating a duplicate.

  3. Save a Zoho CRM contact with no email address, trigger a transfer, and confirm it is rejected with an error in the error log.

  4. Manually sync a contact by entering its Zoho CRM contact id on the Manual Sync page and confirm success.

  5. Populate a contact's other address block (street and city) and confirm a second Customer Address record is produced alongside the mailing address.

  6. Populate only a mailing city with no mailing street and confirm no mailing address record is created.

Validation Checklist

  • The connected Zoho CRM user can read the Contacts module.

  • At least one transfer path is configured — the scheduled poll, the Zoho CRM webhook, or both.

  • Contacts intended for transfer carry an email address.

  • The two address collections' behaviour matches how the organization uses the mailing and other address blocks.

Additional Notes

The following are out of scope for this collection:

  • Contact deletion — deletions are not detected or propagated.

  • Accounts and companies — only the Contacts module is read; Zoho CRM accounts are not brought into iPaaS.com.

  • Leads, deals, and activities — not transferred.

  • Attachments and notes — not transferred.

Related Documents

Did this answer your question?