AI Pricing Data Pipeline
A loop fetches live AI provider pages over HTTP, an LLM analyzes them, and the flow assembles a report.
Click a node for real config and output
Replays the recorded run on the canvas
Deterministic replay of a real Heym run recorded on 2026-07-28. Every step, output, and timing is genuine. Nothing is simulated.
What happens in this run
A classic integration pipeline with a real loop: a scheduled trigger seeds a source list, HTTP nodes fetch live AI provider pages one by one, set and variable nodes collect the results, and an LLM assembles the final report. The trace shows exactly how Heym threads real data through each iteration, with the actual per-node latencies from the recorded run. Teams reach for this data pipeline pattern when they need web data extraction without an API, scheduled market and price monitoring, or lightweight ETL jobs that turn messy pages into clean, structured records ready for sheets, databases, and alerts.
1weeklySchedulecron node · 0ms
Input
Trigger node, no upstream input.
Output
from weeklySchedule
{
"cron": "0 9 * * 1",
"triggered_at": "2026-07-28T12:23:34.888653+00:00"
}2aiProviderSourcesset node · 2ms
Input
from weeklySchedule
{
"cron": "0 9 * * 1",
"triggered_at": "2026-07-28T12:23:34.888653+00:00"
}Output
from aiProviderSources
{
"sources": [
{
"name": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/"
},
{
"name": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing"
},
{
"name": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing"
},
{
"name": "Mistral Pricing",
"url": "https://mistral.ai/pricing"
}
]
}3initResultsvariable node · 0ms
Input
from aiProviderSources
{
"sources": [
{
"name": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/"
},
{
"name": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing"
},
{
"name": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing"
},
{
"name": "Mistral Pricing",
"url": "https://mistral.ai/pricing"
}
]
}Output
from initResults
{
"name": "collectedPages",
"value": [
{
"provider": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/",
"content": "Redirecting...\n"
},
{
"provider": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing",
"content": "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"
},
{
"provider": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing",
"content": "\n\n\n\n\n\n\n\n\n<!doctype html>\n<html \n lang=\"en\"\n dir=\"ltr\">\n <head>\n <meta name=\"google-signin-client-id\" content=\"157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com\"><meta name=\"google-signin-scope\"\n content=\"profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty\"><meta property=\"og:site_name\" content=\"Google AI for Developers\">\n <meta property=\"og:type\" content=\"website\"><meta name=\"theme-color\" content=\"#1967d2\"><meta charset=\"utf-8\">\n <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n <meta name=\"viewport\" con
…Large output truncated for display.
4processProvidersloop node · 5 passes · 0ms
Input
from initResults
{
"name": "collectedPages",
"value": [
{
"provider": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/",
"content": "Redirecting...\n"
},
{
"provider": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing",
"content": "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"
},
{
"provider": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing",
"content": "\n\n\n\n\n\n\n\n\n<!doctype html>\n<html \n lang=\"en\"\n dir=\"ltr\">\n <head>\n <meta name=\"google-signin-client-id\" content=\"157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com\"><meta name=\"google-signin-scope\"\n content=\"profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty\"><meta property=\"og:site_name\" content=\"Google AI for Developers\">\n <meta property=\"og:type\" content=\"website\"><meta name=\"theme-color\" content=\"#1967d2\"><meta charset=\"utf-8\">\n <meta content=\"IE=Edge\" http-equiv=\"X-UA-Compatible\">\n <meta name=\"viewport\" con
…from collectPage
{}Output
from processProviders
{
"results": [
{
"name": "collectedPages",
"value": [
{
"provider": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/",
"content": "Redirecting...\n"
},
{
"provider": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing",
"content": "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"
},
{
"provider": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing",
"content": "\n\n\n\n\n\n\n\n\n<!doctype html>\n<html \n lang=\"en\"\n dir=\"ltr\">\n <head>\n <meta name=\"google-signin-client-id\" content=\"157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com\"><meta name=\"google-signin-scope\"\n content=\"profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty\"><meta property=\"og:site_name\" content=\"Google AI for Developers\">\n <meta property=\"og:type\" content=\"website\"><meta name=\"theme-color\" content=\"#1967d2\"><meta charset=\"utf-8\">\n <meta
…Large output truncated for display.
5fetchPagehttp node · 5 passes · 2.1s
Input
from processProviders
{
"results": [
{
"name": "collectedPages",
"value": [
{
"provider": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/",
"content": "Redirecting...\n"
},
{
"provider": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing",
"content": "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"
},
{
"provider": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing",
"content": "\n\n\n\n\n\n\n\n\n<!doctype html>\n<html \n lang=\"en\"\n dir=\"ltr\">\n <head>\n <meta name=\"google-signin-client-id\" content=\"157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com\"><meta name=\"google-signin-scope\"\n content=\"profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty\"><meta property=\"og:site_name\" content=\"Google AI for Developers\">\n <meta property=\"og:type\" content=\"website\"><meta name=\"theme-color\" content=\"#1967d2\"><meta charset=\"utf-8\">\n <meta
…Output
from fetchPage
{}6extractPageInfoset node · 5 passes · 5ms
Input
from fetchPage
{}Output
from extractPageInfo
{}7collectPagevariable node · 5 passes · 1ms
Input
from extractPageInfo
{}Output
from collectPage
{}8analyzeUpdatesllm node · 1.5s
Input
from processProviders
{
"results": [
{
"name": "collectedPages",
"value": [
{
"provider": "OpenAI Pricing",
"url": "https://openai.com/api/pricing/",
"content": "Redirecting...\n"
},
{
"provider": "Anthropic Claude Pricing",
"url": "https://platform.anthropic.com/docs/en/about-claude/pricing",
"content": "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body>\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"
},
{
"provider": "Google Gemini API Pricing",
"url": "https://ai.google.dev/gemini-api/docs/pricing",
"content": "\n\n\n\n\n\n\n\n\n<!doctype html>\n<html \n lang=\"en\"\n dir=\"ltr\">\n <head>\n <meta name=\"google-signin-client-id\" content=\"157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com\"><meta name=\"google-signin-scope\"\n content=\"profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty\"><meta property=\"og:site_name\" content=\"Google AI for Developers\">\n <meta property=\"og:type\" content=\"website\"><meta name=\"theme-color\" content=\"#1967d2\"><meta charset=\"utf-8\">\n <meta
…Output
from analyzeUpdates
{
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7"
}9notifyAITeamconsoleLog node · 4ms
Input
from analyzeUpdates
{
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7"
}Output
from notifyAITeam
{
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7",
"logMessage": {
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7"
}
}10finalOutputoutput node · 0ms
Input
from notifyAITeam
{
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7",
"logMessage": {
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7"
}
}Output
from finalOutput
{
"result": {
"has_important_changes": false,
"summary": "No content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.",
"changes": [],
"slack_message": ":robot_face: Weekly AI Provider Update\n\nSummary:\nNo content was provided for analysis this week. No critical pricing or model changes detected from the monitored sources.\n\nImportant changes:\nNone\n\nWhy it matters:\n- Developer impact: No impact.\n- Business impact: No impact.\n\nSuggested actions:\nContinue monitoring.",
"model": "zai-glm-4.7"
}
}26 recorded steps · 3.6s of real execution · recorded 2026-07-28
Where teams use this pattern
- Competitor or vendor price monitoring
- Turning unstructured pages into structured records
- Nightly data-collection jobs that feed dashboards or sheets
This demo is based on the AI Provider Pricing Monitor template. Import it with your own credentials to make it yours.
Browse more ready-made flows in the template gallery.
Don’t have Heym yet?
Heym is Self Hosted and Source Available, clone it and spin up the canvas locally in under a minute, then run the workflow you just watched.