How AI Agents Work: A Practical Guide for Marketing and Product Leaders

Despite the prevalence and demonstrated superiority of ML and AI tools, many companies are still making decisions — even relatively trivial decisions, like determining messaging frequency — manually. What’s worse, each manual decision affects more than a single individual; even simple decisions typically require time and attention from multiple teams, which leads to significant bottlenecks […]

Scalable Event-Based Clustering for User Segmentation

There are generally limited options for clustering large numbers of records. A typical Aampe customer has up to 400 app events (“product viewed”, “purchase completed”, etc.) instrumented, for sometimes as many as 100 million end users. Clustering 300 features is simple, even with 100 million records – something like mini-batch k-means can do the trick. […]

You don’t know Jacc(ard)

I’ve been thinking lately about one of my go-to data science tools, something we use quite a bit at Aampe: the Jaccard index.  It’s a similarity metric that you compute by taking the size of the intersection of two sets and dividing it by the size of the union of two sets.  In essence, it’s […]

Aampe + Braze

Braze has gained significant traction as one of the most commonly used platforms in the customer engagement space. Offering most of the features and functionality that CRM teams have come to expect, such as email and push notification campaigns, user segmentation, and basic campaign analytics, Braze is recognized for its utilitarian approach to customer engagement. […]

A 30,000,000,000 row join! And how we reduced runtime of a query by >99%

Last week we at Aampe faced a simple yet interesting scale problem when using BigQuery. The culprit: A simple inner join. We wrote a simple query that joins the users who are eligible to be messaged with their corresponding messages CMS table. The output needed: for each user, all messages that they are eligible to […]

How we handle messy data

As our platform has to work with various data providers, CDPs, and many different companies with very different data lakes and schemas, it’s actually more common for us to encounter messy data than anything else. Here’s our approach to cleaning up this data so it can be usable and actionable: What is “messy” data? “Messy […]

What is the Best Time to Send SMS Marketing in eCommerce?

SMS marketing can get incredibly expensive, so it’s important that every message is adding value. To that end, we took all the “best practices” we could find online for ‘the best times and days to send SMS marketing messages for an e-commerce app,’ and compared it to actual data for an actual app with over […]

Are you missing opportunities because you are too focused on industry benchmarks?

Imagine you’re navigating through a dense forest. You’ve got a map, but it’s not specifically for your route — it’s a general map that everyone uses. It shows paths that others have taken, but not necessarily the best path for you. This map is like industry benchmarks in business, particularly when evaluating message performance in […]

How to build Streak Messages that are truly engaging!

Streak messages, a powerful tool for marketers to engage and re-engage users, are often hailed as a ‘best practice’ due to their simplicity and effectiveness. However, the real challenge lies in the continuous effort required to build and maintain streaks. A well-crafted streak that’s not timely or relevant won’t bring users back. How can you […]

The LLM Alignment problem

LLM “alignment” refers to reducing the gap between LLM output and user expectations. I came across a nice technical overview (LLMs from scratch) comparing the two main methods for LLM alignment: Reinforcement Learning from Human Feedback (RLHF) and Direct Preference Optimization (DPO). My conclusion: both methods show how talk about AI alignment is really missing […]