Competitive Intelligence RSS Summarizer
Pulls RSS feeds for tracked competitors on a schedule, generates a concise digest of the most notable updates via Azure OpenAI, persists signals to Dataverse, and emails the strategy team on high-impact items.
Overview
RSS-triggered flow that watches a competitor RSS feed, sends each new item to Azure OpenAI for classification + signal extraction, writes the structured result into a Dataverse table, and emails the strategy team only when the signal is flagged high-impact. Strong reference pattern for RSS → AOAI → Dataverse → conditional notification pipelines.
**Flow ID:** 626303ba-9637-f111-88b3-6045bd0052fe • **State:** Off
Use Case
Sales/Marketing/Strategy teams want competitor product, partnership, or leadership change announcements — but generic RSS adapters dump every item indiscriminately, drowning the signal in noise. This flow uses AOAI to extract structured signals, persist them as Dataverse records for trending, and only pages strategy on high-impact events.
**Key Benefits:** historical analysis + Power BI on Dataverse rows; LLM categorization + impact scoring; AOAI config in env vars.
Flow Architecture
Trigger: **When a feed item is published** (RSS). 1. Init 6 vars (AOAI endpoint/deployment/key/api version, strategy email, system prompt) 2. **Call Azure OpenAI** (HTTP POST to chat-completions) 3. Parse AOAI Response → extract `choices[0].message.content` 4. Parse Extracted Signal (topic, summary, impact) 5. **Create Competitive Intel Record** (Dataverse) 6. **Notify Strategy Team On High Impact** (If) → Send High Impact Email
Environment Variables
| Variable | Schema Name | Type | Default | Purpose |
|---|---|---|---|---|
| Competitive Intel RSS Feed URL | flowlibs_CompetitiveIntelRSSFeed | String | (none) | Absolute URL of the RSS feed the trigger watches |
| Competitive Intel Dataverse Entity Set | flowlibs_CompetitiveIntelTable | String | flowlibs_competitiveintels | Entity-set name for the Dataverse signal table |
| FlowLibs AOAI Endpoint | flowlibs_AOAIEndpoint | String | (none) | Azure OpenAI resource endpoint |
| FlowLibs AOAI Deployment Name | flowlibs_AOAIDeployment | String | (none) | Chat-completion model deployment name |
| FlowLibs AOAI API Key | flowlibs_AOAIApiKey | Secret | (none) | Azure OpenAI API key (Secret) |
| Strategy Team Email | flowlibs_StrategyTeamEmail | String | (none) | Recipient address for high-impact signal emails |
Connectors & Connections
| Connector | API Name | Connection Format | Usage |
|---|---|---|---|
| RSS | shared_rss | new_sharedrss_b21ff | OnNewFeed trigger |
| Microsoft Dataverse | shared_commondataserviceforapps | new_sharedcommondataserviceforapps_005e6 | AddRecord against flowlibs_competitiveintel |
| Office 365 Outlook | shared_office365 | new_sharedoffice365_ac201 | SendEmailV2 — high-impact alert |
Customization Guide
1. Import; provision AOAI resource; set 6 env vars; update connection refs; tweak varSystemPrompt; turn on.
**Common Modifications:** fan out to multiple feeds; post to Teams on high-impact; mirror to SharePoint Marketing Intel list; add daily digest mode; switch model providers; promote system prompt to env var; add deduping by feed URL.
Key Expressions
- @concat(variables('varAoaiEndpoint'), '/openai/deployments/', variables('varAoaiDeployment'), '/chat/completions?api-version=', variables('varAoaiApiVersion')) — AOAI URL
- @body('Call_Azure_OpenAI')?['choices'][0]?['message']?['content'] — message content
- @equals(toLower(outputs('Parse_Extracted_Signal')?['impact']), 'high') — high-impact branch test