Skip to main content
Add Context.dev to a Zap to turn a domain into company data, extract information from a webpage, or send website change alerts. Start by enriching one spreadsheet row, then choose other operations as your workflow grows.

Install the Context.dev Zapier app

Connect your Context.dev account using an API key.

Setup walkthrough

This example reads a domain from Google Sheets and writes the company name back to the same row.

Prerequisites

  • A Context.dev API key.
  • A Zapier account with access to the apps and steps used in your workflow.
  • A Google Sheet with domain and company_name columns. Add a test row containing stripe.com in the domain column.

1. Connect your account

Open the Context.dev app in Zapier, create a connection, and enter your ctxt_secret_ key. Give it a name such as Context.dev production so you can identify it later. Keep the key in the saved connection. Other steps should use that connection rather than copy the key into fields or notes.

2. Add a trigger

Create a Zap with Google Sheets > New Spreadsheet Row. Select your spreadsheet and worksheet, then test the trigger. Confirm that the test record includes stripe.com in the domain field.

3. Get the company profile

Add Context.dev > Get Brand Profile: Select Test step. Check that the response contains brand.domain and brand.title. Other fields, including logos and social profiles, may be absent.
Action names depend on the version available to your connection. If Get Brand Profile is missing, check the older action names or use an HTTP request with the current API contract.

4. Map and publish

Add Google Sheets > Update Spreadsheet Row. Map the original row ID from the trigger and the returned Brand Title to company_name. Preserve the domain and any fields you are not enriching. Test the update, confirm the expected row changed, then publish the Zap. Add a new row and inspect its run in Zap History before processing a larger list.

Map the response

Most workflows can map the action’s output directly without a code step: Keep existing destination values when optional data is missing. For arrays, select the entry that fits your use case rather than assuming the first logo or social profile is always the right one.

What you get

Triggers start a Zap, searches find an existing record, and actions pass API results to later steps. The catalog below describes the version 3.1 action names. Check the version in your Zap editor when a name or field differs. Context.dev API usage and Zapier tasks are billed separately.

Triggers

All three are polling triggers. Zapier checks Context.dev on your Zapier plan’s polling interval, so an event reaches your Zap a few minutes after Context.dev records it. For instant delivery, give the monitor a Webhook URL that points at a Webhooks by Zapier catch hook instead; see Receive webhooks.

Searches

Searches are useful as the step before an update: find the monitor by name, then feed its ID into Update Website Monitor or Run Website Monitor Now.

Brand intelligence and classification actions

Web scraping and search actions

Extraction and parsing actions

Batch processing actions

Website monitor actions

Request options

  • Lists are plain text. Fields such as URLs, Tags, Publisher Domains, and Only These Domains take comma-separated values or one value per line.
  • Maximum Cache Age (Milliseconds) controls how old a cached result may be. Leave it blank for the endpoint default. Brand retrieval and supported scraping operations accept 0 for a fresh fetch and honor positive values below one day.
  • Country takes a two-letter code such as US or GB and fetches the page as a visitor from that country would see it.
  • Zero Data Retention bypasses shared caches and keeps request content out of retained logs. It only works once zero data retention is enabled for your organization; otherwise the step fails with ZDR_NOT_ENABLED. See Zero Data Retention.
  • Free and disposable emails are rejected. Get Brand Profile with Lookup By set to email returns a 422 for addresses at Gmail, Yahoo, and similar providers, or at disposable-email domains.
  • Keep single-step crawls small. Crawl a Website and Extract Structured Data run inside one Zap step. For whole sites, use Submit Website Crawl Batch and pick the results up with the Batch Finished trigger.
  • Include Page Content costs extra. In Search the Web, turning it on returns cleaned page content with each result and uses additional credits on top of the search.

Upgrading from the retired actions

For a Zap using version 3.0 action names, use this mapping when upgrading to version 3.1. Test the replacement’s inputs and outputs before publishing the updated Zap.

Common trigger pairings

Sample response

Get Brand Profile returns a brand object. This shortened example shows its shape; field availability and values vary by company. In Zapier’s field picker, brand.title may appear as Brand Title.

Reshape responses with Code by Zapier

Use a code step only when direct field mapping does not fit the destination. The Python examples below expect a brand input containing the complete brand object as JSON text and a separate status input. Configure those under the code step’s Input Data. If your action only exposes individual fields, map those directly instead.

One-shot flatten (most-used)

When you want every common field as a flat output:

Best logo for a given UI

brand.logos[] is an array of variants. Pick one by type (icon vs. full wordmark) and mode (light, dark, opaque):

Detect a missing or weak response

A successful response can still lack the logo or industry your next step needs. Check those fields before writing to the destination:
Add a Filter by Zapier step to continue only when the required field is present. Keep the source row or record available for review when it is skipped.Failed API actions need separate error handling in Zapier; they may stop the Zap before this code step runs. Check Zap History and the returned error_code for no-match, authentication, and server errors. See Troubleshooting.

Start Zaps from Context.dev events

The triggers turn Context.dev into the source of a Zap instead of a step in the middle.

Website change alerts

  1. Create the monitor in the dashboard or with the Create Website Monitor action. Give it a tag such as competitors so you can filter on it later.
  2. Trigger: Context.dev “New Website Change”. Set Monitor ID to watch one monitor, or leave it blank and set Tags to competitors to watch a group.
  3. Action: Slack “Send Channel Message” with the change summary, the monitor name, and the target URL.
Each change record includes an importance rating. Add a Filter by Zapier step on it to keep low-value edits out of the channel. See Create Monitors for how targets and detection modes work.

Batch pipeline

Submitting a batch and reading its results are two Zaps, connected by the Batch Finished trigger. Zap A: submit
  1. Trigger: Google Sheets “New Spreadsheet Row” with a domain column
  2. Action: Context.dev “Submit Website Crawl Batch” with Source Type set to sitemap, Start URL or Domain mapped from the row, Output Format set to markdown, and Tags set to sheet-import
Zap B: collect
  1. Trigger: Context.dev “Batch Finished” with Final Status set to completed and Tags set to sheet-import
  2. Action: Context.dev “Get Batch Results” with the Batch ID from the trigger and Results Per Page set to 100
  3. Looping by Zapier: Iterate over the result records
  4. Action: Airtable “Create Record” per page with its URL, title, and Markdown
Get Batch Results returns one page at a time. Continue with each Next Cursor until no cursor remains. For an unknown number of pages, use a workflow or completion-webhook handler that can repeat this process; adding one more step only reads one more page. Record shapes are documented in Read result records as JSON.

Reach endpoints without a dedicated action

A few endpoints have no Zapier action yet: people enrichment, brand search, cache prefetching, product extraction, batch deletion, and per-monitor change history. Use the built-in Webhooks by Zapier app to call them with your API key. Example: enrich a new lead with people data.
  1. Trigger: HubSpot “New Contact”
  2. Action: Webhooks by Zapier “Custom Request”
    • Method: POST
    • URL: https://api.context.dev/v1/people/enrich
    • Data: {"email": "<contact email from step 1>"}
    • Headers: Authorization: Bearer ctxt_secret_... and Content-Type: application/json
  3. Action: HubSpot “Update Contact” with the returned title, company, and social profiles
The key lives in the step configuration rather than in a saved connection, so keep these Zaps in a folder with restricted access, and prefer a dedicated Context.dev action whenever one exists. Parameter names and response shapes for every endpoint are in the API reference.

Example automations

Enrich a new HubSpot contact

  1. Trigger: HubSpot “New Contact”
  2. Action: Context.dev “Get Brand Profile” with Lookup By set to email and the contact’s email as Lookup Value
  3. Code by Zapier: One-shot flatten
  4. Filter: Continue only if enrichment_ok is true
  5. Action: HubSpot “Update Contact” with logo, industry, LinkedIn, and address fields

Slack notification with brand context

  1. Trigger: Stripe “New Customer”
  2. Action: Context.dev “Get Brand Profile” with Lookup By set to email and the customer’s email as Lookup Value
  3. Code by Zapier: Best logo for a given UI (use logo_dark for dark Slack themes)
  4. Action: Slack “Send Channel Message” with company name in the title, dark logo as icon, industry in attachment text

Bulk-enrich a Google Sheet

  1. Trigger: Google Sheets “New Spreadsheet Row” with a domain column
  2. Action: Context.dev “Get Brand Profile” with Lookup By set to domain
  3. Code by Zapier: One-shot flatten
  4. Action: Google Sheets “Update Spreadsheet Row” with logo, industry, LinkedIn, and pricing-page columns

NAICS-tag a CRM lead

  1. Trigger: Salesforce “New Lead”
  2. Action: Context.dev “Find Company NAICS Codes” with the lead’s domain
  3. Code by Zapier: Pull codes[0].code for the highest-confidence NAICS
  4. Action: Salesforce “Update Lead” with the NAICS code in a custom field

Visual transaction enrichment

  1. Trigger: Plaid webhook
  2. Action: Context.dev “Get Brand Profile” with Lookup By set to transaction description, the raw descriptor as Lookup Value, and Country when you have it
  3. Code by Zapier: Pull brand name and logo
  4. Action: Notion “Create Page” with merchant logo, name, and category

Competitor pricing watch

  1. Trigger: Google Sheets “New Spreadsheet Row” with a pricing_url column
  2. Action: Context.dev “Create Website Monitor” with Target Type set to page, Target URL mapped from the row, Change Instructions set to “Report pricing or plan availability changes. Ignore counters, timestamps, and testimonials.”, Run Every set to 1, Schedule Unit set to days, and Tags set to competitors
  3. A second Zap uses the website change alerts pattern to post each confirmed change to Slack

Weekly product catalog snapshot

  1. Trigger: Schedule by Zapier “Every Week”
  2. Action: Context.dev “Extract Structured Data” with a competitor’s catalog URL, Maximum Pages set to 12, and this JSON Schema:
  3. Looping by Zapier: Iterate over products
  4. Action: Airtable “Create Record” per product with name, price, currency, and product URL

Pricing page screenshot to Slack

  1. Trigger: Schedule by Zapier “Every Day”
  2. Action: Context.dev “Capture Website Screenshot” with URL set to the competitor’s pricing page and Capture Full Page turned on
  3. Action: Slack “Send Channel Message” with the returned screenshot URL as an image attachment

Parse inbound documents

  1. Trigger: Gmail “New Attachment”
  2. Action: Context.dev “Parse a Document” with the attachment as File and its File Extension (for example pdf)
  3. Action: Notion “Create Page” with the returned Markdown as the page body

Weekly company news digest

  1. Trigger: Schedule by Zapier “Every Week”
  2. Action: Context.dev “Search Company News” with Identify Company By set to domain, the competitor’s domain as Company Identifier, Published After set to seven days ago, and Maximum Results set to 10
  3. Action: Email by Zapier “Send Outbound Email” listing each article’s title, publisher, and URL

Troubleshooting

General API errors and retry guidance are in Troubleshooting. Zapier-specific issues:
  • “Authentication failed.” The API key was rejected. Re-paste it in Zapier’s My Apps > Context.dev connection settings; confirm the ctxt_secret_ prefix.
  • Get Brand Profile returns 422 on an email. The address is at a free provider (Gmail, Yahoo, and similar) or a disposable-email domain. Filter those out before the Context.dev step, or switch Lookup By to company name or domain.
  • A trigger never fires. Polling triggers only pick up events recorded after the Zap is turned on. Check that the monitor is active, that Monitor ID, Tags, or Final Status filters match, and that Zapier’s polling interval has elapsed. Batch Finished requires one Final Status, so make a separate Zap for each terminal status you care about.
  • Create Website Monitor is rejected. Semantic page monitors and structured website monitors need Change Instructions, sitemap monitors only support exact change detection, and Run Every with Schedule Unit must land between 10 minutes and one year. See Pick a target.
  • A crawl or extraction step times out. Lower Maximum Pages or Maximum Link Depth, or move the job to Submit Website Crawl Batch and read it back with Batch Finished and Get Batch Results.
  • Parse a Document fails. File Extension is required and must match the file, written without a dot. Scanned PDFs need Use OCR turned on.
  • A step fails with ZDR_NOT_ENABLED. Zero Data Retention is on but your organization has not enabled it. Turn the field off, or contact [email protected] to enable it.
  • No logo in the response. Keep the company name visible and use your own initials or neutral icon when the destination needs an image. Logo Link can provide a hosted logo, but it also needs a missing-image fallback.
  • An old Zap references a different action name. Compare the installed version with the migration table, then test the replacement before publishing.

Next steps

Make integration

Build a scenario using Context.dev and Make’s HTTP module.

Website monitors

Targets, detection modes, schedules, and webhooks behind the monitor actions and triggers.

Batch jobs

How batches are queued, billed, and read back.

Brand API reference

The underlying endpoints. Useful when reading Zap test responses.
Need help implementing a specific Zap? Email us and we’ll walk through it with you.