Automate workflows

A workflow represents a series of steps that occur within Amperity that are related to a specific process. For example, many workflows are end-to-end process that:

  1. Uses a courier to pull data to Amperity.

  2. Standardizes that data using semantic tags and feeds.

  3. Adds that data to a domain table.

  4. Builds that data to a database.

  5. Runs a query to return results for a downstream workflow.

  6. Sends those results to the configured destination.

A workflow can have both upstream and downstream dependencies and can start from many locations within Amperity.

Define courier groups

A courier group is a list of one (or more) couriers that are run as a group, either ad hoc or as part of an automated schedule. A courier group can be configured to act as a constraint on downstream workflows.

initialing

A courier group is typically configured to run automatically on a recurring schedule. Because all couriers within a courier groups run as a unit, all of their dependent tasks must complete before any downstream processes, such as Stitch or database generation, can be started.

What a courier group does:

  1. Logically organizes a list of couriers into a group that shares the same schedule and workflow.

  2. Allows for each courier to be assigned schedule variance via wait times and offsets.

  3. Enables both automatic and ad hoc runs of couriers.

  4. Polls each data source associated with a courier in the group to determine if data is ready to be pulled to Amperity.

  5. Ensures that constraints for downstream processes are present in the workflow; all couriers in a courier group must complete their jobs.

What a courier group needs:

  1. One (or more) couriers.

  2. A schedule.

  3. A run type.

  4. Configuration for wait times and offsets to help ensure that all files assigned to the courier group have a time window that is large enough to complete data collection.

The Sources page shows the status of all courier groups, including when they last ran or updated, and its current status.

Add courier group

Use the Add courier group button to add a courier group to Amperity. A courier group should be created to consolidate individual couriers into a scheduled workflow.

For each courier added to a courier group, define a wait time and an offset. This is used to help determine how much time the courier group should wait for the files associated with a courier to be ready for processing.

In some cases, if the files are not ready, the courier (and courier group) will fail. But in other cases, if the files in the courier are not flagged as required, the courier group may continue processing the rest of the files.

To add a courier group

Step 1.

From the Sources page, click Add courier group. This opens the Edit courier group dialog box. Add a name for the courier group.

Enable duration alerts for workflows.
Step 2.

A schedule defines the frequency at which a courier group runs. All couriers in the same courier group run as a unit and all tasks must complete before a downstream process can be started. The schedule is defined using cron.

Enable duration alerts for workflows.

Use a cron string to define a schedule for the courier group.

Tip

Daylight savings time can affect a schedule. Be sure to set the schedule to be stable and not require changes over time. For example: if a schedule is set to 12:30 AM, and then you fall back, the schedule may become 11:30 PM (fall back) or 1:30 AM (spring forward).

Step 3.

Select a time zone.

Select a time zone.
Step 4.

Optional. Enable duration alerts. Enable the Warn if runtime exceeds checkbox, and then set the number of hours (or minutes) at which, when the configured amount of time is exceeded, a workflow alert will be sent.

Enable duration alerts for workflows.
Step 5.

Define how the courier group workflow will run: a Full workflow, a Partial workflow, or an Ingest only workflow.

Enable duration alerts for workflows.

A full workflow refreshes domain tables, runs Stitch, refreshes your customer 360 database, and then runs every scheduled orchestration group that is configured to run after this courier group.

A partial workflow refreshes domain tables, runs Stitch, refreshes your customer 360 database, but does not run any orchestrations.

An ingest-only workflow refreshes domain tables, but does not run Stitch.

Step 6.

To enable the courier group and have it run on the configured schedule, set Courier group status? to Enabled. (If this setting is set to Disabled the courier group will not run on a schedule, but may be run manually.)

Many courier groups are scheduled to run on a daily basis. Some courier groups are scheduled to run less frequently, such as bi-weekly, monthly, or even quarterly. Use the Only retrieve files dropped in the past day? setting to configure a courier group that runs less frequently to only look for files

Enable duration alerts for workflows.

Tip

A courier group that runs less frequently, such as weekly, bi-weekly, monthly, or quarterly, will (by default) look for files on each day that has passed since the last time the courier group ran.

When a courier group is configured to run less frequently, you can also configure that courier group to only look for files on a specific day.

To use this approach, it is recommended to configure your upstream systems to make their files available to the courier group on a schedule that ensures they will be available to the courier group within a 24-hour window. This window is based on the schedule that is defined for the courier group.

Configure the courier group to run at the end of that 24-hour window, and then enable the Only retrieve files dropped in the past day? option, which forces the courier group to only look for files that were made available within the previous 24 hours.

Step 7.

Add one (or more) couriers to the courier group.

For each courier in the courier group, select a courier, configure the wait time and offset, and then enable workflow alerts.

Enable duration alerts for workflows.

About wait times

A wait time is a constraint placed on a courier group that defines an extended time window for data to be made available at the source location.

A courier group typically runs on an automated schedule that expects customer data to be available at the source location within a defined time window. However, in some cases, the customer data may be delayed and isn’t made available within that time window.

Use a wait time to extend the time window for data to be made available. This can help reduce the number of alerts that may be generated for data sources that cannot be picked up by a courier group.

About offsets for loading data

An offset is a constraint placed on a courier group that defines a range of time that is older than the scheduled time, within which a courier group will accept customer data as valid for the current job. Offset times are in UTC.

A courier group offset is typically set to be 24 hours. For example, it’s possible for customer data to be generated with a correct file name and datestamp appended to it, but for that datestamp to represent the previous day because of the customer’s own workflow. An offset ensures that the data at the source location is recognized by the courier as the correct data source.

Warning

An offset affects couriers in a courier group whether or not they run on a schedule. Manually run courier groups will not take their schedule into consideration when determining the date range; only the provided input day(s) to load data from are used as inputs.

Step 8.

Click Save to save the courier group.

Apply constraints

Constraints are applied to each courier within a courier group. Each constraint is a combination of an offset (the amount of time for which a courier group will accept data) and a wait time (an amount of time that extends the defined time window).

Specify wait times

A wait time is a constraint placed on a courier group that defines an extended time window for data to be made available at the source location.

A courier group typically runs on an automated schedule that expects customer data to be available at the source location within a defined time window. However, in some cases, the customer data may be delayed and isn’t made available within that time window.

Use a wait time to extend the time window for data to be made available. This can help reduce the number of alerts that may be generated for data sources that cannot be picked up by a courier group.

Note

For couriers associated with a filedrop location the default wait time is 0. A polling operation only checks for a data source before declaring success or failure. For couriers associated with REST APIs and data warehouses, the polling operation is always considered to be successful.

Define offsets

An offset is a constraint placed on a courier group that defines a range of time that is older than the scheduled time, within which a courier group will accept customer data as valid for the current job. Offset times are in UTC.

A courier group offset is typically set to be 24 hours. For example, it’s possible for customer data to be generated with a correct file name and datestamp appended to it, but for that datestamp to represent the previous day because of the customer’s own workflow. An offset ensures that the data at the source location is recognized by the courier as the correct data source.

Warning

An offset affects couriers in a courier group whether or not they run on a schedule. Manually run courier groups will not take their schedule into consideration when determining the date range; only the provided input day(s) to load data from are used as inputs.

Important

The schedule defines the frequency at which the courier group will run.

The timezone is the time at which the courier group will run. This may be set to your local time zone.

Individual courier offsets are calculated using Coordinated Universal Time (UTC), even when a non-UTC time zone is specified for the courier group. This means that when a courier group runs, the current time in UTC is used to calculate the offset.

When a courier group is set to your local time zone, you must consider the offset for your local time zone when defining the offset for each courier in the courier group.

Delete courier group

Use the Delete option to remove a courier group from Amperity. This should be done carefully. Verify that both upstream and downstream processes no longer depend on this courier group prior to deleting it.

Important

This action will not delete couriers that are associated with the courier group.

To delete a courier group

  1. From the Sources page, open the menu for a courier group, and then select Delete.

  2. Click Delete to confirm.

Run courier group

A courier group may be run in the following ways:

Automatically

A courier group with a schedule (including time zones, wait times, and offsets) will run automatically when the Courier group status? is set to Enabled.

For a date range

A courier group can be configured to load all data for a specific date range.

To run a courier group for a date range

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select Load data from a specific time period.

  3. Select a start date and an end date.

  4. To prevent downstream processing, select Load only.

  5. Click Run.

For a specific day

A courier group can be configured to load all data for a single day.

To run a courier group for a specific day

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select Load data from a specific day, and then select a day.

  3. To prevent downstream processing, select Load only.

  4. Click Run.

For all data

A courier group can be configured to load all data that is available. This can be a large amount of data if the courier group is running for the first time.

To run a courier group for all data

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select Load all data.

  3. To prevent downstream processing, select Load only.

  4. Click Run.

Manually

Use the Run option to run the courier group manually.

To run a courier group manually

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select the time period for which data is loaded and indicate if downstream processes should be started automatically.

  3. Click Run.

Missing files?

A courier group can be configured to send an email alert to the customer when files are missing, and then:

  1. Continue processing even if files are missing

  2. Stop processing

Important

Files can be missing for any number of reasons, including by delays that may have occurred in upstream workflows that exist outside of Amperity. And in many situations a file is late, not missing.

When files are missing or late, in addition to sending an email alert and either continuing or stopping the workflow, Amperity will continue to attempt to find the these files.

A notification that begins with sense-missing- will indicate when Amperity is looking for missing files. Amperity will continue polling the data source location to discover if the file has been updated or added. It will be pulled down, processed, and loaded if it is discovered within five hours of Amperity initially discovering the missing file.

Notify, continue workflow

A courier group can be configured to send an email alert to the customer when one (or more) files are missing, and then continue processing if files are missing.

Tip

Some files are not considered essential to the daily Amperity run. The reasons why a particular file may be considered non-essential will vary from tenant to tenant, but they may include situations like:

  • A data source is mostly static

  • A data source does not contain PII that will affect the quality of the Amperity ID.

  • A data source is associated with a workflow that often misses the configured Amperity wait time period.

To send email and continue workflow

  1. From the Sources page, open the menu for a courier group, and then select Edit.

  2. Under the name of a courier group, set Notify when missing? to enabled, and then set Abort when missing? to disabled.

  3. Click Save.

Notify, stop workflow

A courier group can be configured to wait up to the configured Wait time period, send an email alert to the customer when one (or more) files are missing, and then stop processing if files are missing.

To send email, and then stop a workflow

  1. From the Sources page, open the menu for a courier group, and then select Edit.

  2. Under the name of a courier group, set Notify when missing? to enabled, and then set Abort when missing? to enabled.

  3. Click Save.

Define orchestration groups

An orchestration group is one (or more) orchestrations that are scheduled using a crontab file to define the schedule’s frequency. For example, an orchestration group can be scheduled to run at 8:30 AM every day of the week: 30 8 * * *.

Orchestration groups are configured in the Destinations page, from the Add orchestration group link at the top of the Orchestrations list.

The orchestration group dialog box.

There are three configuration options for orchestration groups:

  1. Run after courier group

  2. Run on a schedule

  3. Run manually

An orchestration group may include more than one orchestration. Add each orchestration to the orchestration group by configuring the orchestration to run automatically, after which you may select the orchestration group to which this orchestration belongs.

Run after courier group

An orchestration group may be configured to run only after a courier group has run successfully, including loading all data and meeting all requirements.

..tip:: You can see the courier group an orchestration group runs after.

To configure an orchestration group to run after a courier group

Step 1.

Open the Destinations page, and then from the Orchestrations section, click the Add orchestration group link.

Step 2.

In the Add orchestration group dialog box, give the orchestration group a name, and then move the slider to enabled.

Step 3.

Under Run options, select Run after courier group.

Select a courier group from the drop-down menu.

Configure an orchestration group to be run after a courier group.
Step 4.

Click Save.

Run on a schedule

An orchestration group may be configured to run on a schedule, using a cron schedule to define the specific time at which the run should begin, and a UTC timezone.

..note:: You will see the enable/disable status only for scheduled orchestration groups.

To configure an orchestration group to run on a schedule

Step 1.

Open the Destinations page, and then from the Orchestrations section, click the Add orchestration group link.

Step 2.

In the Add orchestration group dialog box, give the orchestration group a name, and then move the slider to enabled.

Step 3.

Under Run options, select Run on a schedule.

Configure an orchestration group to be run on a schedule.
Step 4.

Click Save.

About cron schedules

A schedule defines the frequency at which an orchestration group runs. All orchestrations in the same orchestration group run as a unit and all tasks must complete before a downstream process can be started. The schedule is defined using cron.

Tip

Amperity workflows are typically run once per day. For the best results for a daily schedule, define only the minute and hour settings. For example: 30 8 * * *.

Important

Some workflows do not require a daily update. Amperity supports running workflows on less frequent basis, such as on a weekly basis. For example, to define a workflow that runs at 8:30 AM every Monday, use a cron string that identifies the day of the week. For example: 30 8 * * 1 where “1” identifies the day of the week (Monday).

About cron

Cron is a time-based job scheduler that uses cron syntax to automate scheduled jobs to run periodically at fixed times, dates, or intervals.

Cron syntax specifies the fixed time, date, or interval at which cron will run. Each line represents a job, and is defined like this:

┌───────── minute (0 - 59)
│ ┌─────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌────────────── month (1 - 12)
│ │ │ │ ┌─────────────── day of the week (0 - 6) (Sunday to Saturday)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * * command to execute

For example, 30 8 * * * represents “run at 8:30 AM every day” and 30 8 * * 0 represents “run at 8:30 AM every Sunday”. Amperity validates your cron syntax and shows you the results. You may also use crontab guru to validate cron syntax.

About timezones

An orchestration group schedule must be associated with a UTC timezone. The timezone determines the point at which an orchestration group’s scheduled start time begins.

The timezones that are available for selection in Amperity are modeled after the Google Calendar and are similar to:

(GMT - 08:00) Pacific Time
(GMT - 07:00) Mountain Time
(GMT - 06:00) Central Time
(GMT - 05:00) Eastern Time

The timezone that is chosen for an orchestration group schedule should consider every downstream business processes that requires the data and also the timezone(s) in which the consumers of that data will operate.

Tip

Do not create orchestration group schedules that may occur during a daylight savings time transition.

For example, an orchestration group schedule with the cron string of 30 2 * * * and a timezone of “(GMT-08:00) Pacific Time” will run once a day most at 2:30am, except for one day in the spring when it will not run at all and one day in the fall when it will run twice.

This is because American daylight savings time transitions at 2:00 AM, meaning the 2:00 AM hour occurs twice when transitioning out of daylight savings time (Fall) and is skipped altogether when transitioning into daylight savings time (Spring).

Run manually

An orchestration group can be configured to be run manually.

To configure an orchestration group to run manually

Step 1.

Open the Destinations page, and then from the Orchestrations section, click the Add orchestration group link.

Step 2.

In the Add orchestration group dialog box, give the orchestration group a name, and then move the slider to enabled.

Step 3.

Under Run options, select Run manually.

Configure an orchestration group to be run manually.
Step 4.

To run the orchestration group, on the Destinations page, and then from the actions menu for that orchestration group, select the Run menu option.

Select the Run button from the actions menu.
Step 5.

Click Save.