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.
| Decision | Meaning |
|---|---|
| Keep | Required in both systems with the same meaning |
| Map | Same concept, different name or representation |
| Transform | Needs a format or value conversion |
| Reference | Store only the source ID or link |
| Do not import | Not needed, too sensitive, or belongs only in the source system |
| Human review | Ambiguous, 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.
| Canonical field | Plain meaning | Object | Type | Allowed values | Authority |
|---|---|---|---|---|---|
| contact.first_name | Person’s given name | Contact | Text | Free text | CRM, after client confirmation |
| contact.mobile_phone | Preferred mobile | Contact | Phone | Normalised AU or international | CRM |
| opportunity.loan_purpose | Purpose of this scenario | Opportunity | Single select | Buy, refinance, construction, other | Broker or approved application record |
| opportunity.requested_amount | Amount requested for this scenario | Opportunity | Money | AUD numeric | Lodgement record once submitted |
| opportunity.application_id | External application identifier | Opportunity | Text | Source format | Aggregator or lodgement platform |
| opportunity.settlement_date | Confirmed settlement date | Opportunity | Date | ISO date internally | Defined 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.
| Source field | Canonical field | Object | Mapping rule | Authority |
|---|---|---|---|---|
| APPLICANT_01_GIVEN_NAME_TEXT | First name | Contact | Trim spaces; preserve the legal value | CRM, after client confirmation |
| APPLICATION_CREDIT_PURPOSE_CODE | Loan purpose | Opportunity | Translate source codes into approved values | Broker or application record |
| APPLICATION_CURRENT_DECISION_STATUS | Application status | Opportunity | Map through an explicit status table; unknown codes go to the exception queue | Aggregator or lodgement |
| INTRODUCER_DISPLAY_NAME | Referral partner | Opportunity | Resolve to the partner register; never store the display name as the key | Partner register |
| GENERAL_FILE_NOTE_TEXT | No single destination field | — | Import as a dated source note, or retain in the application record; never overwrite the timeline | Application record |
Build a value map
Dropdowns and status fields need a translation table.
| Aggregator value | CRM value | Action |
|---|---|---|
| OO_PURCHASE | Buy — Owner Occupied | Direct map |
| INV_PURCHASE | Buy — Investment | Direct map |
| REFI_DEBT_CONS | Refinance — Debt Consolidation | Direct map, preserve the source code |
| blank | blank | Do not infer |
| unknown new code | exception queue | Do 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:
- import into a safe environment;
- inspect every mapped field;
- confirm contact and opportunity records link correctly;
- export the records again;
- compare the result with the source;
- run the workflows that depend on the fields;
- confirm no sensitive field leaked into an email or message; and
- 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.
- HighLevel — Importing contacts using a CSV file (vendor documentation)
- HighLevel — Format CSV files for contact and opportunity imports (vendor documentation)
- HighLevel — How to use custom fields (vendor documentation)
- HighLevel — Opportunity custom fields (vendor documentation)
- HighLevel — Export contacts to CSV (vendor documentation)
- ASIC — RG 273 Mortgage brokers: Best interests duty (PDF)
