Aggregators

How to map CRM and aggregator fields

By Tumai Meroiti · 26 August 2026

Listen instead

Narration not recorded yet

Export a sample header list from the aggregator, catalogue the CRM’s standard and custom fields, then map each source field to one canonical destination. Record object, type, allowed values, direction, owner and transformation. Test the map with synthetic edge cases before importing client records or connecting an API.

TL;DR

  • Start with real export headers, not remembered field names.
  • Separate person fields from deal and application fields.
  • Give every business concept one plain label and one stable key.
  • Map meaning and allowed values, not only similar-looking words.
  • Do not force notes, statuses or multiple applicants into one flat contact record.
  • Test import, export, duplicates, blanks and round-trip behaviour with synthetic data.

Field mapping is a vocabulary decision

The software can move a value from one column to another. It cannot decide whether `Loan Type`, `Product Type`, `Purpose` and `Scenario` mean the same thing in your brokerage.

Make that decision before building the automation.

Start with the aggregator export

Export a safe sample or an empty CSV template from the aggregator or lodgement platform. The header row gives you the language and structure used by the application authority.

Common concepts may include first name and surname, email and phone, applicant role, loan purpose, occupancy or investment purpose, requested amount, credit-decision or application status, settlement date, lender, referral source, and file or application identifiers.

Do not assume the headers are identical across aggregators, versions or export types. Inspect the file, and retain its export date and source.

Then export or catalogue the CRM fields. HighLevel’s published import flow maps CSV columns to existing standard or custom fields, and requires non-standard destination fields to exist before the import is completed.

Do not copy every header into the CRM

The aggregator can contain fields the CRM does not need. Classify every source column.

Six decisions for every source column in the aggregator export
DecisionMeaning
KeepRequired in both systems with the same meaning
MapSame concept, different name or representation
TransformNeeds a format or value conversion
ReferenceStore only the source ID or link
Do not importNot needed, too sensitive, or belongs only in the source system
Human reviewAmbiguous, conflicting or too consequential to map automatically

This prevents the CRM from becoming a copy of an application database it was never designed to replace.

Choose the correct object first

The fastest way to create bad data is to put a deal field on the contact.

Contact fields

These follow the person:

  • legal or preferred name;
  • phone and email;
  • preferred contact method;
  • contact consent and suppression;
  • date of birth, only where the approved CRM boundary permits it;
  • relationship or referral history; and
  • stable external person IDs.

Opportunity fields

These follow one scenario or deal:

  • loan purpose;
  • requested amount;
  • occupancy;
  • property or security context;
  • opportunity source;
  • pipeline stage;
  • assigned broker;
  • application ID;
  • settlement date; and
  • referral partner for that deal.

One person can refinance today and buy an investment property later. If both scenarios write into one contact-level `Loan Purpose` field, the second deal rewrites the history of the first.

Application authority fields

Some detailed application, compliance and lender fields should stay in the aggregator or approved lodgement system. Store the external application ID and link, rather than duplicating every field.

Create a canonical field dictionary

The dictionary is the agreement between systems, staff and automation.

An example canonical field dictionary, with the plain meaning, object, type, allowed values and authority for each field
Canonical fieldPlain meaningObjectTypeAllowed valuesAuthority
contact.first_namePerson’s given nameContactTextFree textCRM, after client confirmation
contact.mobile_phonePreferred mobileContactPhoneNormalised AU or internationalCRM
opportunity.loan_purposePurpose of this scenarioOpportunitySingle selectBuy, refinance, construction, otherBroker or approved application record
opportunity.requested_amountAmount requested for this scenarioOpportunityMoneyAUD numericLodgement record once submitted
opportunity.application_idExternal application identifierOpportunityTextSource formatAggregator or lodgement platform
opportunity.settlement_dateConfirmed settlement dateOpportunityDateISO date internallyDefined settlement authority

Add description, sensitivity, source timestamp, owner and retirement status where useful. The visible label should be simple enough for staff; the internal key should be stable enough for workflows and integrations.

Map meaning, not spelling

The source fields below are illustrative. They are not actual fields from a named aggregator.

Field map5 mappings
The dotted connection is a documented translation rule, not a guess based on similar words. Similar wording can still hide a different meaning: a credit-card balance is not its limit, and a submitted date is not a created date.
Source fieldCanonical fieldObjectMapping ruleAuthority
APPLICANT_01_GIVEN_NAME_TEXTFirst nameContactTrim spaces; preserve the legal valueCRM, after client confirmation
APPLICATION_CREDIT_PURPOSE_CODELoan purposeOpportunityTranslate source codes into approved valuesBroker or application record
APPLICATION_CURRENT_DECISION_STATUSApplication statusOpportunityMap through an explicit status table; unknown codes go to the exception queueAggregator or lodgement
INTRODUCER_DISPLAY_NAMEReferral partnerOpportunityResolve to the partner register; never store the display name as the keyPartner register
GENERAL_FILE_NOTE_TEXTNo single destination fieldImport as a dated source note, or retain in the application record; never overwrite the timelineApplication record
The dotted connection is a documented translation rule, not a guess based on similar words. Similar wording can still hide a different meaning: a credit-card balance is not its limit, and a submitted date is not a created date.

Build a value map

Dropdowns and status fields need a translation table.

An example value map translating aggregator codes into approved CRM values
Aggregator valueCRM valueAction
OO_PURCHASEBuy — Owner OccupiedDirect map
INV_PURCHASEBuy — InvestmentDirect map
REFI_DEBT_CONSRefinance — Debt ConsolidationDirect map, preserve the source code
blankblankDo not infer
unknown new codeexception queueDo not force into “Other” silently

Store the raw source value where audit and troubleshooting require it, while presenting the simpler approved label to staff.

Decide direction and timing

Every mapping needs a direction: aggregator to CRM, CRM to aggregator, a one-time migration, a read-only reference, or a human-approved sync.

Then define the event: contact created, form submitted, application created, application submitted, stage changed, settlement confirmed, or scheduled reconciliation.

Avoid uncontrolled two-way sync. If both systems can write the same field without precedence, the last technical update may defeat the correct business value.

What happens to custom fields?

Create a custom field only when:

  • the business concept is real and defined;
  • no standard field already carries it;
  • the correct object is known;
  • the type and allowed values are stable;
  • a team member or workflow will use it; and
  • its authority and retirement path are documented.

HighLevel distinguishes contact and opportunity custom fields. Its published guidance notes that a field created under one object cannot simply be switched to the other later.

Use folders such as Contact Preferences, Referral and Source, Scenario Summary, Property and Purpose, Application Reference, and Settlement and Review. Do not create folders that duplicate every form name — forms are sources, fields are business concepts.

Name fields for fast human decisions

Avoid

  • Status 2

  • Misc Data

  • Lead Thing

  • Customer Type Final New

  • Unexplained initials

  • The vendor’s long technical key as the staff label

Prefer

  • Application Status

  • Requested Amount

  • Referral Partner

  • Preferred Contact Method

  • Loan Purpose, spelled out

  • Settlement Date, with the key kept in the map

Unclear CRM field names compared with names a staff member can act on

If an abbreviation such as `AOL` or `MIRS` is retained, define it in the field description and the team knowledge base.

Test the map with synthetic edge cases

Build a small test pack containing:

  • one applicant;
  • two applicants;
  • one contact with two opportunities;
  • self-employed and PAYG scenarios;
  • blank optional fields;
  • an unknown dropdown code;
  • Australian and international phone formats;
  • a name with an apostrophe or hyphen;
  • an invalid date;
  • a zero value versus a blank;
  • a duplicate email with a different phone; and
  • long notes.

Then test:

  1. import into a safe environment;
  2. inspect every mapped field;
  3. confirm contact and opportunity records link correctly;
  4. export the records again;
  5. compare the result with the source;
  6. run the workflows that depend on the fields;
  7. confirm no sensitive field leaked into an email or message; and
  8. document every exception.

HighLevel’s current contact import process matches existing contacts in the order contact ID, email, then phone by default, subject to account settings. That deduplication behaviour must be tested against the brokerage’s own duplicate rules.

The minimum mapping sheet

Use these columns, and review the sheet before changing a form, pipeline or workflow. Automations consume the data model; they should not invent it.

  • source system, export version, field key, description, type and allowed values;
  • destination system, object, field key and type;
  • transformation or value map;
  • direction;
  • trigger or timing;
  • authority and owner;
  • blank or null rule;
  • duplicate rule;
  • sensitivity;
  • test case; and
  • status.

The standard to use

One concept. One name. One owner.

Export the real headers, simplify the business vocabulary, preserve the source meaning, and make every transformation visible.

The cleaner the map, the less software knowledge the broker needs to operate the business.

Common questions

Should CRM fields use the same names as aggregator fields?
Use the same plain meaning where practical, but do not copy long or ambiguous technical labels into the staff interface. Keep an explicit mapping between the source key and the canonical CRM field.
Should loan purpose be a contact or opportunity field?
Usually an opportunity field. It describes one finance scenario, and one contact can have several scenarios over time.
Can notes be imported into one custom field?
Avoid an overwriteable file-note field. Preserve dated notes with source, author and timestamp, or keep the authoritative note in the approved application system.
What should happen to an unmapped field?
Place it in a documented exception queue. Do not silently drop a required value, or push an unknown code into “Other” without review.
Should an API be built before the CSV map?
No. The CSV mapping exercise exposes field meaning, values, duplicates and ownership before the same mistakes are made continuously through an API.

Sources

Everything this article relies on. If a claim above is not traceable to something here, treat it as opinion and tell us.

  1. HighLevel — Importing contacts using a CSV file (vendor documentation)
  2. HighLevel — Format CSV files for contact and opportunity imports (vendor documentation)
  3. HighLevel — How to use custom fields (vendor documentation)
  4. HighLevel — Opportunity custom fields (vendor documentation)
  5. HighLevel — Export contacts to CSV (vendor documentation)
  6. ASIC — RG 273 Mortgage brokers: Best interests duty (PDF)