Delivers a prioritized morning summary covering today's meetings, overdue tasks, pipeline alerts, and recommended actions from Dataverse. Use when user says "what's on my plate today", "daily briefing", "morning summary", "what do I need to focus on today", "start my day", "daily digest", "today's priorities", or "what's happening today".
npx skills add https://github.com/microsoft/dataverse-business-skills --skill daily-briefing
Sales reps lose time each morning deciding what to work on. This skill queries Dataverse to surface the day's agenda, flag urgent pipeline issues, highlight overdue commitments, and recommend a prioritized action list. It replaces manual CRM scanning with a structured, actionable daily digest.
Accept optional parameters from the user:
Calculate the target date range:
[target_date]T00:00:00Z[target_date]T23:59:59ZSELECT appointmentid, subject, scheduledstart, scheduledend, description,
regardingobjectid, regardingobjecttypecode, location, ownerid
FROM appointment
WHERE statecode = 0
AND scheduledstart >= '[day_start]'
AND scheduledstart <= '[day_end]'
AND ownerid = '[ownerid]'
ORDER BY scheduledstart ASC
For each appointment, fetch the regarding record name (account or opportunity) and attendees:
SELECT partyid, participationtypemask
FROM activityparty
WHERE activityid = '[appointmentid]'
Overdue tasks (past due, still open):
SELECT taskid, subject, description, scheduledend, prioritycode,
regardingobjectid, regardingobjecttypecode, ownerid
FROM task
WHERE statecode = 0
AND scheduledend < '[day_start]'
AND ownerid = '[ownerid]'
ORDER BY scheduledend ASC
Due today:
SELECT taskid, subject, description, scheduledend, prioritycode,
regardingobjectid, regardingobjecttypecode, ownerid
FROM task
WHERE statecode = 0
AND scheduledend >= '[day_start]'
AND scheduledend <= '[day_end]'
AND ownerid = '[ownerid]'
ORDER BY prioritycode ASC
Priority codes: 0 = High, 1 = Normal, 2 = Low
Identify opportunities requiring immediate attention today.
Deals closing this month with no recent activity:
SELECT opportunityid, name, estimatedvalue, estimatedclosedate, salesstage,
closeprobability, msdyn_forecastcategory, ownerid, customerid
FROM opportunity
WHERE statecode = 0
AND ownerid = '[ownerid]'
AND estimatedclosedate <= '[end_of_month]'
ORDER BY estimatedclosedate ASC
For each, check last activity date:
SELECT TOP 1 actualend
FROM activitypointer
WHERE regardingobjectid = '[opportunityid]'
AND statecode = 1
ORDER BY actualend DESC
Flag deals where: last activity > 7 days ago AND close date is within 30 days.
Deals with past-due close dates:
SELECT opportunityid, name, estimatedvalue, estimatedclosedate, salesstage, ownerid
FROM opportunity
WHERE statecode = 0
AND ownerid = '[ownerid]'
AND estimatedclosedate < '[today]'
ORDER BY estimatedclosedate ASC
Deals newly moved to Lost (yesterday):
SELECT opportunityid, name, estimatedvalue, actualclosedate, ownerid
FROM opportunity
WHERE statecode = 2
AND ownerid = '[ownerid]'
AND actualclosedate >= '[yesterday_start]'
AND actualclosedate <= '[yesterday_end]'
SELECT leadid, fullname, companyname, jobtitle, leadqualitycode,
leadsourcecode, createdon, ownerid
FROM lead
WHERE statecode = 0
AND ownerid = '[ownerid]'
AND createdon >= '[yesterday_start]'
ORDER BY createdon DESC
Identify emails received but not yet responded to:
SELECT activityid, subject, createdon, regardingobjectid, regardingobjecttypecode
FROM email
WHERE statecode = 1
AND directioncode = 0
AND ownerid = '[ownerid]'
AND createdon >= '[two_days_ago]'
ORDER BY createdon DESC
directioncode: 1 = Outgoing, 0 = Incoming
Limit to 10 most recent. Flag if no outgoing reply found on same regardingobjectid within last 24 hours.
Count completed activities from yesterday to provide context:
SELECT activitytypecode, COUNT(activityid) as count
FROM activitypointer
WHERE statecode = 1
AND ownerid = '[ownerid]'
AND actualend >= '[yesterday_start]'
AND actualend <= '[yesterday_end]'
GROUP BY activitytypecode
Combine all findings and rank actions:
Priority 1 — Do First (Urgent):
Priority 2 — Do Today (Important):
Priority 3 — Do When Possible (Normal):
GOOD MORNING — DAILY SALES BRIEFING
[Date] | [Owner Name]
═══════════════════════════════════════════════════════════
TODAY'S SCHEDULE
───────────────────────────────────────────────────────────
[Time] - [Meeting Subject] | [Attendees] | [Account/Opp]
[Time] - [Meeting Subject] | [Attendees] | [Account/Opp]
URGENT — ACTION REQUIRED NOW
───────────────────────────────────────────────────────────
🔴 [Overdue task or pipeline alert with context]
🔴 [Past-due close date deal with recommended action]
TODAY'S TASKS ([n] total)
───────────────────────────────────────────────────────────
⬜ [High Priority] [Task subject] — [Account/Opp] — Due: Today
⬜ [Normal] [Task subject] — [Account/Opp] — Due: Today
PIPELINE ALERTS ([n] deals need attention)
───────────────────────────────────────────────────────────
⚠️ [Deal Name] — $[Value] | [Stage] | Close: [Date]
Last activity: [n] days ago | [Recommended action]
NEW LEADS ([n] new)
───────────────────────────────────────────────────────────
👤 [Name] — [Company] | [Title] | [Source] | Assigned [n] hours ago
EMAILS TO FOLLOW UP ([n] unanswered)
───────────────────────────────────────────────────────────
📧 [Subject] from [Contact] — [Account] — [n] hours ago
YESTERDAY'S ACTIVITY
───────────────────────────────────────────────────────────
✓ [n] calls | [n] meetings | [n] emails | [n] tasks completed
RECOMMENDED FOCUS FOR TODAY
───────────────────────────────────────────────────────────
1. [Specific action #1 with context]
2. [Specific action #2 with context]
3. [Specific action #3 with context]
═══════════════════════════════════════════════════════════
The briefing is designed to be read in under 2 minutes. Each section leads with the most urgent items. The Recommended Focus section synthesizes across all sections to give reps a clear starting point.
User Input:
"Give me my daily briefing."
Skill Output:
GOOD MORNING — DAILY SALES BRIEFING
Tuesday, March 3 | Sarah Johnson
═══════════════════════════════════════════════════════════
TODAY'S SCHEDULE (2 meetings)
───────────────────────────────────────────────────────────
10:00 AM - QBR with Fabrikam | Emily Torres, James Liu | Cloud Migration Deal
2:00 PM - Intro Call: Contoso | Mark Evans (VP Sales) | New Lead
URGENT — ACTION REQUIRED NOW
───────────────────────────────────────────────────────────
🔴 OVERDUE TASK: "Send updated SOW to Fabrikam" — was due 5 days ago
→ Send before your 10am call with Emily Torres
🔴 PAST-DUE DEAL: Northwind Renewals — $42,000 | Propose stage
Close date was Feb 28 | Last activity: 12 days ago
→ Reschedule close date or re-engage today
TODAY'S TASKS (3 tasks)
───────────────────────────────────────────────────────────
⬜ [High] Send updated SOW to Fabrikam — Due: Today (overdue!)
⬜ [Normal] Follow up: Alpine Ski House pricing question — Due: Today
⬜ [Normal] Log notes from Friday's Woodgrove demo — Due: Today
PIPELINE ALERTS (2 deals)
───────────────────────────────────────────────────────────
⚠️ Fabrikam Cloud Migration — $85,000 | Propose | Close: Mar 31
Last activity: 18 days ago | Attend today's QBR prepared
⚠️ Northwind Renewals — $42,000 | Propose | Close: Feb 28 (PAST DUE)
Last activity: 12 days ago | Reschedule or re-engage
NEW LEADS (1 new)
───────────────────────────────────────────────────────────
👤 Mark Evans — Contoso | VP of Sales | Inbound Web | Assigned 4 hours ago
→ You have an intro call at 2pm — prep recommended
EMAILS TO FOLLOW UP (2 unanswered)
───────────────────────────────────────────────────────────
📧 "Re: Pricing proposal" from Lisa Chen — Alpine Ski House — 26 hours ago
📧 "Quick question on implementation timeline" from Tom Park — Woodgrove — 8 hours ago
YESTERDAY'S ACTIVITY
───────────────────────────────────────────────────────────
✓ 2 calls | 1 meeting | 4 emails | 3 tasks completed
RECOMMENDED FOCUS FOR TODAY
───────────────────────────────────────────────────────────
1. Prep for Fabrikam QBR + send overdue SOW before 10am
2. Re-engage Northwind Renewals — update close date or escalate
3. Review Alpine Ski House email and reply with pricing clarity
═══════════════════════════════════════════════════════════
| Table | Purpose |
|-------|---------|
| appointment | Today's scheduled meetings |
| activityparty | Meeting attendees |
| task | Overdue and due-today tasks |
| opportunity | Pipeline alerts and close-date monitoring |
| activitypointer | Recent activity check per opportunity |
| lead | New leads assigned |
| email | Unanswered inbound emails |
| systemuser | Owner context |
task:
subject (NVARCHAR 200) - Task titlescheduledend (DATETIME) - Due dateprioritycode (CHOICE) - High(0), Normal(1), Low(2)statecode (STATE) - Open(0), Completed(1), Canceled(2)regardingobjectid (LOOKUP) - Linked account, contact, or opportunityemail:
directioncode (BIT) - Outgoing(1), Incoming(0)statecode (STATE) - Draft(0), Completed(1), Canceled(2), Pending Send(3), Sending(4), Failed(5)createdon (DATETIME) - When received/sentregardingobjectid (LOOKUP) - Linked recordUser says: "What's on my plate today?"
Actions:
Result:
DAILY BRIEFING - Wednesday, March 4, 2026
TODAY'S AGENDA:
9:00am - Contoso QBR (Teams) - Prep: Review Q4 metrics
2:00pm - New lead intro call - Mark Evans, Contoso
URGENT TASKS:
⚠️ Send SOW to Fabrikam (overdue since yesterday)
⚠️ Follow up on Alpine pricing question
PIPELINE ALERTS:
- Northwind $42K: Close date passed, re-engage or update
- Fabrikam $85K: No activity 18 days, QBR today
TOP 3 PRIORITIES:
1. Prep for Contoso QBR (starts in 2 hours)
2. Send Fabrikam SOW before QBR at 10am
3. Reply to Alpine email before EOD
User says: "What's happening tomorrow?"
Actions:
Result:
BRIEFING FOR THURSDAY, MARCH 5, 2026
SCHEDULED:
10:00am - Alpine Ski House Demo
3:30pm - Woodgrove Technical Review
TASKS DUE:
- Prepare demo environment for Alpine
- Send meeting agenda for Woodgrove
RECOMMENDATION:
Light meeting day - use morning for deal follow-ups
User says: "What should I focus on right now?"
Actions:
Result:
RIGHT NOW PRIORITIES:
1. Meeting in 45 min: Contoso QBR - prep slides
2. Overdue: Fabrikam SOW (flagged 2x by manager)
3. Stale deal: Northwind hasn't been touched in 12 days
After 11am: You have 3 hours clear for deep work
Cause: User has no scheduled meetings or calendar not synced
Solution:
Cause: User has large portfolio or many overdue items
Solution:
Cause: Email tracking not enabled or emails not synced to Dynamics
Solution:
Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.
Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".
Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.
Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.
A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.
Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.
Take microsoft/daily-briefing from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.