> For the complete documentation index, see [llms.txt](https://docs.diaflow.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diaflow.io/tables/action-cells.md).

# Action cells

Turn static rows into interactive execution triggers with cell-level buttons that launch Diaflow Flows, third-party app actions, or direct LLM prompts using row data as input.

## What is an Action Cell?

An **Action Cell** is an interactive button placed directly inside a table column. When you add an **Action column**, every row receives its own **Click to run** button.

When you click **Click to run**, Diaflow takes the live information from that specific row (such as a customer prompt, an email address, or an inquiry message) and uses it to perform a task for you:

* Post a notification to Slack with that customer's details.
* Ask an AI model to generate text, summarize notes, or classify feedback.
* Start a Diaflow workflow that generates an asset, drafts a contract, or processes files.

Instead of switching tabs, copying and pasting IDs, or waiting for manual batch jobs, your work happens right inside your table.

## Why Action Cells? <a href="#user-content-why-action-cells" id="user-content-why-action-cells"></a>

In traditional operations, executing a task based on a spreadsheet record requires switching tabs, copying IDs into a separate dashboard, or waiting for a scheduled batch job.

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2FBwxUt8C4Cpy0y3TDQRSn%2Ftable.webp?alt=media&amp;token=2487186a-194d-43f8-92b5-85685442ec43" alt=""><figcaption></figcaption></figure>

### Human-in-the-Loop Operations <a href="#user-content-human-in-the-loop-operations" id="user-content-human-in-the-loop-operations"></a>

Action Cells bridge spreadsheet records with automated execution while keeping team members in control:

1. **Review Data**: Inspect records directly inside the familiar table grid.
2. **Verify or Edit**: Make manual corrections or approve specific fields before execution.
3. **Execute On Demand**: Click **Run** on that exact row to immediately launch a Flow, execute an AI prompt, or send data to an external tool.

***

### Supported Action Types <a href="#user-content-supported-action-types" id="user-content-supported-action-types"></a>

When configuring an Action Column, you can select between two powerful execution modes: **Run an App** and **Run a Workflow**.

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2FzPrmCGeWIGTB2KKVlbPH%2Faction_type.webp?alt=media&amp;token=06edc9a7-d346-4aa7-b80b-b54a7124b4c9" alt=""><figcaption></figcaption></figure>

### Which one should I choose?

| Criteria      | Run an App                                         | Run a Workflow                                               |
| ------------- | -------------------------------------------------- | ------------------------------------------------------------ |
| Best for      | A single quick task                                | A multi-step task with logic and branching                   |
| What it does  | Performs one action in an external app or AI model | Starts a full visual workflow built in Diaflow Studio        |
| Prerequisites | None—configure it directly in the column           | The workflow must already exist in your workspace            |
| Example       | Post a row to Slack; generate a quick AI summary   | Generate an image, upload to Google Drive, and update status |

**Simple rule:** If your task only takes one step, use **Run an App**. If it takes several steps, use **Run a Workflow**.

***

### Run an App

**Run an App** triggers a single, direct action in an integrated tool or AI model without needing a pre-built workflow.

**Supported integrations**

* **Everyday apps**: Slack, Gmail, Google Drive, HubSpot, Jira, Webhooks, and more.
* **AI models**: OpenAI, Anthropic Claude, Google Gemini, and more.

**Using row data in your action**

When setting up the action, you can insert row values into fields or prompts using double curly braces: `{{Column Name}}`. When you click **Click to run**, Diaflow automatically replaces the tag with the actual data from that row.

For example, this prompt: `Summarize the support request for {{Customer Name}}: {{Inquiry}}`

On a row where **Customer Name** is "Anna" and **Inquiry** is "My account is locked", will run as:\
`Summarize the support request for Anna: My account is locked`

**Common use cases**

* Uploading an asset to Google Drive based on a file cell.
* Pushing an urgent support ticket into a Slack channel.
* Creating a new contact directly in your CRM.
* Labeling customer feedback as positive, neutral, or negative.
* Extracting key numbers or dates from unstructured text.

***

### Run a Workflow

**Run a Workflow** connects your action button directly to a workflow built in **Diaflow Studio**.

**Passing row values**

When you click **Click to run**, the entire row (all column values, headers, and row details) is sent as the starting trigger input to the workflow.

**Returning results to your table**

When the workflow finishes, you can map its outputs back into specific columns in that same row. For example, a workflow can generate an image from a prompt cell and automatically place the resulting image into your table's **Asset** column.

**Common use cases**

* Multi-step image or media generation pipelines.
* Multi-step lead research across several web sources.
* Generating a branded PDF contract from row data and emailing it to the client.
* Running an internal approval chain and updating the row's **Status** column when finished.

> **Important:** **Run a Workflow** requires the selected workflow to exist in the **same workspace** as your table. If you want to move or copy your table to another workspace, see the cloning guide below.

***

## Interacting with Action Cells in the Grid <a href="#user-content-interacting-with-action-cells-in-the-grid" id="user-content-interacting-with-action-cells-in-the-grid"></a>

### Running an Action <a href="#user-content-running-an-action" id="user-content-running-an-action"></a>

Each row in an Action Column features an interactive **Run** button. Clicking the button initiates execution using that row's live data.

### Status indicators

| Indicator                   | Status          | Meaning                                                                                                       |
| --------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------- |
| **Spinning icon**           | Running         | The action is currently processing.                                                                           |
| **Checkmark**               | Success         | The action finished successfully. Output data has been updated.                                               |
| **Alert / Warning icon**    | Failed          | Something went wrong. Check Run History for details.                                                          |
| **Red dot on column (•••)** | Needs Attention | The action needs a credential or workflow before it can run. Hover over the red dot to view the exact reason. |

* **Stopping a run**: If you clicked by mistake or a run is taking longer than expected, click **Stop** to cancel it cleanly.
* **Header progress counter**: The column header displays a live summary showing how many rows have finished versus how many are still running.

{% tabs %}
{% tab title="Status" %}

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2F2R3mKr0zVipD7r7iatMD%2Fexe_table.webp?alt=media&amp;token=4c036cf5-79b7-46e7-be3c-969cad8a1985" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Response" %}

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2FzEfs5Tgt1dRnjjebjEmt%2Fresponse.webp?alt=media&amp;token=3a0e4384-ce21-4c56-b57d-d9a7c4d79ef3" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

***

## Audit Trail & Run History <a href="#user-content-audit-trail--run-history" id="user-content-audit-trail--run-history"></a>

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2FojYN6Ch2wKIfBwfUw1aq%2Faudit.webp?alt=media&amp;token=c4505a36-ba5c-41d7-8e99-4764e144b384" alt=""><figcaption></figcaption></figure>

### Dedicated Run History <a href="#user-content-dedicated-run-history" id="user-content-dedicated-run-history"></a>

Every run initiated from an Action Cell is logged in your workspace's central **Run History** and **Usage** dashboard under the dedicated **Tables** tab, tagged with the origin label: `Source: Diaflow Tables`

This allows administrators to audit who triggered an action, which row ID was processed, execution timestamps, and exact payload responses.

### Crash Protection & Stuck Run Auto-Recovery <a href="#user-content-crash-protection--stuck-run-auto-recovery" id="user-content-crash-protection--stuck-run-auto-recovery"></a>

In distributed cloud architectures, worker disruptions or network failures can occasionally cause asynchronous tasks to stall.

{% hint style="warning" %} <mark style="color:$warning;">**10-Minute Timeout Protection**</mark>\
To ensure your workspace never encounters a cell that spins indefinitely, Diaflow Tables features an automated watchdog: **Any in-flight action run that stalls without an update for \~10 minutes is automatically marked as Failed**, unlocking the cell for retry.
{% endhint %}

***

## System Limitations & Guardrails <a href="#user-content-system-limitations--guardrails" id="user-content-system-limitations--guardrails"></a>

* **Single-Row Execution Only**: Currently, each action cell must be triggered row-by-row by a user. A "Run all rows at once" bulk execution button is not yet available and is planned for a future release.
* **Table Trash Lock**: Action cells inside a table residing in the Trash cannot be executed until the table is explicitly restored.

***

## Cloning a Table with Action Cells across Workspaces

When you want to reuse a table with Action Cells in a different workspace, there are two easy ways to copy it:

1. **Method 1: Export to CSV and Import**:
   * In your old workspace, open the table and click the **Download** icon next to **Table Settings (•••)** in the top right.
   * Choose **Export Current Sheet** or **Export Entire Table** as CSV.
   * Switch to your new workspace, click **+ New** > **Import CSV**, upload the file, and confirm your column mappings.
2. **Method 2: Clone from Diaflow Marketplace**:
   * In your target workspace, open [**Diaflow Marketplace**](https://platform.diaflow.io/marketplace/tables/category/featured).
   * Browse the table templates and click **Clone to workspace**.

***

### What happens to Action Cells after cloning?

Because accounts, credentials, and workflows belong securely to individual workspaces, check your Action columns right after cloning or importing. If a column cannot run, a **red dot** will appear on the **•••** button in the column header.

***

### 1. If the column is "Run an App"

Apps behave differently depending on whether they require an account login:

* **Apps that do not require credentials** (such as public web tools or standard AI endpoints without custom keys): They work immediately. You can click **Click to run** right away.
* **Apps that require credentials** (such as Google Drive, Gmail, Slack, HubSpot, or private CRMs):
  * The column header will show a **red dot** on the **•••** menu.
  * Hovering over the red dot displays:\
    **"Needs a credential"** - *Credentials are never copied from an imported file. Pick one in Settings so this column can run.*
  * **How to fix:** Click the **•••** icon on the column header to open **Settings**, locate the target app, and choose or add your account credential. Once saved, the red dot disappears and your buttons are ready to run.

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2FHKFQQAOV7RL0bsmqYu4B%2Frun%20an%20app.webp?alt=media&amp;token=bfde915f-e343-4341-b63a-e341d1e3d6da" alt=""><figcaption></figcaption></figure>

***

### 2. If the column is "Run a Workflow"

Diaflow reconnects workflows **by exact name matching**. It searches the new workspace for a workflow that has the exact same name as the one selected in the old table.

| Situation in the new workspace                     | What happens                        | What you need to do                                                                         |
| -------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------- |
| **A workflow with the exact same name exists**     | Auto-connects automatically         | Nothing! The column detects the workflow immediately and you can click **Click to run**.    |
| **The workflow exists, but with a different name** | Connection broken (Red dot appears) | Click **•••** to open **Settings**, browse your workflows, and select the correct workflow. |
| **The workflow does not exist yet**                | Connection broken (Red dot appears) | Import the workflow into this workspace first (steps below), then make sure it is linked.   |

When a workflow is missing, hovering over the red dot displays:\
**"Needs a workflow"** - *Its workflow isn't in this workspace. Choose one in Settings so this column can run.*

<figure><img src="https://3864624312-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRdo1pkMnofwxf3lpWftw%2Fuploads%2FkrJIgJepckyh79z1h1Bu%2Frun%20a%20workflow.webp?alt=media&amp;token=45ee7e49-7a59-445a-b6f6-be1b2adef003" alt=""><figcaption></figcaption></figure>

> **Important:** Workflow names must match **identically, character for character**. For example, `Generate Image` will **not** automatically match `Generate Image v2` or `generate image`.

**How to import a missing workflow:**

1. In your old workspace, open the workflow in **Studio** and export it as a **JSON** file.
2. In your new workspace, click **New Flow** > **Import from JSON** and upload the file.
3. Keep the **exact same name** as in the old workspace so your table catches it automatically.
4. If the workflow uses third-party apps, make sure its internal credentials are connected.
5. In your table, open **Settings** from the column header's **•••** menu to verify that the workflow is linked, then test it by clicking **Click to run**.
