> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.markup.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.markup.ai/_mcp/server.

# Automated Content Quality with Zapier

> Run the Markup AI Style Agent on text from any Zapier-connected app and act on the results without writing code.

The Markup AI Zapier app runs the **Style Agent** against text from any source Zapier can reach — cloud storage, CMSs, ticketing systems, forms, emails, webhooks — and returns a content-risk assessment, issues grouped by severity, and a ready-to-send HTML report. Use it to enforce style and brand standards automatically, wherever your content lives.

This guide walks you through the app, then shows a complete **Google Drive → Markup AI → Gmail** Zap you can copy and adapt.

---

## What Markup AI does for you in Zapier

* **One action, agentic workflow**: The single **Run Content Analysis Agents** action submits your text to the Markup AI Style Agent and waits for the result via webhook — long documents won't time out the Zap.
* **Style Agent**: Pick the Style Guide (your team's style standards) at the step level.
* **Structured result**: Every successful run returns issues grouped by severity (**High**, **Medium**, **Low**), an `issue_counts` summary, a `workflow_id` for traceability, and an `html_report` you can drop straight into an email body.
* **Filter and route**: Use Zapier's built-in **Filter** step on the issue counts to alert reviewers only when content needs attention.

---

## Which agents are supported

* **Style Agent**

---

## Prerequisites

To use the Markup AI Zapier app, you'll need:

* A **Zapier account** (Free or Paid, depending on your needs).
* A **Markup AI account with the Style Agent enabled for your organization**. The Style Agent is not on self-serve signup yet — [talk to us](https://markup.ai/lets-talk/) to get it enabled.
* A **Markup AI API token** generated from the [Markup AI console](https://console.markup.ai/).
* A **content source** node — for example Google Drive, Notion, HTTP webhook, a form, or an email parser — that can deliver your content into the Zap.
* (Optional) An **output channel** such as Gmail or Slack to deliver results to stakeholders.

> **Tip**
>
> The Style Agent must be enabled for your organization for the action to succeed. If it isn't, the step fails fast with a clear error — [reach out to support](https://community.markup.ai/) to get it turned on.

---

## Supported content sources

The Markup AI action accepts content from any Zapier source — the Style Agent works with multiple content formats, so you don't need to convert ahead of time. Typical patterns:

* **File-based sources** (Google Drive, Dropbox, S3, etc.) combined with Zapier's built-in **Files** app to pass file contents into Markup AI.
* **Direct content** from forms, webhooks, transactional email parsers, or upstream automation tools.
* **CMS and documentation platforms** via their Zapier integrations.

---

## Connect the Markup AI app

1. In Zapier, search for the **Markup AI** app and add it as an action step.
2. Click **Sign in** and provide your **Markup AI API Token** when prompted. Zapier validates the token against your Markup AI workspace.
3. Once connected, the same account is available to every Zap in your Zapier workspace.

---

## Configuring the Run Content Analysis Agents action

The Markup AI app exposes a single action: **Run Content Analysis Agents**. It takes your text, runs it through the Style Agent, and returns a structured result plus an HTML report.

The fields you'll see in Zapier:

* **Agent** *(required)* — Pick the **Style Agent**.
* **Style Guide** *(shown after picking the Style Agent)* — Choose the Style Guide for this Zap. The dropdown is populated from the Style Guides configured for your organization. Leave it blank to use your default Style Guide.
* **Content** *(required)* — Map this to the content you want to analyze (for example, the content extracted from a Google Drive file).
* **Document Name** *(optional)* — A human-readable name (for example, the filename) that's echoed back on the result.
* **Document Reference** *(optional)* — A caller-supplied identifier (such as a CMS page ID) that's echoed back on the result. Useful for matching results to records in your downstream systems.

> **Tip**
>
> The Style Guide is a *starting point*. Different Zaps can pick different Style Guides, so one Zap can check marketing copy against your Marketing guide while another checks technical docs against an Engineering guide.

---

## Understanding the output

A successful run returns a single result with these top-level fields:

* `workflow_id` — Unique ID for the run. Include it when contacting [Markup AI support](https://community.markup.ai/) about a specific check.
* `status` — `completed`, `failed`, `timed_out`, or `cancelled`. Successful runs are always `completed`.
* `document_ref` — Echoes the **Document Reference** you provided.
* `result.issues[]` — Every issue the Style Agent found, with severity, category, original phrase, suggestion, and explanation.
* `issue_counts` — `{ total, high, medium, low }` summary of issues by severity — the Content Risk assessment for the run.
* `html_report` — A self-contained, email-safe HTML report you can drop into the body of a Gmail or Slack step.
* `started_at`, `completed_at`, `duration_seconds` — Timing metadata.

Use any of these in downstream Zap steps — a **Filter** on `issue_counts.high`, a **Path** that branches on severity, or a Gmail step that pastes `html_report` into the body.

---

## Example Zap — Google Drive → Markup AI → Gmail

This Zap watches a Google Drive folder, runs the Style Agent on every new or updated document, and emails the report to stakeholders when Markup AI flags **High** severity issues.

You can swap Google Drive for any Zapier source app (Notion, OneDrive, S3, a webhook) and Gmail for any messaging or task-management app.

#### Zapier Trigger — Google Drive

Start the Zap when a file lands in (or is updated in) a watched folder.

* **App:** Google Drive
* **Event:** *New File in Folder* (for new documents) or *Updated File in Folder* (for changes to existing documents).
* **Setup:**
  * In Zapier, click **Create Zap**.
  * Search for and select **Google Drive** as the trigger app.
  * Choose your trigger event and connect your Google Drive account.
  * Select the specific folder you want to monitor.
  * Test the trigger and confirm Zapier returns a sample file.

#### Extract the file contents

Pull the file contents out so the Markup AI action can analyze them.

* **App:** Zapier (built-in **Files**)
* **Action:** *Text From File*
* **Setup:**
  * Map **File** to the file object from the Google Drive trigger.
  * Keep **Encoding** at the default `utf8`.
  * If you want to skip files Zapier can't extract content from, add a **Filter** step before this one that drops items without a usable file payload.

#### Markup AI — Run Content Analysis Agents

Run the Style Agent against the extracted content.

* **App:** Markup AI
* **Action:** *Run Content Analysis Agents*
* **Setup:**
  * Connect your Markup AI account using your API Token (first run only).
  * **Agent:** select the Style Agent.
  * **Style Guide:** pick the Style Guide for this Zap, or leave blank to use your default.
  * **Content:** map to the **Text** output from the Zapier Files step.
  * **Document Name:** map to the file name from the Google Drive trigger.
  * **Document Reference:** map to the Google Drive file ID (or any other identifier you want echoed back).
  * Test the step. The action submits the request, waits for the Style Agent to finish, and returns the full result.

#### Filter — only continue when the run is risky

Skip notifications for content that already passes.

* **App:** Zapier (built-in **Filter**)
* **Setup:**
  * Add a **Filter** step after the Markup AI action.
  * Set the condition, for example: **`Issue Counts High`** → **Is greater than** → `0` — alert whenever any **High** severity issue is found.
  * For a stricter gate, alert on both **High** and **Medium** issues with a second condition on **`Issue Counts Medium`**.

#### Gmail — email the report

Send a ready-made notification with the Markup AI report embedded.

* **App:** Gmail
* **Action:** *Send Email*
* **Setup:**
  * Connect your Gmail account.
  * **To:** the stakeholders to notify. You can also map the **Owner's Email Address** from the Google Drive trigger.
  * **Subject:** something actionable, for example `Content risk alert — {{File Name}}`.
  * **Body Type:** *HTML*.
  * **Body:** map to **`Html Report`** from the Markup AI step. The full styled report renders in the email.
  * (Optional) Use **`Workflow ID`** in the body or subject line so reviewers can quote it back to support.
  * Test the step and confirm a sample email arrives.

#### Publish your Zap

Turn the Zap on. New or updated files in the watched folder are now checked automatically, and only files that fail your risk gate trigger an email.

---

## Tips for building reliable Zaps

* **Test every step.** Use Zapier's per-step testing so you can see real data flowing through before you publish.
* **Rename steps.** A step called *Filter — High issues* is far easier to maintain than *Filter 2*.
* **Use dynamic fields.** Pull in `File Name`, `Document Reference`, and `Workflow ID` everywhere you can — they make troubleshooting trivial later.
* **Agree on the risk gate with your team.** Decide which severities should page reviewers (for example, *any* **High** issue, or **High + Medium** combined) before you wire the filter.
* **Log to a sheet.** Add a **Google Sheets → Create Row** step to record `issue_counts` over time and watch trends across content owners.

---

## Troubleshooting

**Zap not triggering**

* Confirm the trigger is wired to the right Google Drive folder and event type.
* Check the **History** tab in Zapier — triggers only fire when Zapier polls and sees a new event.

**Markup AI step failing**

* Verify your API Token is current and that the Style Agent is enabled for your organization.
* Make sure **Content** is mapped to a non-empty text value from the Zapier Files step.
* Open the step's error in Zapier history — the response includes a `workflow_id` you can share with [Markup AI support](https://community.markup.ai/).

**Email not sending**

* Confirm the **Filter** step let the run through — the most common cause is that the run came back below your risk gate (no **High** severity issues).
* Check that **Body Type** is set to *HTML* in the Gmail step so the report renders properly.

**Risk gate isn't catching what you expect**

* Double-check the comparator (`Is greater than` vs. `Is less than`) on the filter.
* Try widening the gate to include **Medium** severity issues, or narrow it to a specific category from `result.issues[]`.

---

## Need help?

Reach out at the [Markup AI Community](https://community.markup.ai/). Include the `workflow_id` from the Markup AI step's output and a short description of what you saw — that's everything support needs to investigate a specific run.