Zapier Plasmate Integration

April 12, 2026 ยท View on GitHub

Connect Plasmate to 7,000+ apps with Zapier. Plasmate is the browser engine for AI agents - it converts HTML to structured JSON (SOM) with 10-100x token compression.

Features

  • Fetch Page - Convert any webpage to structured JSON, text, or markdown
  • Extract Text - Get clean, readable text from any URL
  • Extract Links - Pull all links from a page with filtering options
  • Batch Fetch - Process up to 20 URLs in a single action
  • Page Changed Trigger - Monitor webpages for content changes

Installation

Prerequisites

  • Node.js 18+
  • Zapier CLI
  • A Zapier developer account

Setup

# Clone the repository
git clone https://github.com/nicholasrubright/zapier-plasmate.git
cd zapier-plasmate

# Install dependencies
npm install

# Login to Zapier CLI
zapier login

# Validate the integration
zapier validate

# Run tests
npm test

Development

Local Testing

# Run all tests
npm test

# Validate Zapier integration
zapier validate

# Test a specific action
zapier invoke create fetchPage --inputData '{"url": "https://example.com"}'

Environment Variables

For testing with Plasmate Cloud:

export PLASMATE_API_KEY="your-api-key"
export PLASMATE_BASE_URL="https://api.plasmate.app"

For local Plasmate:

export PLASMATE_BASE_URL="http://localhost:3000"

Publishing

Initial Publish

# Register the app with Zapier
zapier register "Plasmate"

# Push to Zapier
zapier push

# Promote to public (after Zapier review)
zapier promote 1.0.0

Updates

# Bump version in package.json, then:
zapier push

# Promote the new version
zapier promote 1.0.1

Actions

Fetch Page

Fetches a webpage and converts it to structured JSON (SOM) with massive token compression.

Inputs:

FieldTypeRequiredDescription
URLstringYesThe webpage URL to fetch
FormatchoiceNosom (default), text, or markdown
CSS SelectorstringNoExtract specific content (e.g., article, .main)
TimeoutintegerNoMax wait time in ms (default: 30000)
Include MetadatabooleanNoInclude title, description, etc.
Include LinksbooleanNoInclude all page links

Outputs:

  • content - The processed content
  • tokenSavings - Compression percentage (e.g., "85%")
  • title, description - Page metadata
  • links, linkCount - Extracted links (if enabled)

Extract Text

Extracts clean, readable text from a webpage.

Inputs:

FieldTypeRequiredDescription
URLstringYesThe webpage URL
CSS SelectorstringNoExtract from specific element
Max LengthintegerNoTruncate to N characters
Preserve Line BreaksbooleanNoKeep original formatting

Outputs:

  • text - Extracted text content
  • wordCount, charCount - Text statistics
  • truncated - Whether content was cut off

Extracts and filters all links from a webpage.

Inputs:

FieldTypeRequiredDescription
URLstringYesThe webpage URL
CSS SelectorstringNoExtract links from specific area
Filter PatternstringNoRegex to filter links
Include InternalbooleanNoInclude same-domain links
Include ExternalbooleanNoInclude other-domain links
Maximum LinksintegerNoLimit returned links

Outputs:

  • links - JSON array of link objects
  • totalCount, internalCount, externalCount - Link counts
  • link1 through link5 - First 5 links for easy access

Batch Fetch

Fetches multiple URLs in a single action.

Inputs:

FieldTypeRequiredDescription
URLstextYesURLs (newline or comma-separated)
FormatchoiceNoOutput format for all pages
CSS SelectorstringNoApplied to all pages
TimeoutintegerNoTimeout per page
Max ConcurrentintegerNoParallel requests (1-10)

Outputs:

  • results - JSON array of fetched content
  • successCount, errorCount - Result counts
  • result1_url, result1_content, etc. - First results

Triggers

Page Changed

Triggers when webpage content changes. Uses content hashing for reliable change detection.

Inputs:

FieldTypeRequiredDescription
URL to MonitorstringYesThe webpage to watch
CSS SelectorstringNoMonitor specific content
Ignore WhitespacebooleanNoSkip formatting-only changes

Outputs:

  • content - Current page content
  • contentHash - MD5 hash for comparison
  • checkedAt - Timestamp of check

Example Zaps

1. Save Articles to Notion

Trigger: RSS feed new item Action: Fetch Page (format: markdown) Action: Create Notion page with content

2. Monitor Competitor Pricing

Trigger: Page Changed (selector: ".price") Action: Send Slack notification Action: Log to Google Sheets

3. Build a Knowledge Base

Trigger: New Airtable record with URL Action: Fetch Page (format: som) Action: Update Airtable record with content

4. Content Aggregator

Trigger: Schedule (daily) Action: Batch Fetch (list of news sites) Action: Send digest email via Gmail

Trigger: Schedule (weekly) Action: Extract Links from your site Action: For each link, Fetch Page Filter: Where fetch failed Action: Create issue in GitHub

Authentication

The integration supports two modes:

  1. Plasmate Cloud - Enter your API key for hosted service
  2. Local Plasmate - Leave API key blank, set base URL to your local instance

Rate Limits

  • Plasmate Cloud: 100 requests/minute (default tier)
  • Batch actions count as one request regardless of URL count
  • Page Changed trigger polls every 5 minutes by default

Support

License

MIT