Updated: 03 December 2025

Salesforce Tables in Slack from Centro

Salesforce Tables in Slack from Centro lets you send rich, HTML-based tables directly into Slack channels using Salesforce Flow. You can use it to post open cases, pipeline summaries, or any tabular data your teams need to see in Slack.

This article walks through two ways to send tables to Slack:

  1. Attaching a Salesforce report as an HTML table.

  2. Building a fully custom HTML table inside a Flow.

Use cases: Daily open case lists, owner-based reminders, pipeline snapshots, customer health views, and more — all delivered to the Slack channels where people collaborate.

Prerequisites

  • Centro managed package installed and configured in your Salesforce org.

  • Centro connection to Slack set up (workspace authorized).

  • Permission to build or edit Salesforce Flows.

  • Access to the Salesforce reports and objects you want to use.

How It Works

Slack supports basic HTML tables in rich text messages. Centro’s Send Notification Flow element can post those HTML tables to any Slack channel. You can either:

  • Let a report drive the table (fastest setup), or

  • Construct the table yourself in Flow for more control over layout and fields.

In Slack, the first row of the table is automatically rendered in bold. You can treat that row as your header, or simply use it as an emphasized line of data.

Option 1: Send a Salesforce Report as an HTML Table

Use this approach when you already have a standard or custom report that includes the columns, subtotals, and totals you want to show in Slack.

Step 1: Create or Identify Your Report

  1. In Salesforce, open or create the report you want to send (e.g., “Open Opportunities”).

  2. Include all necessary columns, groupings, subtotals, and grand totals.

  3. Save and make sure you have access to run the report.

Step 2: Build a Scheduled or Autolaunched Flow

  1. Go to Setup > Flow and create a new Flow.

  2. Choose a Scheduled Flow or Autolaunched Flow depending on how you want to trigger the notification (for example, daily at 8am).

  3. Configure the start and save the Flow.

Step 3: Add the Centro Send Notification Element

  1. In the Flow canvas, drag in the Centro Send Notification element.

  2. In the element properties, configure:

    • Slack Channel – You can hard-code a channel (e.g., #case-reminders) or use a variable.

    • Header / Message – Add context such as “Daily Open Opportunities” or “Open Cases for Hannah”.

Step 4: Attach the Report as a Table

  1. Within the same Send Notification element, find the Attached Report section.

  2. Select the Report you created in Step 1.

  3. Set File Format to Text. This tells Centro to send the report as an HTML-compatible table directly into Slack.

  4. Save your changes and activate the Flow.

When the Flow runs, the report will be posted into your target Slack channel as a formatted HTML table with all of the columns, subtotals, and totals from the report.

Option 2: Build a Custom HTML Table in Flow

Use this approach when you want full control over the fields, ordering, and formatting of each row. In this example, we’ll send a list of open Cases to a Slack channel.

Step 1: Create a Scheduled Flow

  1. Create a new Scheduled Flow (e.g., scheduled on the User object).

  2. Configure the schedule and criteria for which users (or records) should receive the reminder.

Step 2: Get the Records for Your Table

  1. Add a Get Records element for the object you want (e.g., Case).

  2. Set your filter criteria (e.g., Status = Open, Owner = the current User).

  3. Ensure the element is configured to Get all records.

Step 3: Create Variables for the Table

  1. Create a Text variable (e.g., varListRows) that will store the HTML for your table.

  2. Optionally, create a second variable (e.g., varOwnerName) if you want to mention or reference the Case Owner in the message header.

Step 4: Assignment – Start the Table

Add an Assignment element (e.g., “Set Table Start”) with the following:

  1. Set varListRows using the Add operator to the table header HTML, for example:

<table>
  <tr>
    <td>Case Number</td>
    <td>Subject</td>
    <td>Account</td>
    <td>Status</td>
  </tr>

This creates the opening <table> tag and your header row. Slack will render this first row in bold.

Step 5: Loop Through the Records

  1. Add a Loop element over your Case collection from the Get Records step.

  2. Inside the loop, you’ll combine:

    • an Assignment element to add a row to varListRows, and

    • a Text Template resource that defines how each row should look.

Step 6: Configure the Text Template for Each Row

Create a new Text Template resource (e.g., “Row Template”) with HTML like:

<tr>
  <td>{!Loop_Case.CaseNumber}</td>
  <td>{!Loop_Case.Subject}</td>
  <td>
    <a href="{!Loop_Case.Account.Link}">{!Loop_Case.Account.Name}</a>
  </td>
  <td>{!Loop_Case.Status}</td>
</tr>

Replace the field API names in the merge fields with your own Flow variables. The link example shows how you can make the Account name clickable in Slack.

Step 7: Assignment – Add Each Row

  1. Inside the loop, add an Assignment element (e.g., “Set Open Cases Rows”).

  2. Use the Add operator to append the Text Template to varListRows:

    • Variable: varListRows

    • Operator: Add

    • Value: your row Text Template (e.g., {!Row_Template})

  3. Optionally, set varOwnerName to the Case Owner in the same Assignment so you can mention them later in the Slack message.

Step 8: Assignment – End the Table

After the loop, add one more Assignment element (e.g., “Set End Table”) to close the table:

varListRows (Add) = "</table>"

At this point, varListRows contains the full table: the header row, all of the data rows, and the closing tag.

Step 9: Send the Table to Slack Using Centro

  1. Add the Centro Send Notification element at the end of your Flow.

  2. Configure:

    • Slack Channel: Hard-code a channel like #case-reminders or use a variable.

    • Header / Message: For example: @{!varOwnerName} – Open Cases

    • Rich Text Body: Insert the {!varListRows} text variable.

  3. Save and activate the Flow.

When the Flow runs, Centro posts your HTML table into Slack as part of the rich text message. Each row you built in the loop appears as a row in the table, just as demonstrated in the video.

Troubleshooting Tips

  • Table not rendering? Make sure you’re using valid HTML tags: <table>, <tr>, and <td>.

  • Everything looks bold? Remember that Slack bolds the first row. Ensure your header row is the first <tr> element.

  • Links not clickable? Confirm the anchor tag syntax: <a href="https://example.com">Label</a>.

  • No data in the table? Check your Get Records filters to verify that records are being returned to the Flow.

Next Steps

Once you have your first table working, you can reuse the pattern for:

  • Daily or weekly pipeline reviews in sales channels.

  • Case queues for service teams.

  • Account health and renewal reports for account teams.

If you’d like help modeling a specific use case or adapting these patterns to your org, please contact the Centro team.