Workflows to Integrate Data with Slack, Email, or Other Tools

Intro

Faros can be integrated with other products such as Slack, Snowflake, email, or others. To provide this functionality, Faros leverages Activepieces, an easy-to-use drag & drop tool for setting up automated workflows. These workflows can be used to set up alerts, notifications, or actions and can be triggered based on the thresholds you implement.

Examples of workflows you may want to configure are:

  • A daily slack message listing all GitHub pull requests that are waiting for a peer review, with the reviewers tagged
  • A weekly email with a screenshot of a specific Faros AI dashboard
  • A weekly slack message with an AI-generated summary of a specific Faros AI dashboard
  • Automatically assign tasks to the appropriate team members based on who has the fewest number of open bugs on their plate.

How to Configure Workflows

A Note on User Roles

To configure workflows, you must be an admin. Admins can configure, edit, or delete any workflow in your Faros instance, regardless of who initially created it.

How to Configure Workflows

To configure a workflow, go to Admin Settings > Data Control > Workflows.

Here, you can edit and enable current workflows or start a new flow.

Select New Flow > From Scratch

You can find details on how to configure a flow in the Activepieces docs here. After reviewing the general Activepieces instructions, you can review Faros-specific details below.

Setting up Faros as a Step in your Workflow

Faros provides its own type of workflow node (“piece”) to make it easier to query data or create charts and summaries

Once you've set your trigger, you can choose 'Faros' as your input, and select from the list of available options:

  • Query Reports Table
  • Generate a Dashboard Summary
  • Screenshot a Shared Dashboard
  • Query Ingested Data

Query Reports Table

This option will fetch the results of a reports question or query.

FieldDetailsExample Value
WorkspaceIn most scenarios, this will be 'default'. You can confirm the name of your workspace by clicking on your organization's name in the upper left corner.default
Card ID, Query Token, or URLEnter the URL for the Faros report you'd like to use. You can also enter the numerical ID (found in the URL)https://app.faros.ai/org-name/dashboards/question/12345-pull-request-code-quality-metrics-over-time, OR '12345'
Reports Session IDThis field can be used if you're running multiple "Query Reports Table" steps in your workflow in order to reuse a single session ID instead of getting a new one for each step. This optimization eliminates the extra behind-the-scenes logic of fetching a new Metabase session, and is only necessary if you're putting the highest priority on workflow speed.This can be populated with the SessionID value that is output by a previous Query Reports Table step in your workflow.

Click Test Step to review sample data and ensure it's what you're expecting.

Generate a Dashboard Summary

This option will fetch the AI-generated text summary of a Faros dashboard.

FieldDetailsExample Value
WorkspaceIn most scenarios, this will be 'default'. You can confirm the name of your workspace by clicking on your organization's name in the upper left corner.default
Dashboard NameThe name of the dashboardAI Copilot Evaluation Summary
Reports Session IDThis field can be used if you're running multiple "Query Reports Table" steps in your workflow in order to reuse a single session id instead of getting a new one for each step. This optimization eliminates the extra behind-the-scenes logic of fetching a new Metabase session, and is only necessary if you're putting the highest priority on workflow speed.This can be populated with the SessionID value that is output by a previous Query Reports Table step in your workflow.
Dashboard FiltersThis allows you to optionally set filters for the dashboard summary. In the first field, enter the field name (ex: Team). In the second field, enter the filter value (ex: all_teams). These do not need to include the default filters that are already set on the dashboard.Date Previous 90 Days

Click Test Step to review sample data and ensure it's what you're expecting. It may take some time for sample data to load due to data volume.

Screenshot a Shared Dashboard

This option will fetch a screenshot of a shared Faros dashboard.

FieldDetailsExample Value
Shared Dashboard URLTo use this option, the dashboard must have a shared link. You can learn how to set up a shared link here.
WidthThere is no enforced limit here, but a value between 1024 and 3840 is recommended1920
User AgentThis value pre-populates and shouldn't be changed.
Wait Time(s)The time to wait after fetching the dashboard before taking the screenshot. Increase this if the screenshot is blank or missing sections.The value defaults to 5 seconds, but can be increased up to 30

Click Test Step to review sample data and ensure it's what you're expecting. It may take some time for sample data to load due to data volume.

Query Ingested Data

This option will use GraphQL to query the raw data from your Faros workspace. You can learn more about querying data here .

FieldDetailsExample Value
WorkspaceIn most scenarios, this will be 'default'. You can confirm the name of your workspace by clicking on your organization's name in the upper left corner.default
QueryCopy and paste the query used. You can find more details here.query {vcs_Repository{name}}}
VariablesYou can create variables in a GraphQL query with the $variableName syntax and then populate the value of those variables separately -- this can simplify things like rerunning queries with different values. See below for additional details.
Page SizeThe GraphQL query will automatically be converted into a paginated query. This parameter controls the number of records returned with each page.Defaults to 1000, and should not be decreased unless you're getting errors such as "response too large." Decreasing this value could slow down overall performance
PhantomsIn Faros, a record can make a reference to another record by its unique identifiying fields, even if the record being referred doesn't exist yet. In that case, a "placeholder" record, or phantom, is created to satisfy the reference condition, and then that record itself can be created at some other time when it's ready. This Activepieces parameter controls whether or not to return such phantom records in the result list. You can learn more about phantoms here .Defaults to 'Include Nested Only' (see additional details below)

Variables

Below is an example of how Variables can be configured.

Phantoms

What is a phantom?

In Faros, a record can make a reference to another record by its unique identifiying fields, even if the record being referred doesn't exist yet. In that case, a "placeholder" record, or phantom, is created to satisfy the reference condition, and then that record itself can be created at some other time when it's ready. This Activepieces parameter controls whether or not to return such phantom records in the result list. You can learn more about phantoms here .

What do the various options available for the 'Phantoms' field mean?

There are 4 options available for the Phantoms field. It defaults to 'Include Nested Only.'


  • Include Nested Only (default value): This means in the query below, Faros will not directly return phantom records, e.g. it won't return phantom vcs_Repository records from the query, but it will return any phantom vcs_Organization records that referenced by the vcs_Repository records in the result, since the query includes the organization.uid and source fields

  • Exclude: Exclude all phantom records

  • Include: Include all phantom records

  • Only: Only phantom records will be fetched. In general, this should not be used and is for debugging purposes only.

Integrating with Slack or other tools

To integrate with Slack or other tools, you need to first install the Faros bot onto your organization's workspace.

Below are instructions for Slack, but you will see similar workflows for other tools.

When configuring a step in Slack (for example, 'Send Message to A Channel'), select '+ Create Connection' in the Connection field.

Name your connection and click 'Connect'

You'll be prompted to grant permission for Faros AI Hermes (the Faros bot) to connect to Slack.

Once your organization's slack admin grants permission, you will be able to configure integrations with Slack.

You can also set up a new connection by clicking on the Connections tab on the left:

Reviewing Workflow Status

You can click the Runs tab on the left to review workflow status, last run, and more.