Docs

Store Configuration for Rules

The global configuration object is available in Rules for storing commonly used values, such as URLs. Sensitive information, such as credentials or API keys, should be stored through the configuration object and kept out of your Rules code.

Configure values

You can set configuration values in your Rules Settings on the Dashboard.

To edit or change a configuration key's value, remove the existing configuration setting and replace it with the updated value.

Rules Configuration

You need to have created at least one Rule to see the configuration area, otherwise, the Rules demo shows instead.

Use the configuration object

Any configuration values you set can be accessed through the configuration object by key in your Rules code.

var MY_API_KEY = configuration.MY_API_KEY;

The following example is a Rule for sending a Slack message when a new user has signed up. The Slack Webhook is a configuration value set with the key SLACK_HOOK_URL.

function (user, context, callback) {
  // short-circuit if the user signed up already or is using a Refresh Token
  if (context.stats.loginsCount > 1 || context.protocol === 'oauth2-refresh-token') {
    return callback(null, user, context);
  }

  // get your slack's hook url from: https://slack.com/services/10525858050
  const SLACK_HOOK = configuration.SLACK_HOOK_URL;

  const slack = require('slack-notify')(SLACK_HOOK);
  const message = 'New User: ' + (user.name || user.email) + ' (' + user.email + ')';
  const channel = '#some_channel';

  slack.success({
    text: message,
    channel: channel
  });

  // don’t wait for the Slack API call to finish, return right away (the request will continue on the sandbox)`
  callback(null, user, context);
}