1. Home
  2. Migrations
  3. Data Mapping Reference Guide: CRM Field & Tag Mapping

Data Mapping Reference Guide: CRM Field & Tag Mapping

Data Mapping Reference Guide

What is data mapping? Data mapping is the process of matching fields and values between your current system and your destination system during migration. Get this wrong, and data won’t transfer correctly.

Overview

This reference guide helps you map data between CRMs and platforms when migrating. Use it to:

  • Understand how fields differ between systems
  • Plan your data export/import strategy
  • Create mapping spreadsheets before migration
  • Troubleshoot data transfer issues

This guide grows over time. As we encounter new mapping scenarios in support tickets, we add them here.

Last updated: January 15, 2026

Contact Fields – Standard Mappings

Standard fields that exist in most CRMs:

Field Name Ontraport ActiveCampaign Keap Drip Kit AA Managed
Email email email Email email email email
First Name firstname first_name FirstName first_name first_name first_name
Last Name lastname last_name LastName last_name last_name last_name
Phone office_phone phone Phone1 phone phone phone
Address address address StreetAddress1 address1 address billing_address_1
City city city City city city billing_city
State state state State state state billing_state
Zip zip zip PostalCode zip zip_code billing_postcode
Country country country Country country country billing_country

Important notes:

  • Field names are case-sensitive in most CRMs
  • Phone number formats vary (some require specific format, others are flexible)
  • Address fields may map to billing vs. shipping addresses in AccessAlly Managed

Custom Fields

How custom fields work in each CRM:

Ontraport Custom Fields

  • Format: Can be any name you create
  • Types: Text, Numeric, Date, Dropdown, Checkbox
  • Export: Custom fields export with their field name as column header
  • Import: Must create custom field in Ontraport before importing data
  • API: Custom fields have numeric IDs (f1234, f1235, etc.)

ActiveCampaign Custom Fields

  • Format: Any name, but shown as “name” in exports
  • Types: Text, Textarea, Date, Dropdown, Radio, Hidden
  • Export: Custom fields appear as separate columns
  • Import: Auto-creates custom field if doesn’t exist
  • Personalization tags: Use %FIELDNAME% in emails

Keap Custom Fields

  • Format: Prefixed with underscore: _CustomFieldName
  • Types: Text, Text Area, Dropdown, Date, Currency, etc.
  • Export: Custom fields have underscore prefix in CSV
  • Import: Must match exact name including underscore
  • API: Custom fields use numeric IDs internally

Drip Custom Fields

  • Format: Simple field names (no special prefixes)
  • Types: All stored as text (no field type enforcement)
  • Export: Custom fields in separate columns
  • Import: Auto-creates if doesn’t exist
  • Liquid tags: Use {{ subscriber.field_name }} in emails

Kit (ConvertKit) Custom Fields

  • Format: Simple field names
  • Types: All text-based
  • Export: Custom fields as columns
  • Import: Auto-creates fields
  • Note: Limited custom field support compared to other CRMs

AccessAlly Managed Custom Fields

  • Format: WordPress user meta fields
  • Types: Stored as text, numeric validation optional
  • Access: Managed through WordPress user meta
  • Note: No built-in custom field interface – uses WordPress meta fields

Tags – Structure and Differences

Tag Structures by CRM

CRM Tag Structure Categories? Notes
Ontraport Flat list No Simple tag names
ActiveCampaign Flat list with optional categories Yes (optional) Categories for organization only
Keap Hierarchical with categories Yes (required) ⚠️ Tags belong to categories
Drip Flat list No Simple tag names
Kit Flat list No Simple tag names + segments
AA Managed Flat list No Tags managed in AccessAlly

Tag Migration Issues

⚠️ CRITICAL ISSUE: Keap → ActiveCampaign tag category prepending. This is a major migration blocker that requires special handling.

Keap → ActiveCampaign Tag Problem:

  • Keap has tag categories (e.g., “Access” in category “Membership”)
  • ActiveCampaign doesn’t support tag categories
  • During import, AC prepends the category: “Membership – Access”
  • AccessAlly looks for “Access” → no match → members lose access
  • Solution: Plan tag remapping BEFORE migration
  • Keap to AC Tag Remapping Guide

Tag Naming Best Practices

To make migrations easier:

  • Use consistent naming: “Product – Level” or “Product_Level”
  • Avoid special characters: stick to letters, numbers, spaces, dashes
  • Use descriptive names: “Gold Membership” not “GM”
  • Document tag purposes: keep a tag reference spreadsheet
  • Avoid category-like names if you might migrate to/from Keap

Subscription & Product Mappings

Subscription Status Mappings

Status Type Ontraport ActiveCampaign Keap Stripe AccessAlly Local
Active/Current active active Active active active
Canceled cancelled canceled Inactive canceled cancelled
Past Due past_due past_due PastDue past_due past_due
Paused paused paused Inactive paused paused
Expired expired expired Inactive incomplete_expired expired

Important notes:

  • Keap doesn’t distinguish between canceled, paused, and expired (all “Inactive”)
  • Stripe has additional statuses (incomplete, unpaid, trialing)
  • When migrating, “Active” is most critical to preserve

Product ID Mapping Strategy

Products are identified differently in each system:

  • Ontraport: Product ID (numeric)
  • ActiveCampaign: Deal value or custom field
  • Keap: Product ID (numeric)
  • Stripe: Product ID + Price ID
  • AccessAlly: Offer name (text)

Create a product mapping spreadsheet:

Current Product Name Current Product ID Destination Product Name Destination Product ID Price Tags Applied
Gold Membership 1234 Gold Membership 5678 $97/mo Gold, Member
[Your products…]

Automation Trigger Mappings

How automation triggers differ between CRMs:

Common Trigger Types

Trigger Event How it Works in Each CRM
Tag Applied
  • Ontraport: Contact applies tag → automation triggers
  • ActiveCampaign: Tag added → automation starts
  • Keap: Tag applied → campaign goal triggers
  • Drip: Tag added → workflow triggers
Form Submission
  • Ontraport: Form submitted → automation triggers
  • ActiveCampaign: Form submitted → automation starts
  • Keap: Webform submitted → campaign sequence starts
  • Drip: Form submitted → workflow triggers
Email Opened
  • Ontraport: Email opened → automation triggers
  • ActiveCampaign: Email opened → goal condition met
  • Keap: Email opened → sequence continues
  • Drip: Email opened → workflow action
Link Clicked
  • Ontraport: Link clicked → automation triggers
  • ActiveCampaign: Link clicked → goal condition met
  • Keap: Link clicked → campaign goal triggers
  • Drip: Link clicked → workflow action
Purchase Made
  • Ontraport: Transaction created → automation triggers
  • ActiveCampaign: Deal created → automation starts
  • Keap: Order placed → campaign starts
  • Stripe: Webhook payment_intent.succeeded

Automation Migration Notes

When migrating automations:

  • Triggers don’t auto-migrate – must be recreated manually
  • Test each automation in destination CRM before going live
  • Some trigger types may not have direct equivalents
  • Webhook-based triggers need new webhook URLs
  • Time delays transfer as concepts but need reconfiguration

Migration-Specific Mapping Guides

Detailed mapping guides for specific migration paths:

Top 3 Priority Paths (Complete Guides)

Additional CRM Combinations

Data Mapping Templates

Download these spreadsheet templates to plan your migration:

Contact Field Mapping Template

Use this template to map contact fields between systems:

Current Field Name Current Field Type Destination Field Name Destination Field Type Required? Notes
firstname Text first_name Text Yes Standard field
_MemberLevel Dropdown Member_Level Text No Keap underscore → AC no prefix
[Your fields…]

Tag Mapping Template

Use this template to map tags:

Current Tag Current Category (if Keap) Destination Tag Used for Access? Used in Automations? Notes
Access Membership Membership – Access Yes Yes ⚠️ AC prepends category
[Your tags…]

Common Data Mapping Issues

Issue: Field Name Case Sensitivity

Problem: Some CRMs are case-sensitive (Keap “FirstName” vs. AC “first_name”)

Solution: Match exact case when creating mapping spreadsheet

Issue: Date Format Differences

Problem: Different CRMs expect different date formats (YYYY-MM-DD vs. MM/DD/YYYY)

Solution: Use ISO format (YYYY-MM-DD) in CSV exports when possible

Issue: Phone Number Formats

Problem: Some CRMs require specific phone formats ((123) 456-7890 vs. 1234567890)

Solution: Document required format in destination CRM, clean data before import

Issue: Custom Field Type Mismatches

Problem: Source CRM has dropdown, destination expects text

Solution: Convert dropdown values to text strings during export

Issue: Missing Destination Fields

Problem: Destination CRM doesn’t have equivalent field

Solution: Create custom field in destination before importing, or map to notes field

Data Validation Checklist

Before importing data, validate:

☐ All required destination fields are mapped from source

☐ Field types match (text to text, date to date, etc.)

☐ Email addresses are valid format

☐ Phone numbers match expected format

☐ Dates are in correct format

☐ Custom fields exist in destination system

☐ Tag names are EXACT matches (including case)

☐ Special characters won’t cause issues

☐ CSV encoding is UTF-8 (for special characters)

☐ Test import with 10 contacts before full import

This Guide is Growing

Help us improve this reference:

  • If you encounter a mapping scenario not documented here, let us know
  • We add new mappings monthly based on support tickets
  • Check back for updates to this guide
  • Subscribe to updates (coming soon)

Last updated: January 15, 2026

Next update: February 2026 (monthly batch process)

💡 Pro Tip: Spend time on data mapping BEFORE migration day. A complete mapping spreadsheet catches issues early and makes the actual migration much smoother. The 2-4 hours spent mapping saves days of troubleshooting later.

Updated on January 15, 2026
Was this article helpful?

Related Articles

NO QUESTION GOES UNANSWERED

Live Weekly Q&A

Join us for live Q&A. Learn the basics, discover what's possible, and connect with AccessAlly users.

Need Support?

Have questions? Get in touch. Our inbox support hours are 9am-5pm EST, Monday - Friday.

Laptop with the AccessAlly demo site

AccessAlly is the most flexible way to sell and elegantly deliver digital offerings. All in one place.

WATCH THE DEMO

You'll get follow-up emails about AccessAlly and new features. Opt out anytime. Full privacy policy here.