Goal
Retrieve audience demographics, behavior patterns, and engagement trends to help agents understand WHO they're creating content for and HOW that audience behaves.
Which Agents Use This
- analytics — Primary use case for audience analysis and reporting
- content_creator — Check audience preferences before drafting content
- custom — Any agent needing audience context for decision-making
Hard Rules
- MUST aggregate over time period (not single snapshot)
- MUST identify actionable patterns (not just raw counts)
- SHOULD compare to platform benchmarks when available
- Require valid account_id that belongs to workspace
Steps
1. Validate input
- Verify account_id exists and belongs to workspace
- Validate time_period is supported
2. Query platform APIs
- Fetch follower demographics from platform (LinkedIn, Twitter, etc.)
- Fetch engagement behavior data
- Fetch content performance by type
3. Aggregate and analyze
- Calculate growth rates
- Identify peak activity times
- Determine content format preferences
- Extract actionable patterns
4. Return structured insights
- Demographics: follower count, growth rate, locations, industries
- Behavior: peak activity times, session duration, engagement by day
- Content preferences: top formats, topics, optimal post length
Output
{
"success": true,
"account_id": "uuid",
"time_period": "30d",
"insights": {
"demographics": {
"follower_count": 12450,
"growth_rate_30d": 0.08,
"top_locations": ["United States", "United Kingdom", "Canada"],
"top_industries": ["Technology", "Marketing", "SaaS"]
},
"behavior": {
"peak_activity_times": ["9am-11am EST", "2pm-4pm EST"],
"engagement_by_day": {
"thursday": 0.038,
"sunday": 0.012
}
},
"content_preferences": {
"top_formats": ["thread", "single_post", "carousel"],
"top_topics": ["remote work", "productivity", "team collaboration"],
"avg_engagement_by_length": {
"short": 0.021,
"medium": 0.028,
"long": 0.034
}
}
}
}
Failure Handling
- If account_id not found: return error "Account not found"
- If platform API fails: return cached data with warning
- If insufficient data for time_period: suggest longer period
Example Usage
Scenario: Analytics agent analyzing audience
{
"account_id": "uuid",
"insights_type": "demographics",
"time_period": "30d"
}
Result: Receive demographic breakdown for strategy planning
1---2name: bolta-get-audience-insights3version: 2.0.04description: Retrieve audience demographics, behavior patterns, and engagement trends for data-driven content strategy5category: analytics6roles_allowed: [Viewer, Creator, Editor, Admin]7agent_types: [analytics, content_creator, custom]8safe_defaults: {}9tools_required:10 - platform_api_integration11inputs_schema:12 type: object13 required: [account_id]14 properties:15 account_id: { type: string, description: "Social account UUID" }16 insights_type: { type: string, enum: [demographics, behavior, content_preferences], description: "Type of insights to retrieve" }17 time_period: { type: string, enum: [7d, 30d, 90d], description: "Rolling time window for analysis" }18outputs_schema:19 type: object20 properties:21 success: { type: boolean }22 account_id: { type: string }23 time_period: { type: string }24 insights: 25 type: object26 properties:27 demographics: { type: object }28 behavior: { type: object }29 content_preferences: { type: object }30organization: bolta.ai31author: Bolta Team32---3334## Goal35Retrieve audience demographics, behavior patterns, and engagement trends to help agents understand WHO they're creating content for and HOW that audience behaves.3637## Which Agents Use This38- **analytics** — Primary use case for audience analysis and reporting39- **content_creator** — Check audience preferences before drafting content40- **custom** — Any agent needing audience context for decision-making4142## Hard Rules431. MUST aggregate over time period (not single snapshot)442. MUST identify actionable patterns (not just raw counts)453. SHOULD compare to platform benchmarks when available464. Require valid account_id that belongs to workspace4748## Steps4950### 1. Validate input51- Verify account_id exists and belongs to workspace52- Validate time_period is supported5354### 2. Query platform APIs55- Fetch follower demographics from platform (LinkedIn, Twitter, etc.)56- Fetch engagement behavior data57- Fetch content performance by type5859### 3. Aggregate and analyze60- Calculate growth rates61- Identify peak activity times62- Determine content format preferences63- Extract actionable patterns6465### 4. Return structured insights66- Demographics: follower count, growth rate, locations, industries67- Behavior: peak activity times, session duration, engagement by day68- Content preferences: top formats, topics, optimal post length6970## Output71```json72{73 "success": true,74 "account_id": "uuid",75 "time_period": "30d",76 "insights": {77 "demographics": {78 "follower_count": 12450,79 "growth_rate_30d": 0.08,80 "top_locations": ["United States", "United Kingdom", "Canada"],81 "top_industries": ["Technology", "Marketing", "SaaS"]82 },83 "behavior": {84 "peak_activity_times": ["9am-11am EST", "2pm-4pm EST"],85 "engagement_by_day": {86 "thursday": 0.038,87 "sunday": 0.01288 }89 },90 "content_preferences": {91 "top_formats": ["thread", "single_post", "carousel"],92 "top_topics": ["remote work", "productivity", "team collaboration"],93 "avg_engagement_by_length": {94 "short": 0.021,95 "medium": 0.028,96 "long": 0.03497 }98 }99 }100}101```102103## Failure Handling104- If account_id not found: return error "Account not found"105- If platform API fails: return cached data with warning106- If insufficient data for time_period: suggest longer period107108## Example Usage109110### Scenario: Analytics agent analyzing audience111```json112{113 "account_id": "uuid",114 "insights_type": "demographics",115 "time_period": "30d"116}117```118**Result:** Receive demographic breakdown for strategy planning