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
domainandcompany_namecolumns. Add a test row containingstripe.comin the domain column.
1. Connect your account
Open the Context.dev app in Zapier, create a connection, and enter yourctxt_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 includesstripe.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 tocompany_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 and searches
Triggers and searches
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.
Company data and classification
Company data and classification
Brand intelligence and classification actions
Web scraping and search
Web scraping and search
Web scraping and search actions
Extraction and parsing
Extraction and parsing
Extraction and parsing actions
Batch processing
Batch processing
Batch processing actions
Website monitors
Website monitors
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
0for a fresh fetch and honor positive values below one day. - Country takes a two-letter code such as
USorGBand 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
422for 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.Compare action names
Compare action names
Common trigger pairings
Sample response
Get Brand Profile returns abrand 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 abrand 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.
Flatten a brand response
Flatten a brand response
Select a logo variant
Select a logo variant
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):Check optional fields
Check optional fields
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: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
- Create the monitor in the dashboard or with the Create Website Monitor action. Give it a tag such as
competitorsso you can filter on it later. - Trigger: Context.dev “New Website Change”. Set Monitor ID to watch one monitor, or leave it blank and set Tags to
competitorsto watch a group. - Action: Slack “Send Channel Message” with the change summary, the monitor name, and the target URL.
Batch pipeline
Submitting a batch and reading its results are two Zaps, connected by the Batch Finished trigger. Zap A: submit- Trigger: Google Sheets “New Spreadsheet Row” with a
domaincolumn - 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 tosheet-import
- Trigger: Context.dev “Batch Finished” with Final Status set to
completedand Tags set tosheet-import - Action: Context.dev “Get Batch Results” with the Batch ID from the trigger and Results Per Page set to
100 - Looping by Zapier: Iterate over the result records
- Action: Airtable “Create Record” per page with its URL, title, and Markdown
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.
- Trigger: HubSpot “New Contact”
- 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_...andContent-Type: application/json
- Method:
- Action: HubSpot “Update Contact” with the returned title, company, and social profiles
Example automations
Enrich contacts and spreadsheet rows
Enrich contacts and spreadsheet rows
Enrich a new HubSpot contact
- Trigger: HubSpot “New Contact”
- Action: Context.dev “Get Brand Profile” with Lookup By set to email and the contact’s email as Lookup Value
- Code by Zapier: One-shot flatten
- Filter: Continue only if
enrichment_okis true - Action: HubSpot “Update Contact” with logo, industry, LinkedIn, and address fields
Slack notification with brand context
- Trigger: Stripe “New Customer”
- Action: Context.dev “Get Brand Profile” with Lookup By set to email and the customer’s email as Lookup Value
- Code by Zapier: Best logo for a given UI (use
logo_darkfor dark Slack themes) - Action: Slack “Send Channel Message” with company name in the title, dark logo as icon, industry in attachment text
Bulk-enrich a Google Sheet
- Trigger: Google Sheets “New Spreadsheet Row” with a
domaincolumn - Action: Context.dev “Get Brand Profile” with Lookup By set to domain
- Code by Zapier: One-shot flatten
- Action: Google Sheets “Update Spreadsheet Row” with logo, industry, LinkedIn, and pricing-page columns
NAICS-tag a CRM lead
- Trigger: Salesforce “New Lead”
- Action: Context.dev “Find Company NAICS Codes” with the lead’s domain
- Code by Zapier: Pull
codes[0].codefor the highest-confidence NAICS - Action: Salesforce “Update Lead” with the NAICS code in a custom field
Visual transaction enrichment
- Trigger: Plaid webhook
- 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
- Code by Zapier: Pull brand name and logo
- Action: Notion “Create Page” with merchant logo, name, and category
Watch websites and product catalogs
Watch websites and product catalogs
Competitor pricing watch
- Trigger: Google Sheets “New Spreadsheet Row” with a
pricing_urlcolumn - 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 tocompetitors - A second Zap uses the website change alerts pattern to post each confirmed change to Slack
Weekly product catalog snapshot
- Trigger: Schedule by Zapier “Every Week”
-
Action: Context.dev “Extract Structured Data” with a competitor’s catalog URL, Maximum Pages set to
12, and this JSON Schema: -
Looping by Zapier: Iterate over
products - Action: Airtable “Create Record” per product with name, price, currency, and product URL
Pricing page screenshot to Slack
- Trigger: Schedule by Zapier “Every Day”
- Action: Context.dev “Capture Website Screenshot” with URL set to the competitor’s pricing page and Capture Full Page turned on
- Action: Slack “Send Channel Message” with the returned screenshot URL as an image attachment
Parse documents and collect news
Parse documents and collect news
Parse inbound documents
- Trigger: Gmail “New Attachment”
- Action: Context.dev “Parse a Document” with the attachment as File and its File Extension (for example
pdf) - Action: Notion “Create Page” with the returned Markdown as the page body
Weekly company news digest
- Trigger: Schedule by Zapier “Every Week”
- 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 - 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.