Roller Integration

Roller Integration Guide

OVERVIEW

Your Alpine database can be configured to automatically integrate with your Roller account, syncing over ticket admissions, check-ins, and membership payments, on a regular basis. Never miss a beat again and see comprehensive data in one place, your Alpine database, without worrying about manually needing to do exports and imports.

WHAT WE PUSH INTO ROLLER

This integration pulls information from Roller; your Alpine database does not push data to your Roller account. If you update data originally created in Roller from Alpine, it will not update in Roller.

WHAT WE PULL FROM ROLLER

On a nightly basis, Alpine will pull all Transactions from Roller from the last time it synced—meaning that Alpine will be at most only 24 hours behind the latest data within Roller.

  • Customer Data: Customer profiles including names, emails, phone numbers, and addresses

  • Booking Data: Bookings with their associated products, statuses, and customer relationships

  • Product Data: Product information including types, subtypes, and names

  • Ticket Data: Individual tickets associated with bookings

  • Attendance Data: Check-in records for events and sessions

CONSTITUENT MAPPING

All Alpine Actions will be associated with one Constituent, matched by customer email from Roller.

 

Roller Field

 

Alpine Constituent Field

 

firstName

First Name

lastName

Last Name

email

Email

contactNumber

Phone

address

Address

 

Constituent Creation Rules:

  • Constituents are only created for customers with valid bookings (not cancelled)

  • Customers must be associated with valid products (memberships, sessions, or donations)

  • Email address is required for Constituent creation

  • Bookings must be created after the integration start date

ACTION TYPE MAPPINGS

Every Roller booking can encompass several different Alpine Actions: one Roller booking may involve tickets to sessions, as well as membership purchases. This means that each Roller booking will correspond to several Alpine Actions, grouped by the following criteria:

Membership Payment Actions

Within a Roller Booking, all items with product type "pass" and sub_type "membership" will be combined into a single Alpine Action of Type Membership Payment.

 

Roller Field

 

Alpine Action Field

 

bookingReference

Notes (as "[ROLLER] Booking Reference")

bookingDate

Date (Happened At / Action Date)

Multiple bookingItemIds

Ticket Quantity

Sum of item prices

Amount

bookingEndDate - bookingDate

Membership Length

bookingStatus

Notes (as "Status")

bookingItemId

Notes (as "[ROLLER] Booking Item ID")

productName

Campaign Name

productId

Campaign

 

Grouping Logic: Multiple membership items within the same booking combine into a single Membership Payment Action. For example, a Roller booking with one Primary Adult and one Secondary Adult appears on the same Membership Payment Action. The notes section would look like:

Family Membership - Primary Adult - 1
Booking Fee: 4.61
Family Membership - Second Adult - 1
Status: Paid

RSVP Actions (Ticket Purchases)

Within a Roller Booking, all items that have product type "pass" and sub_type "session", "recurringsessions", or null will be combined into a single Alpine Action of Type RSVP.

 

Roller Field

 

Alpine Action Field

 

bookingDate

Date (Happened At / Action Date)

bookingReference

Notes (as "[ROLLER] Booking Reference")

Multiple bookingItemIds

Ticket Quantity

Sum of item prices

Amount

bookingStatus

Notes (as "Status")

bookingItemId

Notes (as "[ROLLER] Booking Item ID")

bookingFeeAmount

Notes (if present)

productName

Campaign Name

productId

Campaign

  

Grouping Logic: Multiple ticket items within the same booking reference are combined into a single RSVP Action.

Check-In Actions

Attendance records that can be matched to existing Roller will be synced in Alpine as Check-In Actions.

  

Roller Field

 

Alpine Action Field

 

checkInDate

Date (Happened At / Action Date)

bookingReference

Linked to corresponding RSVP Action

bookingItemId

Notes (as "[ROLLER] Booking Item ID")

checkInDateTime

Notes (as Event Start Time: {datetime})

productName (grouped)

Notes

 

Matching Logic: Check-in Actions are created from attendance records and are matched to their corresponding purchase (RSVP) Actions by linking them via a combination of the bookingReference ID, bookingItemId (item ID), and Action type. This ensures accurate matching, especially in cases where multiple items are present in a single booking.

BOOKING STATUS HANDLING

Cancelled Bookings

  • When Roller bookings are cancelled, the integration processes them during the next nightly sync cycle.

    • Partially cancelled bookings: The integration updates Alpine Actions to reflect current quantity and amount

    • Fully cancelled bookings: The integration removes the corresponding Alpine Action

Valid Product Filtering

Only bookings associated with the following product types are processed:

  • Memberships: type = "pass" AND sub_type = "membership"

  • Sessions: type = "pass" AND sub_type IN ["session", "recurringsessions", null]

CONNECTING TO YOUR ROLLER ACCOUNT

To integrate your Roller account, some prerequisites must be met. Ensure that the necessary Roller integration fields are present under the "Integrations" tab in the client's Alpine database. If these fields are missing, submit a support ticket for an engineer to create the integration, making the Roller fields available.

Next, you'll need API credentials from your Roller account to connect it to Alpine. Follow these steps to create a Roller API Key:

Create API Key

  1. Log into your Roller account.

  2. Navigate to "Settings" > "Integrations."

  3. Click "Create client key."

  4. Select "API Key" and name it "Humanitru."

  5. Click "Create."

Once the API fields are established, clients have two options:

  1. Users can input existing API credentials into Alpine to start the sync. This includes the Roller Client ID and Roller Client Secret. If no sync date is set, the system syncs all Roller records from the last 6 months.

  2. If the client desires to start the sync from a specific historical date, an engineering story will be required to configure that sync start date.

TECHNICAL CAVEATS

Data Scope Restrictions

  • If a booking created in Roller before the sync start date is later canceled, Alpine will not track the cancellation. This creates an unmatchable scenario where Roller's historical data shows the original booking, but Alpine has no corresponding record for reconciliation

  • Requires valid email addresses for Constituent creation

  • Identity changes: The Roller integration does not automatically update existing Constituent records when customer identity information changes in Roller. If a customer updates their name or email address in your Roller system, these changes will not be reflected in their corresponding Alpine Constituent profile. In cases where email addresses are changed, this may result in the creation of duplicate Constituent records during the next sync. To maintain data accuracy, you will need to manually update Constituent information in Alpine when customers make identity changes in Roller, and periodically review for potential duplicate records that may be created due to email address changes.

Technical Limitations

  • Donation processing is currently disabled in the code