How it works
What this workflow does
Build a research brief from a small set of approved public pages. An authenticated webhook resolves a configured company key to one to three page URLs, Firecrawl extracts the main text, and OpenAI identifies audience, offer, proof, and positioning claims. Each finding must cite an exact excerpt from the supplied page before the brief is saved to Google Sheets.
The workflow imports inactive with dryRun: true. Run with sample data uses a fictional company page and sample model output, so the preview does not call Firecrawl, OpenAI, or Google Sheets.
This is the market-research input for the Target ICP Classification & VIP Lead Notification blueprint; the Campaign Launch Assurance & Weekly Performance blueprint covers how positioning feeds campaign execution.
Approved pages only
Select approved company pages requires a stable report ID and a company key defined in Setup. The configured company must have a name and one to three distinct public HTTPS URLs. The preview substitutes a fictional Northstar Studio page so the sample path stays inside n8n.
Read public page with Firecrawl scrapes each page with main-content extraction and a 25-second timeout. Assemble company evidence checks that every response is readable and that its source host matches the requested URL. The workflow stops on an unreadable page or an unexpected domain instead of analyzing the wrong site.
Evidence is verified before saving
The model returns up to six findings and up to three follow-up questions. Each finding must use one of four types, keep the observation under 240 characters, reference a supplied source ID, and provide an exact quote between 12 and 180 characters. The workflow verifies that the quote appears in the page excerpt and attaches the correct source URL. Invalid or invented evidence stops the run before the sheet is written.
Firecrawl passes the first 6,000 characters of each page into the analysis. Open the full page when context beyond that excerpt matters. Findings describe what the company claims about itself; they are not independent verification of those claims.
Validation scope
The supplied report confirms the isolated n8n 2.47.4 import, inactive state, and sample path. It also covers structural checks, approved source resolution, wrong-domain rejection, and fabricated-quote rejection. Live Firecrawl, OpenAI, and Google Sheets calls require a staging test with your accounts.
How to use
Before you start
- A current n8n instance.
- A Firecrawl API key.
- An OpenAI API key and a model that supports JSON mode.
- A Google spreadsheet tab for the briefs.
- A Google Sheets OAuth credential.
- One to three public HTTPS pages per company that are approved for research.
1. Import and run the sample
Download the complete package, extract the ZIP, and read the full setup guide. Import company-positioning-brief.n8n.json and keep it inactive.
Open Run with sample data and choose Test workflow. Verify company brief should show each finding with its exact excerpt and source URL.
2. Configure the company and sheet
In Setup, add a company key such as northstar with a name and one to three public HTTPS urls. A homepage, product page, and case study are a useful starting set. Set spreadsheetId and the model name.
Create a tab called Company Briefs with these exact headers:
| Report ID | Company | Findings | Follow-up Questions | Source URLs |
|---|
Format Report ID as plain text. Select the Google Sheets OAuth credential on Save company brief.
3. Configure credentials
- Add a Header Auth credential on Read public page with Firecrawl using
Authorization: Bearer <Firecrawl API key>. - Add a separate Header Auth credential on Analyze company positioning using
Authorization: Bearer <OpenAI API key>. - Add a private Header Auth credential on Receive event for the internal caller.
Keep secrets in n8n credentials. The workflow does not store provider keys in exported JSON.
4. Send a test request
Send {"reportId":"company-review-1042","companyKey":"northstar"} from an internal tool. Use the supplied test payloads to check the request, company configuration, Firecrawl response, and model output shapes. The webhook acknowledges receipt; the sheet or n8n execution shows the result.
Use the same report ID for a refresh that should replace the previous brief, or a new report ID for a new snapshot. A wrong domain, unreadable page, or invented quote stops the run before saving.
5. Test and operate
Set dryRun to false in staging and run the workflow with a company whose pages you control. Confirm the findings, excerpts, source URLs, and follow-up questions. Review the full page when the 6,000-character excerpt is not enough context.
Interpret the output as company positioning, not independently verified facts. Check other sources before repeating a claim in public material. Use only public URLs approved for the workflow; keep login, account, and private portal URLs outside the company configuration.
Related automations
Use the Source-Backed WordPress Draft System to turn approved positioning into an article, and the Article-to-Social Draft System for channel drafts. The Industry News Digest System keeps the team current, and the Search Content Decay Detection System shows where content needs attention. Read the Target ICP Classification blueprint for the wider audience-definition process. For inbound qualification that uses this research, use the AI Inbound Lead Routing & Sales Follow-Up System.