Migrate your Alpine IQ data
Customer engagement and loyalty CRM built for highly regulated retail markets, with deep POS integrations and behavioral segmentation. Primary use case is cannabis dispensary CRM but expanding to other regulated industries.
In its favor
Why people choose Alpine IQ
The signal that keeps Alpine IQ on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Unifies all customer purchase data, loyalty history, and behavioral signals into a single platform, eliminating the need to manually reconcile fragmented POS and marketing tools.
Advanced audience segmentation based on real-time purchase behavior, product category preferences, and visit frequency, enabling targeted campaigns without relying solely on discount offers.
Built-in loyalty program with points accrual, tier management, and automated reward redemption reduces the need for a separate loyalty vendor and simplifies reporting.
Compliance tools purpose-built for regulated industries like cannabis help dispensaries navigate SMS opt-in rules, marketing restrictions, and state-specific data requirements without manual monitoring.
POS integrations with Dutchie, Flowhub, Cova, and others sync customer records and transaction data bidirectionally, keeping loyalty balances accurate without manual data entry.
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.
Reasons to switch
Why people leave Alpine IQ
The recurring reasons buyers give for replacing Alpine IQ. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where Alpine IQ fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
What gets migrated
Alpine IQ object support
Object-by-object support for Alpine IQ migrations. Per-pair details surface during scoping.
Personas (Contacts)
Fully supportedPersonas are the primary contact object in Alpine IQ, containing name, phone, email, birthdate, gender, address, and med ID. We migrate all standard PII fields via the /api/v2/loyalty POST endpoint and preserve custom override attributes set via the /api/v2/loyaltyContact/override endpoint. Blocklisted contacts are excluded from GET responses and we flag any suppressed records during export scoping.
Orders
Fully supportedOrder objects include order ID, status, substatus, timestamps, customer PII, item data (product name, category, SKU, brand, price, discount), payment details, and attribution parameters. We extract the full order history including cancelled and refunded orders to preserve purchase behavior for segmentation rebuilds.
Audiences
Mapping requiredAudiences are segmented contact groups used for campaign targeting and automation triggers. Alpine IQ stores audience membership by contact ID with a points multiplier per audience. We map audience membership as a tag or custom property on the contact record since most destination CRMs do not have a native audience-equivalent object.
Loyalty Programs (Points and Tiers)
Mapping requiredLoyalty point balances and tier status are stored on the contact record in Alpine IQ. Points multipliers are set per audience. We preserve point balances as a numeric custom property and tier names as a text field, but native tier logic (progression rules, expiration policies) requires manual reconfiguration in the destination system.
Discount Groups
Mapping requiredAlpine IQ discount groups map to specific POS discount rules and customer eligibility flags. The Dutchie integration guide shows discount groups as a mapped field in the customer profile. We export discount group assignments as a text property on the contact and note that the receiving system must have corresponding discount rules configured.
Opt-In Records
Fully supportedEmail and SMS opt-in status is tracked separately via /api/v2/optin endpoints and can be set per email address or phone number. We migrate opt-in flags as boolean properties on the contact record, preserving the last-modified timestamp to honor consent recency.
Store/Location Mappings
Mapping requiredMulti-location Alpine IQ accounts require each integration or data source to be mapped to a specific store location. The store name in Alpine IQ must exactly match the location name in the connected POS. We export store mapping configurations separately and flag mismatches that would prevent loyalty attribution from resolving correctly.
Attribution Parameters
Fully supportedThe attr parameter on URLs and order objects allows Alpine IQ to track campaign attribution and UTM-like sources. Attribution values are stored in the Order object and can be used to rebuild campaign performance reports in the destination system.
Flow Events
Mapping requiredFlows are automation triggers based on events like order_created, order_completed, order_cancelled, cart_abandoned, and behavioral events. Event schemas vary by integration (POS vs ecommerce). We export the event log and map trigger conditions to equivalent automation rules in the destination platform.
Custom Contact Properties
Mapping requiredAlpine IQ supports custom fields on Persona records that can be set via override endpoints. We export all custom properties alongside standard fields and map them to custom fields in the destination CRM. Field type differences (text vs number vs date) require type-safe transformation during import.
Push Notification IDs
Mapping requiredMobile wallet push notification IDs are stored on contacts via /api/v1.1/contact/addPushID. These IDs are platform-specific (device tokens) and cannot be transferred between systems. We export the push ID as a reference field for audit purposes but note it becomes invalid in a new app environment.
Integration Source IDs
Fully supportedEvery contact has 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 to maintain the audit trail of where each contact originated.
| Object | Support | Notes |
|---|---|---|
| Personas (Contacts) | Fully supported | Personas are the primary contact object in Alpine IQ, containing name, phone, email, birthdate, gender, address, and med ID. We migrate all standard PII fields via the /api/v2/loyalty POST endpoint and preserve custom override attributes set via the /api/v2/loyaltyContact/override endpoint. Blocklisted contacts are excluded from GET responses and we flag any suppressed records during export scoping. |
| Orders | Fully supported | Order objects include order ID, status, substatus, timestamps, customer PII, item data (product name, category, SKU, brand, price, discount), payment details, and attribution parameters. We extract the full order history including cancelled and refunded orders to preserve purchase behavior for segmentation rebuilds. |
| Audiences | Mapping required | Audiences are segmented contact groups used for campaign targeting and automation triggers. Alpine IQ stores audience membership by contact ID with a points multiplier per audience. We map audience membership as a tag or custom property on the contact record since most destination CRMs do not have a native audience-equivalent object. |
| Loyalty Programs (Points and Tiers) | Mapping required | Loyalty point balances and tier status are stored on the contact record in Alpine IQ. Points multipliers are set per audience. We preserve point balances as a numeric custom property and tier names as a text field, but native tier logic (progression rules, expiration policies) requires manual reconfiguration in the destination system. |
| Discount Groups | Mapping required | Alpine IQ discount groups map to specific POS discount rules and customer eligibility flags. The Dutchie integration guide shows discount groups as a mapped field in the customer profile. We export discount group assignments as a text property on the contact and note that the receiving system must have corresponding discount rules configured. |
| Opt-In Records | Fully supported | Email and SMS opt-in status is tracked separately via /api/v2/optin endpoints and can be set per email address or phone number. We migrate opt-in flags as boolean properties on the contact record, preserving the last-modified timestamp to honor consent recency. |
| Store/Location Mappings | Mapping required | Multi-location Alpine IQ accounts require each integration or data source to be mapped to a specific store location. The store name in Alpine IQ must exactly match the location name in the connected POS. We export store mapping configurations separately and flag mismatches that would prevent loyalty attribution from resolving correctly. |
| Attribution Parameters | Fully supported | The attr parameter on URLs and order objects allows Alpine IQ to track campaign attribution and UTM-like sources. Attribution values are stored in the Order object and can be used to rebuild campaign performance reports in the destination system. |
| Flow Events | Mapping required | Flows are automation triggers based on events like order_created, order_completed, order_cancelled, cart_abandoned, and behavioral events. Event schemas vary by integration (POS vs ecommerce). We export the event log and map trigger conditions to equivalent automation rules in the destination platform. |
| Custom Contact Properties | 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 and map them to custom fields in the destination CRM. Field type differences (text vs number vs date) require type-safe transformation during import. |
| Push Notification IDs | Mapping required | Mobile wallet push notification IDs are stored on contacts via /api/v1.1/contact/addPushID. These IDs are platform-specific (device tokens) and cannot be transferred between systems. We export the push ID as a reference field for audit purposes but note it becomes invalid in a new app environment. |
| Integration Source IDs | Fully supported | Every contact has 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 to maintain the audit trail of where each contact originated. |
Gotchas
What to watch for in Alpine IQ migrations
Issues we've hit on past Alpine IQ migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
Blocklist contacts excluded from standard API GET
Store name matching required for loyalty attribution
Initial integration sync delay up to 24 hours
Points and tier expiration logic not exported
| Severity | Issue |
|---|---|
| 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 |
Leaving Alpine IQ?
Where Alpine IQ customers move next
12 destinations Alpine IQ can migrate to.
How a Alpine IQ migration works
Four steps, Alpine IQ-specific
Connect
API key obtained from the AIQ customer portal under Settings > API; passed in request headers. into Alpine IQ. Scopes limited to read-only on the data we move.
Map
We translate Alpine IQ-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate Alpine IQ quirks before production.
Migrate
Full migration with Alpine IQ rate-limit handling. Rollback available throughout.
FAQ
Alpine IQ migration FAQ
Answers to the questions buyers ask most during Alpine IQ migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your Alpine IQ migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationReady when you are
Migrate Alpine IQ.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your Alpine IQ setup and destination — written quote back within a business day.