Apps (Code Config)

Last Updated: 2021-10-12

Apps are typically the first types of objects that you will create. They help Grouparoo connect to a number of different tools, such as your databases, data warehouses, and other third-party tools. See this doc to learn more about the core concepts in Grouparoo.

Generating a New App

To generate a new App for your Grouparoo application, run the generate command.

For example, let's say you have a Postgres data warehouse containing your customer data. You can generate a new App like this:

$ grouparoo generate postgres:app data_warehouse

Note here that data_warehouse is the ID for the App. An ID is always required when generating a config object.

This command will generate a file in your application directory at config/apps/data_warehouse.js that looks something like this:

exports.default = async function buildConfig() {
  return [
      class: "app",
      id: "data_warehouse",
      name: "data_warehouse",
      type: "postgres",
      options: {
        host: "localhost",
        port: 5432,
        database: "...",
        schema: "public",
        user: "...",
        password: "...",
        ssl: false,

The shape of the object(s) returned by the function will look different depending on the type of App generated. More on this below.

List of Available App Types

Postgres is just one type of App you can create. To see a full list of available types, use the --list option, filtered by "app":

$ grouparoo generate app --list

This will give you something like the following:

bigquery:app (id) - Config for a Grouparoo bigquery App
csv:app (id) - Config for a CSV App
clickhouse:app (id) - Config for a ClickHouse App
facebook:app (id) - Config for a Grouparoo facebook App
google-sheets:app (id) - Config for a Google Sheets App
hubspot:app (id) - Config for a Grouparoo hubspot App
intercom:app (id) - Config for a Grouparoo intercom App
iterable:app (id) - Config for a Grouparoo iterable App
mailchimp:app (id) - Config for a Mailchimp App
manual:app (id) - Config for a Grouparoo App with manual Property values
marketo:app (id) - Config for a Grouparoo marketo App
mysql:app (id) - Config for a Grouparoo mysql App
postgres:app (id) - Config for a Grouparoo postgres App
redshift:app (id) - Config for a Grouparoo redshift App
sailthru:app (id) - Config for a Grouparoo sailthru App
salesforce:app (id) - Config for a Grouparoo salesforce App
sendgrid:app (id) - Config for a Grouparoo sendgrid App
snowflake:app (id) - Config for a Grouparoo snowflake App
zendesk:app (id) - Config for a Grouparoo zendesk App

Installing New App Types

The list of available App types is driven by the set of plugins you've installed.

You can see the current list of installed plugins in your package.json file, in the grouparoo.plugins section.

To install a new Plugin, use the install command. For a complete list of plugins, see the Plugins doc.

Configuring Your App

The generate command attempts to make a reasonable guess at the values in the config file it generated (in the config/apps directory). There are ellipses ("...") in the places in which it couldn't make a reasonable guess. In the example above, after generating a Postgres App, all but database, user, and password were pre-populated.

The best practice when configuring an App is to read the comments, keys, and values within the generated file and fill in the appropriate values for your App.

Validating & Applying Your Config

You can validate your config at any time using the validate command:

$ grouparoo validate

And you can apply that config (save it to your Grouparoo application's database) using the apply command:

$ grouparoo apply