Bubblehouse provides loyalty and referral solutions to ecommerce brands on Shopify. By integrating Bubblehouse with Postscript, merchants can trigger Postscript automations based on different events as well as capture subscriptions.
How a Bubblehouse Integration Benefits You
- Tailor real-time SMS messages based on subscriber loyalty events
- Personalize messages based on loyalty program status and point totals
- Drive retention, increase spending, and loyalty point redemption
Create a Postscript API Key
- Select your Shop Name in the side menu of your Postscript dashboard, then select API.
- Select Create Security Key Pair on the right side of the page, then confirm your action by selecting Yes.
- Add a label to your API key so you can track where this API key is being used.
- Select Show in the Private Key column to reveal your API key. Copy this key or write it down—you'll need to share it with the Tie team later.
Bubblehouse Side
Follow these steps in Bubblehouse to set up your Postscript integration.
- From the Bubblehouse superadmin select Integrations. Scroll down to the Postscript configuration section and enable it.
- For a popup-only integration, only the “Popup ID” field is required (see below).
- For events and subscriptions integration, “Keyword” and API public/private keys are also required (see below).
Open Postscript-provided popup configuration
NOTE: To use Postscript for subscription opt-ins but do not use popups, skip this section and make sure Use Integration for the SMS block is set to None.
- Go to Admin and select Ways to Earn Points, then scroll down to the SMS block configuration.
- Select Postscript under the Use Integration input.
- If the option says Postscript (disabled), you still can save changes, but you must also enable Postscript integration in superadmin.
- Select Save.
Below is an example of what a full configuration looks like:

Bubblehouse Trigger Events
Postscript automations can use any of these Bubblehouse properties as triggers:
Type |
Property |
Definition |
|---|---|---|
| Core Loyalty Metrics | BH_Points_Balance |
Current loyalty points (integer) |
BH_Points_Value |
Monetary value of points (string, e.g., "$50.00") | |
BH_Points_Value_Cents |
Point value in cents (integer) | |
BH_Points_Earned |
Total points ever earned | |
BH_Points_Redeemed |
Total points ever redeemed | |
BH_Spend_Cents |
Total qualifying purchase amount in cents | |
| Tier Information | BH_Tier |
Current tier name |
BH_NextTier |
Next achievable tier name | |
BH_Tier_Start_Date |
When current tier was achieved (YYYY-MM-DD) | |
BH_Tier_Expires |
Whether tier expires (1 or 0) | |
BH_Tier_Expiration_Date |
When tier expires (YYYY-MM-DD, if applicable) | |
BH_Tier_Icon |
URL to tier badge image | |
BH_NextTier_Icon |
URL to next tier badge image | |
BH_Tier_Banner |
URL to tier-specific email header image | |
BH_NextTier_Banner |
URL to next tier email header image | |
| Tier Progress Tracking | BH_NextTier_Spend_Baseline |
Starting spend baseline (string) |
| BH_NextTier_Spend_Baseline_Cents | Starting spend baseline in cents (integer) | |
| BH_NextTier_Pts_Baseline | Starting points baseline (integer) | |
| BH_NextTier_Spend_Progress | Amount spent toward next tier (string) | |
| BH_NextTier_Spend_Progress_Cents | Amount spent in cents (integer) | |
| BH_NextTier_Spend_Missing | Additional spend needed (string) | |
| BH_NextTier_Spend_Missing_Cents | Additional spend needed in cents (integer) | |
| BH_NextTier_Spend_Threshold | Total required for next tier (string) | |
| BH_NextTier_Spend_Threshold_Cents | Total required in cents (integer) | |
| BH_NextTier_Pts_Progress | Points earned toward next tier (integer) | |
| BH_NextTier_Pts_Missing | Points still needed (integer) | |
| BH_NextTier_Pts_Threshold | Total points required (integer) | |
| Tier Maintenance | BH_TierRenewal_Spend_Progress | Spend toward maintaining tier (string) |
| BH_TierRenewal_Spend_Progress_Cents | Spend toward maintaining tier in cents (integer) | |
| BH_TierRenewal_Spend_Threshold | Total needed to keep tier (string) | |
| BH_TierRenewal_Spend_Threshold_Cents | Total needed in cents (integer) | |
| BH_TierRenewal_Spend_Missing | Additional spend needed (string) | |
| BH_TierRenewal_Spend_Missing_Cents | Additional spend needed in cents (integer) | |
| BH_TierRenewal_Pts_Progress | Points toward renewal (integer) | |
| BH_TierRenewal_Pts_Threshold | Points required to renew (integer) | |
| BH_TierRenewal_Pts_Missing | Additional points needed (integer) | |
| BH_TierRenewal_Achieved | Whether renewal criteria met (1 or 0) | |
| Points Expiration | BH_Points_NextExpiration_Date | When points will expire (YYYY-MM-DD) |
| BH_Points_NextExpiration_Amount | Number of points expiring (integer) | |
| BH_Points_NextExpiration_Value | Dollar value of expiring points (string) | |
| BH_Points_NextExpiration_Value_Cents | Value in cents (integer) | |
| Engagement Metrics | BH_Referrals_Sent | Number of unique referrals shared (integer) |
| BH_Referrals_Approved | Completed/successful referrals (integer) | |
| BH_Points_Earned_From_Referrals | Points earned via referral program (integer) | |
| BH_ReferLink | Personal referral URL (string) | |
| BH_MagicToken | Magic authentication token (string) | |
| BH_MagicLink | One-click login URL (string) | |
| Subscription Milestones (if applicable) | BH_Cycles | Maximum active cycles completed (integer) |
| BH_ThisMilestone | Current milestone name (string) | |
| BH_NextMilestone | Upcoming milestone name (string) | |
| BH_MilestonesCompleted | Total milestones achieved (string) | |
| BH_MilestonesRemaining | Milestones left to achieve (string) | |
| BH_CyclesTillNext | Cycles until next milestone (string) | |
| Profile Enrichment | BH_Birthday | Customer's date of birth (YYYY-MM-DD) |
| BH_ShopAccountActive | Whether shop account is active (boolean) | |
| Dynamic Properties | BH_Achv_Unlocked_[Name] | Per-achievement unlock status (1 or 0) |
| BH_Achv_Progress_[Name] | Progress toward achievement (string percentage) | |
| BH_Vote_[Question] | Survey question responses (string) |
Postscript automations can use any of these Bubblehouse events as triggers:
| Event | Property | Type |
|---|---|---|
| Points Earned | BH_Points | int |
| BH_Source | enum | |
| Points Updated | BH_Points | int |
| BH_Source | enum | |
| Points Redeemed | BH_Points | int |
| BH_DiscountCode | string | |
| BH_HasCoupon | int | |
| BH_RedemptionReason | enum | |
| Vendible Redeemed | BH_Vendible | enum |
| BH_DiscountCode | string | |
| BH_HasCoupon | int | |
| Initial Tier | BH_Tier | enum |
| Tier Reached | BH_Tier | enum |
| BH_Reward_Coupon | string | |
| BH_Reward_Title | string | |
| BH_Reward_2_Coupon | string | |
| BH_Reward_2_Title | string | |
| BH_Reward_3_Coupon | string | |
| BH_Reward_3_Title | string | |
| Tier Downgraded | BH_Tier | enum |
| Achievement Unlocked | BH_Achievement | enum |
| BH_RemainingUses | int | |
| Achievement Used | BH_Achievement | enum |
| BH_RemainingUses | int | |
| Achievement Expired | BH_Achievement | enum |
| BH_RemainingUses | int | |
| Referred (Reciever) | BH_Channel | enum |
| BH_Destination | string | |
| BH_Link | string | |
| BH_DiscountCode | string | |
| BH_HasCoupon | int | |
| BH_Sender_FirstName | string | |
| BH_Sender_LastName | string | |
| BH_Sender_Email | string | |
| BH_Receiver_Reward_Amount | string | |
| BH_Receiver_Reward_Points | string | |
| Referred (Sender) | BH_Channel | enum |
| BH_Destination | string | |
| BH_Link | string | |
| BH_Sender_Reward_Points | string | |
| BH_Receiver_Reward_Amount | string | |
| BH_Receiver_Reward_Points | string | |
| Referral Approved (Sender) | BH_Channel | enum |
| BH_Sender_Reward_Points | string | |
| BH_Sender_Discount_Coupon | string | |
| BH_Receiver_Reward_Amount | string | |
| BH_Receiver_Reward_Points | string | |
| Referral Approved (Receiver) | BH_Channel | enum |
| BH_Sender_FirstName | string | |
| BH_Sender_LastName | string | |
| BH_Sender_Email | string | |
| BH_Receiver_Reward_Amount | string | |
| BH_Receiver_Reward_Points | string | |
| Referral Ignored (Sender) | BH_Channel | enum |
| Referral Ignored (Receiver) | BH_Channel | enum |
| BH_Sender_FirstName | string | |
| BH_Sender_LastName | string | |
| BH_Sender_Email | string | |
| Milestone Progress | BH_Cycles | int |
| BH_ThisMilestone | enum | |
| BH_CyclesTillNext | int | |
| BH_NextMilestone | enum | |
| BH_MilestonesCompleted | int | |
| BH_MilestonesRemaining | int | |
| Milestone Reached | BH_Cycles | int |
| BH_ThisMilestone | enum | |
| BH_CyclesTillNext | int | |
| BH_NextMilestone | enum | |
| BH_MilestonesCompleted | int | |
| BH_MilestonesRemaining | int | |
| Milestone Update | BH_Cycles | int |
| BH_ThisMilestone | enum | |
| BH_CyclesTillNext | int | |
| BH_NextMilestone | enum | |
| BH_MilestonesCompleted | int | |
| BH_MilestonesRemaining | int | |
| Data Updated | BH_Update | enum |
| Birthday | BH_Gift_Points | int |
| BH_Gift_Coupon | string | |
| BH_Birthday_Points | int | |
| Anniversary | BH_Gift_Points | int |
| BH_Gift_Coupon | string | |
| Campaign | BH_Campaign |
Using a Bubblehouse Trigger Event in a Postscript Automation
To use a Bubblehouse trigger event in a Postscript automation, select Messaging, and then Campaigns from the left menu, and then select the Create Automation button in the upper right. Next, select Create new automation and then select the Create flow button.
Search for the trigger under Trigger event or property on the left for the Bubblehouse event to trigger this automation. Note that your shop name will appear before each trigger event or property (i.e. "SHOPNAME - Birthday").
Safety & Compliance
Bubblehouse and Postscript both observe shopper consent boundaries to prevent unsolicited messages and ensure ethical and legal usage of event data.
- Bubblehouse only sends data to Postscript that includes email addresses matched to known contacts.
- Postscript only sends SMS messages to shoppers who have explicitly opted in.
Get Support
Have questions? Please feel free to reach out to our wonderful Support team at support@postscript.io or via live chat. You can also submit a support request here!
Need ongoing channel strategy guidance? Please fill out this form and we'll connect you to one of our certified partners.