CRM migration

Migrate from Alpine IQ to Salesforce Sales Cloud

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

Alpine IQ logo

Alpine IQ

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

67%

8 of 12

objects map 1:1 between Alpine IQ and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

1-2 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Alpine IQ to Salesforce is a platform migration for cannabis retailers and multi-location operators that have outgrown Alpine IQ's loyalty-centric model and need Salesforce's broader CRM capabilities. Alpine IQ uses a Persona object as the primary contact unit with loyalty point balances, tier names, and audience memberships stored as properties on that record. Salesforce separates Leads and Contacts and stores loyalty data as custom fields on Contact. We extract Personas with their full PII, point balances, tier names, and opt-in flags, resolve each Persona to a Contact tied to a Location Account, and migrate Order history as Opportunity records with custom attribution fields. The Loyalty program rules governing point expiration and tier progression live in Alpine IQ's configuration layer and are not accessible via API; we preserve all balances and tiers accurately and document the rules for manual reconfiguration in Salesforce. Flows, discount groups tied to POS rules, and compliance configuration do not migrate; we deliver a written inventory of every active Flow and discount rule for your admin to rebuild in Salesforce or at the POS layer.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Alpine IQ objects map to Salesforce Sales Cloud

Each row shows how a Alpine IQ object lands in Salesforce Sales Cloud, 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 (Contact)

maps to

Salesforce Sales Cloud

Contact (on Account)

1:1
Fully supported

Alpine IQ Personas map directly to Salesforce Contact records. We export all standard PII fields (name, phone, email, birthdate, address, med ID) via Alpine IQ's /api/v2/loyalty POST endpoint and insert into Salesforce Contact. Each Contact is resolved to a parent Account representing the dispensary location. The source integration ID is preserved in a custom field aiq_integration_source_id__c to maintain cross-reference to the originating POS record.

Alpine IQ

Company / Store

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Multi-location Alpine IQ accounts map each retail location to a Salesforce Account record. Single-location accounts map to one Account. The Account name is set to the store name as it appears in the POS system. We validate store name alignment between Alpine IQ and the connected POS (Dutchie, Flowhub, Cova) before migration to prevent loyalty attribution failures. Store name mismatches are flagged in the discovery report for customer resolution before data moves.

Alpine IQ

Order

maps to

Salesforce Sales Cloud

Opportunity + custom attribution fields

1:1
Fully supported

Alpine IQ Order objects map to Salesforce Opportunity records. Order ID, status, substatus, and all timestamps migrate as Opportunity fields and custom date fields. Item data (product name, category, SKU, brand, price, discount) migrates as OpportunityLineItem records with the Standard Pricebook entry resolved at migration time. Attribution parameters (attr) storing campaign source and medium migrate to a custom field aiq_attr_parameters__c on the Opportunity, preserving campaign ROI reporting at the order level.

Alpine IQ

Loyalty Points

maps to

Salesforce Sales Cloud

Contact custom field (aiq_loyalty_points__c)

lossy
Fully supported

Alpine IQ stores point balances as a numeric property on the Persona record. We export point balances and map them to a custom numeric field aiq_loyalty_points__c on the Salesforce Contact. Tier names map to a custom picklist field aiq_loyalty_tier__c. Point expiration logic, tier progression thresholds, and reward eligibility rules live in Alpine IQ's configuration layer and are not accessible via API. We preserve all balances accurately but the customer must manually recreate loyalty program rules in Salesforce's Loyalty Management module or as custom Flow logic post-migration.

Alpine IQ

Audience Membership

maps to

Salesforce Sales Cloud

Campaign + CampaignMember

1:many
Fully supported

Alpine IQ Audiences are segmented contact groups used for campaign targeting. We map audience membership to Salesforce Campaign records with the audience name as Campaign Name, and create CampaignMember records linking each Contact to the relevant Campaign. If the customer has many audiences (over 50), we discuss prioritization during scoping and migrate the top-frequency and top-spend segments first, with a full audience map delivered as a written inventory.

Alpine IQ

Opt-In Record (Email + SMS)

maps to

Salesforce Sales Cloud

Contact standard fields + custom compliance fields

1:1
Fully supported

Alpine IQ tracks email and SMS opt-in status separately via /api/v2/optin endpoints. Email opt-in migrates to Salesforce's standard HasOptedOutOfEmail field. SMS opt-in migrates to a custom field aiq_sms_optin__c. Compliance flags for cannabis marketing restrictions migrate to a custom picklist field aiq_compliance_status__c. Accurate opt-in migration is critical for cannabis retailers operating under state-specific SMS marketing rules.

Alpine IQ

Discount Group

maps to

Salesforce Sales Cloud

Configuration (POS-level, no Salesforce equivalent)

lossy
Fully supported

Alpine IQ discount groups map to specific POS discount rules and customer eligibility flags. The discount group name and eligibility flag migrate as custom fields aiq_discount_group__c and aiq_discount_eligible__c on Contact. However, the POS-level discount rules themselves (percentage off, loyalty multiplier, product eligibility) live in the POS system, not in Alpine IQ or Salesforce. We export the discount group configuration as a written inventory for the customer's POS admin to reapply at the POS layer.

Alpine IQ

Flow Events (order_created, order_completed, cart_abandoned)

maps to

Salesforce Sales Cloud

Task records (migration) + written Flow inventory (rebuild)

1:1
Fully supported

Alpine IQ Flows are automation triggers based on behavioral events like order_created, order_completed, and cart_abandoned. These events do not map to Salesforce Flow triggers because Salesforce Flow's record-triggered model operates on CRM object events rather than POS ecommerce events. We export Flow event history as Activity Task records for audit completeness, and deliver a written inventory of every active Flow with its trigger conditions, actions, and a recommended Salesforce Flow equivalent for the customer admin to rebuild.

Alpine IQ

Custom Contact Properties

maps to

Salesforce Sales Cloud

Contact custom fields

1:1
Mapping required

Alpine IQ supports custom fields on Persona records that can be set via override endpoints. We export all custom properties alongside standard fields, map them to Salesforce custom fields on Contact using a naming convention that preserves the Alpine IQ field name where possible (aiq_custom_{fieldname}__c). Custom field data types are mapped: text to Text, number to Number, date to Date, checkbox to Checkbox.

Alpine IQ

Push Notification IDs

maps to

Salesforce Sales Cloud

Not migratable (device tokens are platform-specific)

lossy
Mapping required

Mobile wallet push notification IDs are stored on Alpine IQ contacts via /api/v1.1/contact/addPushID. These IDs are device tokens specific to Alpine IQ's mobile integration and cannot be transferred between systems. We export the push notification ID list as a reference document for the customer's admin to re-enroll mobile users post-migration through the new Salesforce Mobile app or a custom push notification integration.

Alpine IQ

Integration Source IDs

maps to

Salesforce Sales Cloud

Contact custom field (aiq_integration_source_id__c)

1:1
Fully supported

Every Alpine IQ contact carries a source ID from the integration that created it (POS, ecommerce, etc.). The /api/v1/piis/:uid/bySrcID endpoint allows lookup by source ID. We preserve all source IDs in a custom field aiq_integration_source_id__c on Contact to maintain cross-reference to the originating POS customer record. This enables reconciliation during the validation step and supports data quality checks if the customer runs dual-system periods.

Alpine IQ

Attribution Parameters (attr)

maps to

Salesforce Sales Cloud

Opportunity custom field (aiq_attr_parameters__c)

1:1
Fully supported

The attr parameter on Alpine IQ order objects tracks campaign attribution and UTM-like sources. Attribution values are stored in the Order object and preserved in a custom field aiq_attr_parameters__c on the Opportunity during migration. The customer uses this field to rebuild campaign ROI reporting in Salesforce Reports or a connected BI tool post-migration. We do not parse the attr string into separate UTM fields unless requested during scoping.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Loyalty program rules are not accessible via API

    Alpine IQ stores point balances and tier names as properties on the Persona record, but the rules governing point expiration cadence, tier progression thresholds, and reward eligibility are configuration-level settings that do not export via API. We preserve all point balances and tier names accurately, and the destination system must have equivalent loyalty program rules manually reconfigured. Customers should request a loyalty program export snapshot from Alpine IQ before migration to ensure no reward structures are lost. Salesforce's Loyalty Management module (an additional cost product) or custom Flow logic can replicate the rules post-migration.

  • Store name mismatch breaks loyalty attribution at multi-location accounts

    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 location name in the connected POS (Dutchie, Cova, Flowhub), the integration fails to sync and loyalty redemption breaks. This is especially common when locations are renamed during rebranding. We extract the full store mapping configuration from the Alpine IQ account during discovery and flag every mismatch for customer resolution before contact migration begins.

  • Blocklisted contacts silently excluded from standard API GET

    The Alpine IQ Personas API explicitly filters out any blocklisted contacts from GET responses. Standard contact exports via the /api/v2/loyalty endpoint silently omit suppressed contacts. We mitigate this by querying alternative endpoints where available and cross-referencing opt-in status flags on returned records. During the scoping call we confirm whether the customer has a high blocklist volume and adjust the export strategy accordingly. We cannot guarantee 100 percent blocklist export completeness if the API does not surface suppressed records.

  • SMS opt-in accuracy is critical for cannabis compliance

    Cannabis retailers operate under state-specific SMS marketing rules that require verified opt-in records. Alpine IQ tracks SMS opt-in separately via /api/v2/optin and the flag must migrate accurately to Salesforce's HasOptedOutOfPhone field or equivalent custom compliance field. Inaccurate opt-in migration can expose the business to regulatory risk in states with strict SMS consent rules. We treat SMS opt-in as a required migration checkpoint and validate opt-in counts against Alpine IQ's reporting before and after migration.

  • API rate limits are undocumented on Alpine IQ

    Alpine IQ does not publish API rate limits in its public documentation, creating uncertainty for large-scale migration batch planning. We use conservative batch sizing with exponential backoff and monitor for 429 responses during extraction. If rate limit responses appear, we adjust chunk sizes dynamically. This experimental approach adds overhead to the migration timeline and is flagged during scoping for accounts with contacts exceeding 50,000 records.

Migration approach

Six steps for a successful Alpine IQ to Salesforce Sales Cloud data migration

  1. Discovery and scoping

    We audit the Alpine IQ account across contact volume, loyalty tier count, audience group count, point balance distribution, active discount groups, POS integration type (Dutchie, Flowhub, Cova, or other), active Flows, and blocklist volume. We pair this with a Salesforce edition review: Professional ($80/user) covers most cannabis retail migrations; Enterprise ($165/user) is required if the customer needs record-triggered Flow at scale, advanced territory management, or custom report types; Unlimited ($330/user) only if 24x7 support and custom app distribution are required. The discovery output is a written migration scope, a store mapping validation report, and a loyalty program rules documentation request sent to Alpine IQ.

  2. Schema design and store mapping validation

    We design the Salesforce destination schema before any data moves. This includes creating custom fields for loyalty points (aiq_loyalty_points__c), loyalty tier (aiq_loyalty_tier__c), SMS opt-in (aiq_sms_optin__c), compliance status (aiq_compliance_status__c), discount group (aiq_discount_group__c), discount eligibility (aiq_discount_eligible__c), attribution parameters (aiq_attr_parameters__c), and integration source ID (aiq_integration_source_id__c). We validate that every store name in Alpine IQ exactly matches the corresponding location name in the connected POS. Any mismatches are documented and escalated to the customer for resolution before Account records are created in Salesforce.

  3. Sandbox migration and reconciliation

    We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's operations lead reconciles record counts (Contacts in, Accounts in, Opportunities in, Campaign Members in), spot-checks 25-50 random records for field-level accuracy against the Alpine IQ source, and signs off the schema and mapping before production migration begins. Store mapping mismatches discovered during Sandbox migration are resolved at this stage, not in production.

  4. Owner reconciliation and POS integration setup

    We extract every distinct Alpine IQ owner referenced on Persona and Order records and match by email against the Salesforce destination org's User table. Any owners without a matching Salesforce User go to a reconciliation queue. The customer's admin provisions missing Users. We also coordinate with the POS integration team to ensure the Salesforce-Alpine IQ connection (if retained during transition) or a new Salesforce-POS integration is configured before production data moves, so that new orders post-cutover flow to Salesforce automatically.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Alpine IQ store locations, validated against POS store names), Contacts (with AccountId resolved and loyalty fields populated from Persona properties), Opportunities (from Orders with aiq_attr_parameters__c and OpportunityLineItems from order items), Campaign records (from Alpine IQ Audiences with CampaignMember records linking Contacts), SMS and email opt-in fields, custom contact properties, and Flow event history as Activity records. Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and Flow rebuild handoff

    We freeze writes to Alpine IQ during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We validate loyalty tier counts, opt-in accuracy, order attribution parameters, and audience membership against Alpine IQ reporting before sign-off. We deliver the Flow and discount group inventory document to the customer's admin team. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's operations team. We do not rebuild Alpine IQ Flows as Salesforce Flow inside the migration scope; that work is documented separately for the customer's admin or a Salesforce partner.

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.
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Alpine IQ and Salesforce Sales Cloud.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • 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 Salesforce Sales Cloud 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 Salesforce Sales Cloud data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between one and two weeks for accounts under 25,000 Contacts, 5,000 Orders, and a single loyalty tier with straightforward store mappings. Multi-location accounts with multiple loyalty tiers, extensive audience segment mappings, large order histories, or custom objects move to three to four weeks because of store name validation across all locations, tier name picklist configuration, and bulk order migration via the Salesforce Bulk API.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Alpine IQ.
Land in Salesforce Sales Cloud, 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