| AccountName |
Companyname req |
direct |
Company name. |
| AccountWebsite |
Companydomain req |
derive |
Strip protocol, www and paths. HubSpot de-duplicates companies on domain, so clean this first. |
| AccountPhone |
Companyphone |
direct |
|
| AccountBillingStreet / City / State / PostalCode / Country |
Companyaddress / city / state / zip / country |
direct |
Map Billing or Shipping, not both, unless you add custom properties for the second address. |
| AccountIndustry |
Companyindustry |
picklist map |
HubSpot's industry list is fixed. Map each Salesforce value, or keep the original in a custom property. |
| AccountNumberOfEmployees |
Companynumberofemployees |
direct |
|
| AccountAnnualRevenue |
Companyannualrevenue |
direct |
Confirm currency if the org is multi-currency. |
| AccountType |
Companytype |
picklist map |
|
| AccountParentId |
CompanyParent company association |
association |
Load all companies first, then create parent–child associations in a second pass. |
| AccountOwnerId |
Companyhubspot_owner_id req |
lookup |
Match Salesforce users to HubSpot users by email. Unmatched owners go to a holding user. |
| AccountId |
Companysalesforce_account_id (custom) req |
direct |
Keep the Salesforce ID as a unique property. It drives associations, delta loads and reconciliation. |
| ContactFirstName / LastName |
Contactfirstname / lastname req |
direct |
|
| ContactEmail |
Contactemail req |
direct |
HubSpot de-duplicates contacts on email. Resolve duplicates and blanks before loading. |
| ContactPhone / MobilePhone |
Contactphone / mobilephone |
direct |
|
| ContactTitle |
Contactjobtitle |
direct |
|
| ContactMailingStreet / City / State / PostalCode / Country |
Contactaddress / city / state / zip / country |
direct |
|
| ContactAccountId |
ContactPrimary company association req |
association |
Uses salesforce_account_id to find the company. |
| ContactLeadSource |
Contactlead_source (custom) |
picklist map |
HubSpot's original source properties are system-set, so history goes in a custom property. |
| ContactHasOptedOutOfEmail |
ContactSubscription status req |
manual review |
Import opt-outs as unsubscribed from the right subscription types before any email is sent. |
| ContactId |
Contactsalesforce_contact_id (custom) req |
direct |
|
| LeadStatus |
Contacths_lead_status |
picklist map |
Converted leads are usually skipped; their contacts carry the history. |
| LeadCompany |
Contact / Companycompany + association |
derive |
Create or match a company by domain, then associate. |
| LeadLead / Contact record type |
Contactlifecyclestage req |
derive |
Set lifecycle stage from where the record sits: lead, MQL, SQL, opportunity, customer. |
| OpportunityName |
Dealdealname req |
direct |
|
| OpportunityAmount |
Dealamount req |
direct |
|
| OpportunityCloseDate |
Dealclosedate req |
direct |
|
| OpportunityRecordType / sales process |
Dealpipeline req |
derive |
One HubSpot pipeline per distinct Salesforce sales process. |
| OpportunityStageName |
Dealdealstage req |
picklist map |
Map to stage internal IDs, not labels. Closed Won and Closed Lost must map to closed stages. |
| OpportunityProbability |
Deal(stage probability) |
drop |
HubSpot sets probability per stage. |
| OpportunityType |
Dealdealtype |
picklist map |
|
| OpportunityForecastCategoryName |
Dealhs_forecast_category |
picklist map |
|
| OpportunityAccountId |
DealCompany association req |
association |
|
| OpportunityContactRoleContactId / Role |
DealContact association + label |
association |
Use association labels (for example Decision maker) to keep the role. |
| OpportunityOwnerId |
Dealhubspot_owner_id req |
lookup |
|
| OpportunityLineItemProduct2Id |
Line itemhs_product_id |
lookup |
Load the product library first. |
| OpportunityLineItemQuantity / UnitPrice |
Line itemquantity / price |
direct |
|
| CaseSubject / Description |
Ticketsubject / content req |
direct |
|
| CaseStatus |
Tickeths_pipeline_stage req |
picklist map |
|
| CasePriority |
Tickeths_ticket_priority |
picklist map |
HubSpot values: LOW, MEDIUM, HIGH, URGENT. |
| CaseOrigin |
Ticketsource_type |
picklist map |
|
| CaseContactId / AccountId |
TicketContact and company associations |
association |
|
| TaskSubject / Description |
Taskhs_task_subject / hs_task_body |
direct |
|
| TaskActivityDate / Status |
Taskhs_timestamp / hs_task_status |
picklist map |
Status values: NOT_STARTED, IN_PROGRESS, WAITING, COMPLETED, DEFERRED. |
| EventStartDateTime / EndDateTime |
Meetinghs_meeting_start_time / hs_meeting_end_time |
direct |
|
| Task / EventWhoId / WhatId |
Task / MeetingContact, company and deal associations |
association |
Polymorphic lookups: resolve the object type before associating. |
| Note / ContentNoteBody |
Notehs_note_body |
direct |
Keep the original created date in hs_timestamp so the timeline stays in order. |
| EmailMessageSubject / Body / Dates |
Emailhs_email_subject / hs_email_html / hs_timestamp |
manual review |
Decide how much email history to bring. Older email is often loaded as notes. |
| ContentDocumentFiles and attachments |
FilesAttached to notes |
manual review |
Check file volume and size limits before planning the load. |
| Custom objectCustom fields |
Custom objectCustom properties |
manual review |
Needs HubSpot Enterprise. Re-model first: some custom objects become properties or associations. |
| Flow / Process BuilderAutomation |
WorkflowWorkflow |
rebuild |
Automation is rebuilt, not migrated. Inventory what still runs first. |