Agent Reference
Complete reference for all 21 AI agents in Upland Hub. Each agent is a specialized marketing tool that generates content, analysis, or strategy based on the client's brand kit and your input.
How Agents Work
- You provide input -- topic, parameters, context specific to the task
- The agent builds a prompt -- combining its system prompt, quality preamble, brand kit context, and your input
- AI generates output -- Claude Sonnet/Opus (or Workers AI fallback) produces structured JSON
- Content items are created -- output is parsed into content_items in the database
- Review queue -- content appears for review (unless set to
auto_publish) - Chaining -- some agents auto-trigger follow-up agents (see Agent Chaining section)
Quality Preamble
Every agent has a quality preamble injected before its system prompt that enforces:
- No cliches ("elevate", "unlock", "game-changer", "dive in")
- No filler phrases ("In today's world", "Are you looking for")
- Active voice, short sentences, punchy rhythm
- Specific and concrete references (not generic)
- Exact brand voice matching
- Valid JSON output format
Content Agents
Social Post Generator
Agent type: social_post
Creates engaging social media posts tailored to specific platforms. Adapts tone and format for Instagram (visual-first, storytelling), Facebook (conversational, link-friendly), and TikTok (trendy, hook-first).
When to use: Weekly content generation, promoting events, seasonal posts, product highlights.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
topic | string | Yes | What the post is about |
platforms | string[] | No | Target platforms (default: instagram, facebook) |
count | number | No | Number of posts to generate (default: 1) |
mood | string | No | Tone/mood for the post (e.g., "casual", "excited", "informative") |
include_image | boolean | No | Whether to generate image prompts (default: true) |
additional_context | string | No | Extra context for the AI |
special_instructions | string | No | Override or supplement instructions |
Example input
{
"topic": "New spring cocktail menu launching this weekend",
"platforms": ["instagram", "facebook"],
"mood": "excited but not over-the-top",
"additional_context": "3 new cocktails: Lavender Collins, Smoked Pear Old Fashioned, Yuzu Spritz"
}
Sample output: Platform-specific captions with hashtags, image generation prompts for each post, metadata with suggested posting times.
Weekly Specials Engine
Agent type: weekly_special
Takes a weekly special (food, drink, promotion) and creates a full content package: Instagram feed post, story concept, and Kling AI video prompt. Designed for bars and restaurants.
When to use: Every time a client has a new weekly special, seasonal menu item, or limited-time offer.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
special_name | string | Yes | Name of the special |
special_description | string | Yes | What the special is |
price | string | No | Price of the special |
available_days | string | No | When it's available (default: "This week only") |
ingredients | string | No | Key ingredients |
chef_notes | string | No | Notes from the chef/bartender |
pairing_suggestion | string | No | What pairs well with it |
Example input
{
"special_name": "Smoked Pear Old Fashioned",
"special_description": "Bourbon, house-made pear syrup, applewood smoke, Angostura bitters",
"price": "$14",
"available_days": "Thursday through Saturday",
"chef_notes": "We smoke the glass tableside with a torch",
"pairing_suggestion": "Our charcuterie board with aged cheddar"
}
Sample output: Feed post caption, story text overlay, Kling video prompt (5-second slow zoom with smoke/condensation), image prompts, hashtags.
Chaining: Automatically triggers social_post + video_script when complete.
Blog & Long-Form Writer
Agent type: blog_post
Writes SEO-optimized blog posts (800-1500 words) with title, meta description, H2/H3 structure, FAQ section, and internal linking suggestions.
When to use: Monthly blog posts for SEO, seasonal content pages, educational articles, local guides.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
topic | string | Yes | Blog topic |
primary_keyword | string | No | Target keyword (auto-selected if omitted) |
word_count | string | No | Target length (default: "1000-1500") |
audience | string | No | Target reader (default: "Local customers searching online") |
angle | string | No | Specific angle or hook |
competitor_content | string | No | Competitor content to beat |
internal_pages | string | No | Pages to link to internally |
Example input
{
"topic": "Best Happy Hour Spots in Walla Walla",
"primary_keyword": "happy hour walla walla",
"angle": "Insider guide from a local who's tried them all",
"word_count": "1200"
}
Sample output: Full blog post in markdown, meta description, keyword list, FAQ pairs (schema-ready), image alt text suggestions, internal linking recommendations.
Chaining: Automatically triggers social_post to promote the blog.
Wine Tasting Notes
Agent type: tasting_notes
Creates sommelier-level tasting notes with visual, nose, palate, food pairings, and occasion suggestions. Generates both a full tasting note (for website/print) and a social media version. Uses Opus for nuanced wine language.
When to use: New wine releases, tasting room menu updates, wine club shipments, seasonal features.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
wine_name | string | Yes | Name of the wine |
varietal | string | Yes | Grape variety (e.g., "Cabernet Sauvignon") |
vintage | string | No | Vintage year |
region | string | No | AVA/region (default: "Walla Walla Valley") |
abv | string | No | Alcohol by volume |
price | string | No | Retail price |
winemaker_notes | string | No | Notes from the winemaker |
barrel_aging | string | No | Barrel aging details |
production_notes | string | No | Production method details |
vineyard | string | No | Specific vineyard source |
Example input
{
"wine_name": "Revelry Red Mountain Reserve",
"varietal": "Cabernet Sauvignon",
"vintage": "2022",
"region": "Red Mountain AVA",
"abv": "14.5%",
"price": "$65",
"barrel_aging": "22 months in 60% new French oak",
"vineyard": "Quintessence Vineyard"
}
Sample output: Instagram caption with abbreviated tasting note + hashtags, full tasting note in markdown (visual/nose/palate/pairings/occasion), metadata with varietal, vintage, ABV, price, rating.
Strategy Agents
Content Calendar Planner
Agent type: content_calendar
Creates a full monthly content calendar with day-by-day posting plan. Balances content mix (40% promotional, 25% educational, 20% community, 15% engagement) and accounts for local events and seasons.
When to use: Beginning of each month, new client onboarding, quarterly planning.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
month | string | No | Target month (default: current month) |
platforms | string[] | No | Target platforms (default: instagram, facebook) |
posts_per_week | number | No | Posts per week (default: 4) |
focus_areas | string[] | No | Themes to emphasize this month |
upcoming_events | string | No | Events to plan around |
promotions | string | No | Promotions to include |
avoid | string | No | Topics or themes to skip |
Example input
{
"month": "April 2026",
"platforms": ["instagram", "facebook"],
"posts_per_week": 5,
"focus_areas": ["spring menu launch", "patio season opening"],
"upcoming_events": "Earth Day April 22, local wine festival April 18-19"
}
Sample output: Full calendar in markdown table format with metadata for each day: date, content type, platform, topic, category, caption idea, media type, and notes.
Chaining: Automatically triggers social_post to generate actual posts from calendar entries.
Competitor Intelligence
Agent type: competitor_watch
Analyzes competitor marketing: content types, engagement patterns, messaging, gaps, and threats. Delivers specific, actionable recommendations.
When to use: Monthly competitive review, before launching a new campaign, when a client asks "what are they doing that we're not?"
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
competitors | string | No | Names of competitors to analyze (default: from brand kit) |
focus | string | No | Specific area to focus on |
platforms | string | No | Platforms to compare (default: all) |
timeframe | string | No | Analysis period (default: "Last 30 days") |
Example input
{
"competitors": "Basin City Brewing, Waterbrook Winery, Whitehouse-Crawford",
"focus": "Instagram engagement and content strategy",
"timeframe": "Last 60 days"
}
Sample output: Full competitive analysis report in markdown with competitors analyzed, key findings, opportunities, threats, and prioritized action items with expected impact.
SEO Agents
SEO & Google Business
Agent type: seo_gbp
Handles Google Business Profile posts, local keyword research, NAP consistency checks, review generation strategy, and "near me" search optimization.
When to use: Weekly GBP updates, keyword research, listing audits, review strategy setup.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
task | string | No | Task type: create_gbp_post, keyword_research, listing_audit, review_strategy (default: create_gbp_post) |
keywords | string | No | Target keywords |
focus | string | No | Specific focus area |
Example input
{
"task": "keyword_research",
"focus": "cocktail bar and happy hour related terms"
}
Sample output: For create_gbp_post: GBP post with CTA, keywords, and post type. For keyword_research: top 20 local keywords categorized by intent. For listing_audit: completeness assessment with improvements. For review_strategy: templates for requesting and responding to reviews.
GEO Agent (Generative Engine Optimization)
Agent type: geo_optimization
Optimizes content for AI search engines (ChatGPT, Perplexity, Gemini, Claude). Creates entity-clear, schema-ready content with "citation hooks" that AI engines are likely to quote. Uses Opus for its stronger reasoning capabilities.
When to use: Website content optimization, FAQ pages, service pages, when you want a business to appear in AI-generated answers.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
task | string | No | full_audit, about_page, faq_page, service_page (default: full_audit) |
target_queries | string | No | AI queries to optimize for |
competitors | string | No | Competitors to outrank in AI answers |
existing_content | string | No | Current content to optimize |
Example input
{
"task": "faq_page",
"target_queries": "best cocktail bar walla walla, where to drink in walla walla, walla walla nightlife"
}
Sample output: GEO-optimized content with target queries, entity statements, schema markup suggestions, and citation hooks designed to be quoted by AI search engines.
Engagement Agents
Review Response Agent
Agent type: review_response
Drafts responses to customer reviews (Google, Yelp, Facebook). Follows different rules for positive reviews (thank, reference specifics, invite back) and negative reviews (acknowledge, apologize, move offline).
When to use: Every time a new review comes in. Can be automated via webhook (see Webhook Guide).
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
platform | string | No | Review platform (default: "Google") |
rating | number | Yes | Star rating (1-5) |
reviewer_name | string | No | Reviewer's name |
review_text | string | Yes | The full review text |
date | string | No | Review date |
Example input
{
"platform": "Google",
"rating": 4,
"reviewer_name": "Sarah M",
"review_text": "Great cocktails and the staff was really friendly. Only downside was the wait time on a Friday night - about 30 minutes for a table. But worth it once we sat down!",
"date": "2026-03-15"
}
Sample output: Response text appropriate for the rating, with metadata indicating tone, whether follow-up is needed, and the reviewer name.
Reddit & Forum Agent
Agent type: reddit_engagement
Creates authentic Reddit-style comments and posts that mention the business naturally. Uses Reddit language ("honestly", "lowkey", "ngl", "solid") and never sounds promotional. Designed to be indistinguishable from genuine community member posts.
When to use: When targeting Reddit threads like "best bars in Walla Walla", "visiting this weekend", "date night ideas."
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
subreddits | string | No | Target subreddits (default: r/wallawalla, r/TriCitiesWA, r/wine) |
thread_type | string | No | Type of threads to target (default: "recommendations") |
specific_threads | string | No | Specific thread titles to respond to |
persona | string | No | Persona to write as (default: "Local who genuinely enjoys going to this place") |
Example input
{
"subreddits": "r/wallawalla, r/WashingtonWine",
"specific_threads": "Best bars in Walla Walla?\nVisiting WW this weekend, what should I do?\nGood happy hour spots near downtown?"
}
Sample output: 3-4 Reddit comments with subreddit, thread type, target thread title, authenticity score, and tone metadata.
Email Agents
Email Campaign Creator
Agent type: email_campaign
Creates email campaigns with subject line A/B variants, preview text, body copy, and CTA. Formats for mobile-first reading with short paragraphs.
When to use: Promotional emails, event announcements, seasonal campaigns, wine club communications.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
campaign_type | string | No | Type: promotional, newsletter, event, wine_club (default: "promotional") |
purpose | string | Yes | What the email is about |
offer | string | No | Specific offer or promotion |
event | string | No | Event details |
audience_segment | string | No | Target audience (default: "All subscribers") |
key_message | string | No | Core message to convey |
deadline | string | No | Time sensitivity |
Example input
{
"campaign_type": "event",
"purpose": "Promote our live music night this Saturday",
"event": "Live jazz trio, 7-10pm Saturday, no cover charge",
"key_message": "Perfect date night with great music and cocktails",
"deadline": "This Saturday"
}
Sample output: Complete email with 3 subject line variants, preview text, markdown body, CTA text and URL, campaign type, and suggested send time.
Newsletter Builder
Agent type: newsletter
Creates recurring newsletters with a main story, quick updates, community spotlight, and CTA. Designed to feel like a personal update from someone at the business, not a marketing blast. Keeps total length under 500 words.
When to use: Weekly or bi-weekly newsletter production, wine club updates, seasonal roundups.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
edition | string | No | Edition name (default: "This week") |
frequency | string | No | Newsletter frequency (default: "weekly") |
main_story | string | No | Main story/news (auto-generated if omitted) |
updates | string | No | Quick updates to include |
promotion | string | No | Promotion to feature |
community_note | string | No | Local/community note |
tone | string | No | Tone for this issue |
Example input
{
"edition": "March Week 3",
"main_story": "We just hired a new head bartender from Portland with 12 years experience",
"updates": "New spring menu drops Friday; Trivia night moving to Wednesdays",
"community_note": "Walla Walla Community College wine program graduation this weekend"
}
Sample output: Complete newsletter in markdown with 3 subject line variants, preview text, sections breakdown, word count, image suggestions, and recommended send day/time.
Media Agents
Video Content Studio
Agent type: video_script
Creates short-form video scripts (under 60 seconds) for Instagram Reels, TikTok, and YouTube Shorts. Includes shot-by-shot breakdown with timestamps, text overlays, audio notes, and Kling AI video generation prompts.
When to use: Product showcases, weekly special promos, behind-the-scenes content, trend-based videos.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
subject | string | Yes | What the video is about |
platform | string | No | Target platform (default: "instagram") |
duration | string | No | Target length (default: "15-30 seconds") |
style | string | No | Video style (default: "product showcase") |
product | string | No | Featured product |
trend | string | No | Trend or format to use |
key_message | string | No | Core message |
include_kling | boolean | No | Generate Kling AI prompt |
Example input
{
"subject": "Making our signature Smoked Old Fashioned",
"platform": "instagram",
"duration": "15 seconds",
"style": "product showcase",
"include_kling": true
}
Sample output: Full video script with shot-by-shot breakdown (timestamp, visual, text overlay, audio), Kling AI prompt, music mood, and optional trending sound suggestion.
TikTok Content Engine
Agent type: tiktok_content
Creates TikTok-native content concepts with scripts, text overlays, sound suggestions, and filming instructions. Focuses on trending formats, authenticity over production value, and 1-second hooks.
When to use: Weekly TikTok content batches, adapting trending formats, behind-the-scenes content, educational content.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
count | number | No | Number of concepts (default: 3) |
focus | string | No | Content focus (default: "mix of content types") |
trending | string | No | Current trends to adapt |
products_to_feature | string | No | Products to highlight |
staff_available | string | No | Staff available for filming |
avoid | string | No | Things to avoid |
Example input
{
"count": 3,
"focus": "behind-the-scenes and product reveals",
"products_to_feature": "Smoked Old Fashioned, house charcuterie board",
"staff_available": "Head bartender Marcus"
}
Sample output: 3 TikTok concepts each with full script, shot descriptions, text overlays, sound suggestion, filming notes, hashtags, effort level, and best posting time.
Website Agents
Website Page Generator
Agent type: website_page
Writes complete website copy for home pages, about pages, service/menu pages, contact pages, and landing pages. Includes SEO metadata, section-by-section structure, and image suggestions. Uses Opus for higher-quality long-form copy.
When to use: New website builds, website refreshes, landing pages for campaigns, service page optimization.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
page_type | string | No | Page type: home, about, services, contact, landing (default: "home") |
purpose | string | No | Page purpose |
target_keywords | string | No | SEO keywords |
existing_copy | string | No | Current copy to improve |
competitor_pages | string | No | Competitor pages to beat |
special_sections | string | No | Specific sections to include |
tone | string | No | Tone override |
Example input
{
"page_type": "about",
"purpose": "Tell our story and build trust with first-time visitors",
"target_keywords": "craft cocktail bar walla walla, downtown walla walla drinks",
"special_sections": "Our story, the team, our philosophy on cocktails"
}
Sample output: Complete page copy in markdown with meta title, meta description, section-by-section breakdown (headline, subheadline, CTA, image description for each section), word count.
Advertising Agents
Ad Copy Generator
Agent type: ad_copy
Creates advertising copy for Google Ads (responsive search format: 3 headlines at 30 chars, 2 descriptions at 90 chars) and Meta Ads (primary text, headline, description, CTA button). Generates 3 variants per platform for A/B testing.
When to use: Launching paid campaigns, seasonal ad pushes, event promotion, retargeting campaigns.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
objective | string | No | Campaign objective (default: "drive foot traffic") |
platforms | string[] | No | Ad platforms (default: google_ads, facebook) |
budget | string | No | Monthly budget |
offer | string | No | Offer/promotion |
target_audience | string | No | Target audience description |
landing_page | string | No | Landing page URL |
competitors | string | No | Competitor ads to beat |
keywords | string | No | Target keywords (for Google Ads) |
Example input
{
"objective": "drive weekend foot traffic",
"platforms": ["google_ads", "facebook"],
"budget": "$500/month",
"offer": "Happy hour 4-6pm daily, half-price appetizers",
"target_audience": "25-45 year olds within 15 miles"
}
Sample output: 3 Google Ads variants (headlines, descriptions, display path, keywords) + 3 Meta Ads variants (primary text, headline, description, CTA, audience suggestion).
Analytics Agents
Analytics & Reporting
Agent type: analytics_report
Creates monthly performance reports in plain English. Translates metrics into what they mean for the business. Includes executive summary, key metrics, what worked, what didn't, and specific action items for next month.
When to use: Monthly client reporting, quarterly business reviews, campaign post-mortems.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
period | string | No | Reporting period (default: "This month") |
metrics | object | No | Available metrics data (generates template if omitted) |
goals | string | No | Client goals to measure against |
previous_report | string | No | Highlights from last report for comparison |
Example input
{
"period": "March 2026",
"goals": "Increase Instagram engagement rate to 4%, grow followers by 50",
"previous_report": "February: 3.2% engagement rate, +28 followers, top post was the Valentine's cocktail special"
}
Sample output: Full report in markdown with key metrics (posts, engagement, follower growth, top post type, best posting time), top performing posts with analysis, underperformers with assessment, and prioritized recommendations with expected impact and effort level.
Agency Tools
These agents are for internal agency use (prospecting and sales). They do not require a client brand kit.
Prospect Marketing Audit
Agent type: prospect_audit
Performs a comprehensive marketing audit of a prospect's online presence. Scores 7 areas on a 1-10 scale, identifies quick wins, recommends a plan tier, maps gaps to specific agents, and estimates ROI. Also generates a ready-to-send prospect email.
When to use: Before reaching out to a potential client. This is your primary sales tool.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
business_name | string | Yes | Prospect business name |
business_url | string | No | Their website URL |
business_type | string | No | Type of business |
location | string | No | City/neighborhood |
social_handles | string | No | Instagram/Facebook handles |
google_maps_url | string | No | Google Maps listing URL |
notes | string | No | Things you noticed about their marketing |
competitor_names | string | No | Known competitors |
Example input
{
"business_name": "Basin City Brewing",
"business_url": "https://basincitybrewing.com",
"business_type": "Craft brewery and taproom",
"location": "Richland, WA",
"social_handles": "@basincitybrewing on Instagram",
"notes": "Great product photos but only posting once every 2 weeks. No Google review responses.",
"competitor_names": "Bombing Range Brewing, Ice Harbor Brewing"
}
Sample output: Full audit report with 7-area scorecard, overall score, quick wins per area, recommended plan, recommended agents, estimated monthly value, ROI estimate, and a prospect email ready to send.
Demo Content Generator
Agent type: demo_content
Creates sample marketing content for a prospect to demonstrate what their marketing could look like. Does not require a brand kit -- builds a lightweight context from input fields. Generates 3-4 content pieces: Instagram feed post, Facebook post, promotional post, and story concept.
When to use: Alongside the Prospect Audit, before sending outreach. Give them a taste of what Upland can do.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
business_name | string | Yes | Prospect business name |
business_type | string | No | Type of business |
location | string | No | City/neighborhood |
vibe | string | No | Atmosphere: casual, upscale, family-friendly, hip, rustic, modern |
known_products | string | No | Key products/services |
target_audience | string | No | Who their customers are |
website_url | string | No | Their website |
social_handles | string | No | Their social accounts |
specific_promotion | string | No | A current special or event to build content around |
Example input
{
"business_name": "Basin City Brewing",
"business_type": "Craft brewery and taproom",
"location": "Richland, WA",
"vibe": "casual",
"known_products": "Nuke Juice IPA, Atomic Amber Ale, weekend food trucks",
"specific_promotion": "New spring seasonal: Cherry Blossom Wheat"
}
Sample output: 3-4 polished content pieces with full captions, hashtags, and image prompts -- custom-tailored to their business.
Cold Outreach Generator
Agent type: cold_outreach
Creates a 4-email cold outreach sequence plus Instagram DM and LinkedIn connection message scripts. Each email has a specific purpose (initial outreach, value follow-up, social proof, breakup) with send timing. Personalized to the specific prospect.
When to use: After running a Prospect Audit and Demo Content. Use the audit findings to make outreach hyper-specific.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
business_name | string | Yes | Prospect business name |
business_type | string | No | Type of business |
location | string | No | Location |
owner_name | string | No | Owner/contact name (uses warm general addressing if unknown) |
pain_points | string | No | Marketing pain points identified |
hook | string | No | What you are offering (default: "free audit") |
audit_highlights | string | No | Key findings from the prospect audit |
known_products | string | No | Their products/services |
recent_activity | string | No | Recent news or activity |
competitor_mention | string | No | A competitor doing something better |
Example input
{
"business_name": "Basin City Brewing",
"owner_name": "Jake",
"business_type": "Craft brewery",
"location": "Richland, WA",
"pain_points": "Posting only every 2 weeks, no review responses",
"audit_highlights": "Social media score 3/10, review management 2/10, but great product quality",
"hook": "free marketing audit + sample content",
"competitor_mention": "Bombing Range Brewing posts 4x/week and responds to every review"
}
Sample output: 4 emails with subject lines, bodies, and send timing (Day 0, 3, 7, 14). Plus an Instagram DM script and LinkedIn connection message. All hyper-personalized.
Client Proposal Generator
Agent type: proposal_generator
Creates a professional marketing proposal in markdown (convertible to PDF). Includes the opportunity assessment, specific deliverables, month-1 content calendar, technology overview, ROI comparison, social proof, and next steps. Uses Opus for its stronger reasoning and persuasive writing.
When to use: When a prospect responds positively and you need to close the deal.
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
business_name | string | Yes | Prospect business name |
business_type | string | No | Type of business |
location | string | No | Location |
owner_name | string | No | Owner/contact name |
recommended_plan | string | No | Plan to propose (auto-assessed if omitted) |
pain_points | string | No | Their marketing pain points |
audit_highlights | string | No | Key audit findings |
budget_range | string | No | Their stated budget |
competitors | string | No | Local competitors |
specific_goals | string | No | What they want to achieve |
known_products | string | No | Their key products/services |
Example input
{
"business_name": "Basin City Brewing",
"owner_name": "Jake",
"business_type": "Craft brewery and taproom",
"location": "Richland, WA",
"recommended_plan": "standard",
"pain_points": "Inconsistent posting, no email list, competitors outpacing on social",
"specific_goals": "Fill the taproom on weeknights, grow their email list to 500"
}
Sample output: Full proposal in markdown with all sections, plus a month-1 content calendar preview. Metadata includes recommended plan, price, estimated content pieces, ROI multiplier, and traditional agency equivalent cost.
Agent Chaining
Some agents automatically trigger follow-up agents when they complete. This creates a pipeline where one piece of work generates related content without manual intervention.
Active Chains
| Trigger Agent | Auto-Triggers | Condition |
|---|---|---|
| Content Calendar | Social Post | Only if calendar entries were generated |
| Blog Post | Social Post | Only if a blog content item was generated |
| Weekly Special | Social Post + Video Script | Always (no condition) |
How Chaining Works
- A parent agent completes and produces output
- The chain executor checks if a chain is defined for that agent type
- For each step in the chain:
- Check the optional condition (e.g., "did the parent produce calendar entries?")
- Check that the child agent is enabled for the client org
- Map the parent output to child input (extract relevant context)
- Create a new
agent_runwithtrigger_type: 'chained'andparent_run_idset - Queue the child run for processing
- Chained runs appear in the review queue with a "chain" indicator
- Each chained run costs its own credits
Example: Weekly Special Chain
When you run the Weekly Special agent for The Hop Thief:
- Weekly Special agent generates: feed post caption, story concept, video prompt (costs 8 credits)
- Chain auto-triggers Social Post agent with the special's details (costs 3 credits)
- Chain auto-triggers Video Script agent with the special's details (costs 8 credits)
- Total: 19 credits for a complete content package from one input
All three outputs appear in the review queue. Approve or reject each independently.
Quick Reference Table
| Agent | Type | Model | Credits | Min Plan | Category |
|---|---|---|---|---|---|
| Social Post Generator | social_post | Sonnet | 3 | Locals | Content |
| Weekly Specials Engine | weekly_special | Sonnet | 8 | Starter | Content |
| Blog & Long-Form Writer | blog_post | Sonnet | 5 | Standard | Content |
| Wine Tasting Notes | tasting_notes | Opus | 5 | Vine Starter | Content |
| Content Calendar Planner | content_calendar | Sonnet | 10 | Starter | Strategy |
| Competitor Intelligence | competitor_watch | Sonnet | 5 | Premium | Strategy |
| SEO & Google Business | seo_gbp | Sonnet | 3 | Locals | SEO |
| GEO Agent | geo_optimization | Opus | 5 | Premium | SEO |
| Review Response Agent | review_response | Sonnet | 2 | Starter | Engagement |
| Reddit & Forum Agent | reddit_engagement | Sonnet | 3 | Premium | Engagement |
| Email Campaign Creator | email_campaign | Sonnet | 5 | Standard | |
| Newsletter Builder | newsletter | Sonnet | 5 | Standard | |
| Video Content Studio | video_script | Sonnet | 8 | Standard | Media |
| TikTok Content Engine | tiktok_content | Sonnet | 8 | Premium | Media |
| Website Page Generator | website_page | Opus | 10 | Premium | Website |
| Ad Copy Generator | ad_copy | Sonnet | 5 | Premium | Advertising |
| Analytics & Reporting | analytics_report | Sonnet | 5 | Standard | Analytics |
| Prospect Marketing Audit | prospect_audit | Sonnet | 8 | Agency | Agency Tools |
| Demo Content Generator | demo_content | Sonnet | 5 | Agency | Agency Tools |
| Cold Outreach Generator | cold_outreach | Sonnet | 5 | Agency | Agency Tools |
| Client Proposal Generator | proposal_generator | Opus | 10 | Agency | Agency Tools |