We have added Zendesk as a Grouparoo destination. One of our most popular requests, we are exciting to be helping our friends in operations get more data to support their customers.

We particularly love the use case of shared group definitions between your email and support tools. Your "High Value" customer group in email can now seamlessly have their tickets routed to higher SLA Zendesk queues as well.
Other updates
Grouparoo works on Node.js v12, v14, and now... v15! This means we are in a great position to support the forthcoming LTS release of Node.js v16, along with the current LTS versions of v12 and v14 for years to come.

Previously, due to the peerDependencies
changes introduced by NPM v7, we could not initially support Node.js v15 (which ships with NPM v7). The grouparoo
CLI tool has been updated to know how to work with both the old and new NPM behavior. We've detailed our mitigation steps here.
The ability to support Node.js v15 is also important, as it's the only version that is natively supported by the new M1 MacOS computers.
We have added Intercom as a destination. You can create Intercom users or leads and tag them based on your Grouparoo groups.
Intercom is used by support and marketing organizations to communicate via chat and email with their customers.

You can now run Grouparoo locally without needing to run Redis. This feature makes it possible for you to try out Grouparoo without needing any dependencies! In your .env
file, set your redis URL to REDIS_URL="redis://mock"
. If you choose to run Grouparoo this way, you can't use Grouparoo in a cluster. Additionally there is no data persistence, so if you stop and restart your server, there will be data loss.
This update is an important part of the foundation for Grouparoo v0.2.
You can now add Mailchimp as a Source to Grouparoo. Some of our users were asking for a way to identify users in Mailchimp using a property besides email
, so now you can import users from Mailchimp into Grouparoo and identify them using any unique identifier that exists in Mailchimp. You can also pull in open rates and click rates on a profile.
The MySQL and Postgres have had connection sharing across background workers for a while. Every now and then, some users saw an issue where a connection was stale.
Now, these plugins connect to their respective databases with connection pools. This increases the reliability and has been seen to fix these issues.
On the /about
page, we now badge the version of your installed plugins. They will be successful (green) if your installed version matches the latest
-tagged version of that package on NPM, and warning (orange) if they don't.

In this way, you can get a quick snapshot about if you are running the latest version of Grouparoo or not.
You will also get a notification automatically if you are out of date.

We have added Salesforce as a destination. You can now create Salesforce Objects from your profiles and Groups.
It is a very generic integration because many people use Salesforce in many different ways. Because of this, you can configure it however you want.
For example, you can sync your profiles to create Contacts with linked Accounts. Groups can the decide what Campaigns they are in. It will automatically keep everything up to date.

We have created a setup checklist in Grouparoo to help people getting things going for the first time. It walks you through creating a working sync system.
By the end of it, you'll have users on teams, a source, properties, groups, and a destination.

We hope this helps people get off to strong start managing their customer data.
When creating sources on larger datasets, the web page was often timing out. It turns out it was from selecting rows to show as the preview, which takes a long time in many SQL systems.
While it is nice to show a good sample of rows, it's not worth it. We updated the logic to pick the first few rows and now everything is fast again.
All profile property rules have types. Some of the existing types include string
, email
, integer
, float
, and date
. We have added the phoneNumber
type to Grouparoo.
Knowing the type allows Grouparoo to help ensure data validity, provide better options for filtering and group defining, as well as make smarter mappings to destinations.
As part of this, for example, we also now support setting the phone
property in Zendesk.
We have been updating how Grouparoo works with destinations in order to be more performant and responsive to their unique needs. Here are a few recent improvements:
- Settings for plugins to define how many threads can communicate with a destination at a time
- Patterns for responding to reaching an API limit and dynamically reacting
- Support for batching updates to send many profiles at a time
- In steady-state, only communicate with desitnation if there is a change in the data
- Hardened handling of intermittent errors from destinations
- Improved UI to track destination exports and their progress/status
We have added Redshift as both a source and a destination.
The most common usage will be as a source. You can use your Redshift data warehouse to populate profiles with properties to be used for group definitions and sent to destinations. Redhsift has two sources:
- Query: write your own SQL
- Table: no-code property creation
The Redshift destination, like MySQL and Postgres, allows you to write Grouparoo properties and group membership in order to leverage them in business intelligence and other tools.
We have provided an example Grouparoo app for a while, but now we've made it easier to generate one of these with a simple command: npx grouparoo generate
(edit Feb 9, 2021: the command is now grouparoo init
)
From npx grouparoo --help
Usage: grouparoo [options] [command]
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
generate [path] generate a new Grouparoo project
upgrade [path] upgrade an existing Grouparoo project
help [command] display help for command
Previously, profile properties could only be a single value. For example, lastPurchaseCategory = "Toys"
.
Now sources allow you to create arrays, or lists of values. For example, purchaseCategories = ["Toys", "Sports", "Electronics"]
.
These can be leveraged in group definitions. In this case, you can define group membership if someone has ever purchased something in the Sports
category.
Destinations that support lists will also be able to sync the full property.
This is a big update to add the concept of events. Grouparoo loves connecting to sources like data warehouses, but events (like pageviews) are still important.
Now, there is an API and a Javascript client to report pageviews and identify users. These events are saved in the Grouparoo database and linked to profiles. It's smart enough to merge profiles if it turns out the user was actually the same one.
Once you have those events, you can create a source that makes profile properties from them. For example, let's add how many page views a user has had. And another one for what they last looked at. Of course, you can use those when creating groups and syncing to destinations.

With events, we are excited to help you get an even picture of your customer.
You can now connect your BigQuery data warehouse to Grouparoo, using it as a source for your profile properties.
This implementation adds all the same features as our other SQL sources like MySQL and Postgres. For example, you can write a custom SQL query to add a property. There is also the table source that allows importing data without knowing SQL.

You can also use all the built-in datasets that Google provides. That's pretty neat.
We have added Sailthru as a destination. This means you can export your profile and group data to this email automation tool. One great thing to do there is to use their Lifecycle Optimizer to run campaigns when someone enters a group.
A few companies have noted that they had some challenges integrating with Sailthru nuances, so we are glad to add, iterate, and harden this plugin.
To help fill out more fields, we've added typeaheads to several places in the user experience.
Now, when you are searching profiles or creating groups, it will use values from those profile properties to make it easier.
Also, when setting up sources and destinations, plugins can choose to provide typeahead selectors.
We have added the ability to connect your Google Sheets to import data into Grouparoo. To some degree, we made Grouparoo so you don't need all these spreadsheets. And yet, sometimes it's still the best way to make things happen. Now they can become a "real" part of your data infrastructure.

Don't forget: with great power comes great responsibility!
We now support the ability to sync your profiles and groups to Mailchimp. You select the list you want to populate, the merge variables to set, and which tags should be set.

Mailchimp has been one of the most popular destination requests from startups and we are excited for you try it out.