microsoft/daily-briefing
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:
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.