Appearance
Weekly Executive Briefing
Build an agent that pulls data from Stripe, PostgreSQL, and Slack every Monday morning, compiles a polished executive briefing, and posts it to your leadership channel.
The Business Problem
Your finance team spends 3-4 hours every Monday assembling an executive briefing. The data lives in three places:
- Stripe — revenue numbers, subscription status, and payment data
- PostgreSQL database — pipeline metrics, deal tracking, and historical trends
- Slack — team updates scattered across channels
By the time the briefing reaches leadership, it's already outdated. You need a reliable, automated process that runs before anyone arrives on Monday.
What You'll Build
| Component | Details |
|---|---|
| Agent | Executive Analyst |
| Workflow | 4-step weekly briefing workflow |
| Guidelines | 3 rules for tone, formatting, and anomaly detection |
| Connections | Stripe, PostgreSQL, Slack |
| Output | Formatted briefing artifact + Slack post |
Step 1: Set Up Connections
Before building the agent, connect your data sources. Go to Connections in the sidebar and add the following:
Stripe
- Click Add Connection and select Stripe.
- Enter your Stripe Secret Key.
- Click Connect and verify the status shows "Connected."
PostgreSQL
- Click Add Connection and select PostgreSQL.
- Enter your database connection string (e.g.,
postgresql://user:pass@host:5432/db). - Click Test Connection to confirm access, then Connect.
Slack
- Click Add Connection and select Slack.
- Click Connect and authorize Pencel via OAuth.
- Confirm the connection shows the channels you need (at minimum,
#leadership).
TIP
Test each connection individually before building the workflow. A failed connection mid-run means the entire briefing stalls.
Step 2: Create the Agent
Go to Agents in the sidebar and click New Agent.
| Field | Value |
|---|---|
| Name | Executive Analyst |
| Description | Compiles weekly executive briefings from cross-platform data |
| Preferred Model | Claude (default) |
| Risk Tolerance | Medium |
For the agent's Role Instructions, use:
You are an executive analyst for the finance team. You write clear, formal briefings that help leadership make decisions quickly. You always lead with the most important numbers and flag anything unusual.
INFO
Claude is the best model choice here because executive briefings require nuanced writing and the ability to synthesize information from multiple sources into a coherent narrative.
Step 3: Add Guidelines
Go to Guidelines in the sidebar and create three guidelines. Assign each one to the Executive Analyst agent.
Guideline 1: Formal Tone
| Field | Value |
|---|---|
| Name | Use formal tone for executive communications |
| Content | All executive-facing documents must use formal, professional language. Avoid contractions, slang, and casual phrasing. Use active voice. Address the audience as "the leadership team" or "executive stakeholders." |
| Activation | Always active |
Guideline 2: Financial Rounding
| Field | Value |
|---|---|
| Name | Round all financial figures to nearest thousand |
| Content | When presenting financial data, round all dollar amounts to the nearest thousand. Use "K" notation for thousands and "M" for millions. Example: $1,234,567 becomes $1.235M. Always include the currency symbol. |
| Activation | Always active |
Guideline 3: Anomaly Detection
| Field | Value |
|---|---|
| Name | Flag metrics deviating more than 10% from last week |
| Content | Compare every key metric to the previous week's value. If any metric has changed by more than 10% in either direction, flag it with a bold warning label and a brief explanation of possible causes. |
| Activation | Always active |
Step 4: Build the Workflow
Go to Workflows in the sidebar and click New Workflow.
| Field | Value |
|---|---|
| Name | Weekly Executive Briefing |
| Description | Gathers data from Stripe, PostgreSQL, and Slack, then compiles and distributes an executive briefing |
| Default Agent | Executive Analyst |
| Schedule | Every Monday at 8:00 AM |
Step 1: Gather Stripe Revenue Data
| Field | Value |
|---|---|
| Type | Action |
| Instructions | Pull this week's revenue data from Stripe. Get total charges (successful), refund total, net revenue, subscription counts by status (active, past due, canceled), and any new subscriptions started in the last 7 days. Summarize the revenue health. |
| Auto-Approve | Yes |
Step 2: Query Pipeline Database
| Field | Value |
|---|---|
| Type | Action |
| Instructions | Query the pipeline database for this week's key metrics: total pipeline value, number of deals by stage (Prospecting, Negotiation, Closed Won, Closed Lost), deals that changed stage in the last 7 days, new customer count, and churn count. Also pull last week's numbers for comparison. |
| Auto-Approve | Yes |
Step 3: Scan Slack for Highlights
| Field | Value |
|---|---|
| Type | Action |
| Instructions | Search Slack channels #sales, #product, and #customer-success for significant updates from the past 7 days. Look for deal wins, product launches, customer issues, and team announcements. Summarize the top 5-7 highlights. |
| Auto-Approve | Yes |
Step 4: Compile and Distribute Briefing
| Field | Value |
|---|---|
| Type | Action |
| Instructions | Compile all gathered data into a structured executive briefing with these sections: (1) Key Metrics Summary with week-over-week comparison, (2) Revenue Update from Stripe, (3) Pipeline Deep Dive, (4) Team Highlights from Slack, (5) Items Requiring Attention. Save the full briefing as an artifact. Then post a condensed summary (3-5 bullet points) to the #leadership Slack channel. |
| Auto-Approve | No |
WARNING
Step 4 has Auto-Approve turned off. This means you'll need to review the compiled briefing before it posts to Slack. This is intentional — you want a human eye on anything going to the executive team.
Step 5: Run and Review
You can either wait for the Monday 8 AM schedule or trigger the workflow manually:
- Open the workflow and click Run.
- Watch progress on the Jobs page (
/jobs). - Steps 1-3 execute automatically. Step 4 pauses for your approval.
- Review the compiled briefing in the step details.
- Click Approve to post to Slack, or Reject to make changes.
Expected Output
The workflow creates two outputs:
Artifact: "Weekly Executive Briefing — [Date]"
A structured document with sections for metrics, revenue, pipeline, highlights, and action items. All financial figures are rounded per the guideline. Any 10%+ deviations are flagged.
Slack Post to #leadership
A condensed 3-5 bullet summary linking to the full briefing. Example:
Weekly Briefing — March 3, 2026
- Revenue MTD: $2.4M (up 12% WoW) ⚠️ Above threshold
- Pipeline: $8.7M across 43 active deals
- 3 deals moved to Closed Won ($340K total)
- Product team shipped v2.3 — see #product for details
- Action needed: Enterprise renewal at risk (Acme Corp)
Monitoring Costs
This workflow uses Claude for all four steps. Check the run's cost view on the Jobs page after each run to see the token usage. A typical run uses approximately:
- Steps 1-3 (data gathering): ~2,000 tokens each
- Step 4 (compilation): ~4,000 tokens
TIP
If cost is a concern, you can switch Steps 1-3 to use Gemini 2.5 Flash (a less expensive model) since they're primarily data retrieval tasks. Keep Step 4 on Claude for the best writing quality.
Troubleshooting
| Problem | Solution |
|---|---|
| Stripe connection errors | Check your API key. If using a test key, you only see test mode data. Switch to a live key for production data. |
| Revenue query returns empty results | Verify the database connection string and table names in the PostgreSQL connection settings. |
| Slack search finds nothing | Make sure the Slack connection has access to the channels listed in the instructions. |
| Briefing tone isn't formal enough | Strengthen the tone guideline with specific examples of acceptable vs. unacceptable phrasing. |
