CRM migration

Migrate from Alpine IQ to Microsoft Dynamics 365 Sales

Field-level mapping, validation, and rollback between Alpine IQ and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .

Alpine IQ logo

Alpine IQ

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

70%

7 of 10

objects map 1:1 between Alpine IQ and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Alpine IQ to Microsoft Microsoft Dynamics 365 Sales is a platform migration from a purpose-built cannabis and regulated-retail CRM to an enterprise Microsoft CRM. Alpine IQ Personas map to Dynamics 365 Contact (or Lead for unqualified prospects), with loyalty point balances and tier names preserved as custom fields. Order history migrates to a custom entity or Opportunity line items depending on the customer's sales process, and attribution parameters from Alpine IQ's attr field transfer as custom properties for campaign reporting. We handle blocklisted contact suppression during export, store-name mapping validation for multi-location accounts, and opt-in status as Contact-level boolean fields. Alpine IQ Flows (automation triggers), discount group configurations tied to POS rules, and loyalty program expiration logic do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Dynamics or Power Automate.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Alpine IQ logo

Alpine IQ

What's pushing teams away

  • Steep learning curve with a complex, layered interface makes onboarding staff time-consuming and delays realizing value from advanced segmentation and automation features.
  • Reporting tools lack customization and flexibility—dashboards are difficult to parse at a glance and loading times for filtered reports frustrate marketing teams.
  • SMS deliverability and compliance requirements in regulated markets can limit campaign effectiveness, especially as carriers tighten filtering on cannabis-adjacent content.
  • Multi-location store mapping requires exact name matching between Alpine IQ and POS systems, creating friction during rollout and causing sync failures when locations are renamed.
  • Per-store and per-contact pricing model historically inflated costs for growing dispensary chains, prompting operators to evaluate alternatives when expanding across new markets.

Choosing

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Alpine IQ objects map to Microsoft Dynamics 365 Sales

Each row shows how a Alpine IQ object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Alpine IQ

Persona

maps to

Microsoft Dynamics 365 Sales

Contact (or Lead)

1:1
Fully supported

Alpine IQ Personas map to Dynamics 365 Contact for qualified customers and Lead for prospects that have not been assigned to a sales rep. We use the Persona is_customer flag and order history to determine routing: contacts with at least one completed order become Dynamics Contact; all others become Lead. Standard PII fields (name, phone, email, birthdate, address, med ID) map directly; loyalty point balance and tier status migrate to custom fields aiq_loyalty_points__c and aiq_loyalty_tier__c.

Alpine IQ

Order

maps to

Microsoft Dynamics 365 Sales

Custom Order Entity (or Opportunity with Line Items)

1:1
Fully supported

Alpine IQ Order records contain order ID, status, timestamps, customer PII, item data (product name, category, SKU, brand, price, discount), payment details, and attribution parameters. Microsoft Dynamics 365 Sales has no native Order object; we create a custom entity aiq_order__c with the relevant fields, or map to Opportunity with Line Items if the customer prefers an Opportunity-centric sales process. The choice is made during scoping based on the customer's revenue recognition workflow.

Alpine IQ

Audience

maps to

Microsoft Dynamics 365 Sales

Marketing List (static)

1:1
Fully supported

Alpine IQ audiences are segmented contact groups used for campaign targeting. We export audience membership (contact ID plus audience name and points multiplier) and create a static Marketing List in Dynamics 365 for each audience. The points multiplier migrates to a custom field aiq_audience_multiplier__c on the MarketingListMember record or as a custom field on the Contact if the customer prefers per-contact audience scoring.

Alpine IQ

Loyalty Program (Points and Tiers)

maps to

Microsoft Dynamics 365 Sales

Custom fields on Contact

lossy
Fully supported

Loyalty point balances and tier names are stored as custom fields on the Contact record: aiq_loyalty_points__c (number), aiq_loyalty_tier__c (text), and aiq_reward_override__c (boolean). The rules governing point expiration, tier progression thresholds, and reward eligibility are configuration-level settings in Alpine IQ and do not export. We deliver a loyalty program snapshot document listing all reward structures for manual rebuild in Dynamics 365 Power Automate or a loyalty management ISV.

Alpine IQ

Discount Group

maps to

Microsoft Dynamics 365 Sales

Custom field on Contact + POS rule handoff document

lossy
Fully supported

Alpine IQ discount groups map to POS discount rules and customer eligibility flags. We export the discount group name and eligibility status as a custom picklist field aiq_discount_group__c on the Contact. The POS-side discount rule configuration does not migrate; we provide a written handoff document listing each discount group with its eligibility criteria for the customer's POS admin to reconfigure.

Alpine IQ

Opt-In Record

maps to

Microsoft Dynamics 365 Sales

Contact fields (HasOptedOutOfEmail, aiq_sms_optin__c)

1:1
Fully supported

Email and SMS opt-in status tracked via Alpine IQ /api/v2/optin endpoints migrates to Dynamics 365 Contact. Email opt-in becomes HasOptedOutOfEmail (false = opted in); SMS opt-in becomes a custom boolean field aiq_sms_optin__c. Each opt-in record is timestamped and we preserve the last opt-in date in aiq_email_optin_date__c and aiq_sms_optin_date__c custom fields.

Alpine IQ

Store/Location Mapping

maps to

Microsoft Dynamics 365 Sales

Account (location) + Contact aiq_store__c lookup

lossy
Fully supported

Multi-location Alpine IQ accounts map each integration to a specific store. We extract the full store mapping configuration and validate that store names in Alpine IQ match the Account names in Dynamics 365. Mismatched store names require correction before migration because Dynamics 365 does not have Alpine IQ's integration-name-to-store resolver. We flag discrepancies during scoping and provide a store-name reconciliation worksheet.

Alpine IQ

Attribution Parameters (attr)

maps to

Microsoft Dynamics 365 Sales

Custom fields on aiq_order__c or Opportunity

1:1
Fully supported

Alpine IQ's attr parameter on order objects stores campaign attribution values (UTM-like sources). We export the raw attr string and parse it into structured custom fields: aiq_attr_source__c, aiq_attr_medium__c, aiq_attr_campaign__c, and aiq_attr_content__c on the order or Opportunity entity. This enables campaign ROI reporting in Dynamics 365 without a separate analytics export.

Alpine IQ

Custom Contact Properties

maps to

Microsoft Dynamics 365 Sales

Custom fields on Contact

1:1
Mapping required

Alpine IQ supports custom fields on Persona records. We export all custom properties alongside standard fields and map them to custom fields in Dynamics 365 with API names prefixed aiq_ (for example, aiq_preferred_strain__c, aiq_visit_frequency__c). Field types are matched to Dynamics 365 equivalents: text to Text, numbers to Number, dates to Date, and multi-select to Choice.

Alpine IQ

Integration Source ID

maps to

Microsoft Dynamics 365 Sales

Custom field on Contact aiq_source_id__c

1:1
Fully supported

Every Alpine IQ Persona carries a source ID from the integration that created it (POS, ecommerce, etc.). We preserve all source IDs in a custom field aiq_source_id__c (text) and aiq_source_system__c (text) on the Contact record. This maintains the integration audit trail and enables reconciliation if the customer later re-connects POS integrations to Dynamics 365.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Alpine IQ logo

Alpine IQ gotchas

Medium

Blocklist contacts excluded from standard API GET

High

Store name matching required for loyalty attribution

Low

Initial integration sync delay up to 24 hours

Medium

Points and tier expiration logic not exported

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • Blocklisted contacts silently excluded from Alpine IQ API export

    Alpine IQ's Personas API explicitly filters out any blocklisted contacts from GET responses. Suppressed contacts are silently omitted from standard exports. We mitigate this by querying alternative endpoints where available and cross-referencing opt-in status flags on returned records. During scoping we confirm whether the customer has a high blocklist volume and adjust the export strategy. Without this mitigation, suppressed contacts that should be excluded from marketing in Dynamics 365 may be inadvertently included as unmarked records.

  • Store name matching required before multi-location migration

    Alpine IQ resolves customer messaging and favorite-store attribution by matching integration source names to store names in the retail store settings. If a store name in Alpine IQ does not exactly match the corresponding Account name in Dynamics 365, the store-contact lookup fails and loyalty attribution breaks. We extract the full store mapping configuration from Alpine IQ during discovery and validate name alignment against Dynamics 365 Account names before initiating any record migration. Mismatches go to a reconciliation worksheet for the customer's admin to correct.

  • Loyalty program rules (expiration, tiers, multipliers) do not migrate

    Alpine IQ stores point balances and tier status on the Persona record, but the rules governing point expiration, tier progression thresholds, and audience points multipliers are configuration-level settings that do not export via API. We preserve all point balances accurately as custom fields on the Contact. The customer must manually rebuild the loyalty program rules (point expiration cadence, tier thresholds, multiplier logic) in Dynamics 365 Power Automate or a loyalty ISV. We deliver a loyalty program snapshot document listing all reward structures and thresholds for rebuild.

  • Dynamics 365 has no native Order object in Sales

    Alpine IQ treats Order as a first-class object with product details, attribution parameters, and payment data. Microsoft Dynamics 365 Sales does not include a native Order entity (Order is available in the Order Management app or Project Operations). We create a custom aiq_order__c entity to receive order data, or map to Opportunity with Line Items if the customer prefers an Opportunity-centric model. The choice affects downstream reporting and must be confirmed during scoping because it changes the data model significantly.

  • Alpine IQ Flows and automation triggers do not migrate

    Alpine IQ Flows (automation triggers based on order_created, order_completed, cart_abandoned, and behavioral events) are event-driven automation rules with no direct Dynamics 365 equivalent. Dynamics 365 Power Automate can replicate some triggers using Dataverse change detection, but the logic must be rebuilt. We deliver a written inventory of every active Alpine IQ Flow with its trigger, conditions, and actions, and the customer's admin or a Dynamics partner rebuilds them post-migration. This is documented separately from the data migration scope.

Migration approach

Six steps for a successful Alpine IQ to Microsoft Dynamics 365 Sales data migration

  1. Discovery and scope definition

    We audit the source Alpine IQ account: Persona count and custom property definitions, order volume and history depth, audience list count and membership size, loyalty program snapshot (points, tiers, multipliers), opt-in records, and POS integration configuration (Dutchie, Flowhub, Cova, etc.). We pair this with a Dynamics 365 instance review: existing Account and Contact field schema, custom entity definitions, user count, and Power Platform licensing. The discovery output is a written migration scope, a Dynamics 365 schema design proposal, and a recommendation on Order entity strategy (custom entity vs Opportunity with Line Items).

  2. Blocklist mitigation and store name reconciliation

    We extract the full contact export including any blocklist considerations, query Alpine IQ's alternative endpoints to capture suppressed records, and flag any contacts with inconsistent opt-in status. We extract the full store and location mapping configuration and validate store names against Dynamics 365 Account names. Mismatches are documented in a store-name reconciliation worksheet for the customer's admin to correct before record migration begins. This step prevents loyalty attribution failures and orphaned contact-store relationships.

  3. Schema design and custom entity creation

    We create the custom aiq_order__c entity (or configure Opportunity/Line Item mapping if the customer chose that model), custom fields on Contact for loyalty points, tier, opt-in timestamps, med ID, attribution, and source system. We configure Record Types and Sales Processes in Dynamics 365 if the customer uses multiple sales processes. The schema deploys into the customer's Dynamics 365 sandbox first for validation before production migration begins.

  4. Sandbox migration and reconciliation

    We run a full migration into Dynamics 365 Sandbox using production-like data volume. The customer's RevOps or IT lead reconciles record counts (Personas in, Contacts and Leads out, Orders in, line items in), spot-checks 20-30 random records against Alpine IQ source data, and validates loyalty point balances and opt-in flags. The customer signs off the schema and mapping before production migration begins. Any corrections happen in sandbox, not in production.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Contacts (with AccountId resolved and Lead/Contact routing applied), Loyalty custom fields on Contact (aiq_loyalty_points__c, aiq_loyalty_tier__c), Opt-in fields and attribution, Orders and Line Items (custom entity or Opportunity), Audience membership (Marketing Lists), and Custom Contact Properties (aiq-prefixed fields). Each phase emits a row-count reconciliation report before the next phase begins. Blocklist contacts are imported last with the suppressed flag set so that Dynamics marketing has accurate opt-out data.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Alpine IQ writes during cutover, run a final delta migration of any records modified during the migration window, then enable Dynamics 365 as the system of record. We deliver the Flow inventory document (Alpine IQ automation triggers), loyalty program snapshot (point expiration rules, tier thresholds), and discount group handoff document (POS eligibility criteria) to the customer's admin team. We support a one-week hypercare window where we resolve reconciliation issues. We do not rebuild Alpine IQ Flows as Power Automate flows inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Alpine IQ logo

Alpine IQ

Source

Strengths

  • Purpose-built compliance tooling for regulated industries including cannabis marketing restrictions and SMS carrier rules.
  • Deep bidirectional POS integrations that sync customer records and transaction data without manual reconciliation.
  • Flexible audience segmentation combining purchase frequency, product category, visit recency, and custom behavioral signals.
  • Order attribution tracking with attr parameters enables campaign ROI reporting at the order level.
  • BigQuery integration provides a documented bulk data export path for organizations with data warehouse infrastructure.

Weaknesses

  • Steep learning curve and complex interface delay time-to-value for new users and smaller teams without dedicated ops resources.
  • Reporting and dashboard tooling lacks customization, filtering depth, and suffers from slow load times on large datasets.
  • API rate limits are not publicly documented, creating uncertainty for large-scale migration batch planning.
  • SMS deliverability in cannabis-adjacent markets is constrained by carrier filtering, limiting campaign reach despite opt-in compliance.
  • Blocklist suppression is handled server-side on GET but the full blocklist is not accessible via API, complicating audit completeness.
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Alpine IQ and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Alpine IQ and Microsoft Dynamics 365 Sales .

  • Object compatibility

    A

    All 8 core objects map 1:1 between Alpine IQ and Microsoft Dynamics 365 Sales .

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Alpine IQ: 5 requests per second, 120 per minute, and 2,000 per hour per documented developer guide..

  • Data volume sensitivity

    B

    Alpine IQ doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Alpine IQ to Microsoft Dynamics 365 Sales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Alpine IQ to Microsoft Dynamics 365 Sales data migrations

Answers to the questions buyers ask most during Alpine IQ to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Alpine IQ to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 15,000 Personas and 50,000 Orders with no custom loyalty entities. Migrations with large order histories (over 200,000 records), multi-location store mappings requiring name reconciliation, or custom order entities requiring Dynamics 365 schema configuration move to six to ten weeks because of order denormalization, attribution parameter parsing, and sandbox validation cycles.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Alpine IQ.
Land in Microsoft Dynamics 365 Sales , intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day