agentleFS
MicrosoftKnown publishermicrosoft/dataverse-business-skills/skills/daily-briefing/SKILL.md

daily-briefing

Skill51 starsChanged 8 months agoMITView on GitHub

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".

35 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use crm-lookup, spotify and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • QuixiAISkill

    crm-lookup

    Search, view, update, and merge contacts in the local CRM

    Also in 3 projects that use this

  • QuixiAISkill

    spotify

    Search Spotify, inspect current playback and devices, and control playback with explicit approval

    Also in 3 projects that use this

  • MicrosoftSkill

    inbox-triage

    Use this skill whenever the user asks to clean up, triage, declutter, or archive low-value Outlook inbox mail - "clean up my inbox", "triage my mail", "declutter my inbox", "sort out newsletters", "archive old resolved threads", "/inbox-triage" - to group only newsletters, auto-notifications, past-event meeting logistics, resolved threads, and redundant duplicates into reviewable move-proposals presented for per-bucket approval before any message moves. Do not use for reading mail, drafting or sending replies, deleting mail, executing moves without explicit per-bucket approval, or acting on messages from the user's manager, direct reports, active threads, flagged mail, or labelled/HR/Legal/Finance/Security senders.

    Also in 4 projects that use this

  • MicrosoftSkill

    image-gen

    Also in 3 projects that use this

  • AnthropicSkill

    weather

    The optional standing status report ("the weather"): compile open incidents, build health, merge-queue stats, and deploy lag into one always-current report page, and post to the channel only when a defined event fires. Use when the weather routine fires, or when someone asks to run/update the weather report.

    Also in 3 projects that use this

  • SentrySkill

    notion

    Search, fetch, create, update, and move Notion pages and data sources. Use when users ask to look up docs, specs, notes, meeting notes, project context, roadmaps, trackers, or internal references stored in Notion, or when they explicitly ask to create or edit Notion content.

    Also in 3 projects that use this

  • +2 more from QuixiAI

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 32 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Check for new leads and unanswered emails

    line 326
  2. Distinctive:

    Run same queries with tomorrow's date

    line 357
  3. Distinctive:

    Check next 2 hours of calendar

    line 381
  4. Distinctive:

    Verify appointment table is populated

    line 401
  5. Distinctive:

    Check if meetings are on shared calendars

    line 402
  6. Distinctive:

    Check if server-side sync is configured

    line 415

“Common” is measured: kept by at least 6 in 10 of the 32 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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.

Instructions

Step 1: Determine Scope

Accept optional parameters from the user:

  • Owner filter: Specific rep (systemuserid or name) or default to current user
  • Date: Today (default) or a specified date

Calculate the target date range:

  • Day start: [target_date]T00:00:00Z
  • Day end: [target_date]T23:59:59Z

Step 2: Fetch Today's Scheduled Meetings

SELECT 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]'

Step 3: Fetch Overdue and Due-Today Tasks

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

Step 4: Pipeline Alerts

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]'

Step 5: New Leads Assigned

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

Step 6: Recent Email Activity (Unanswered)

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.

Step 7: Yesterday's Activity Summary

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

Step 8: Generate Prioritized Action List

Combine all findings and rank actions:

Priority 1 — Do First (Urgent):

  • Overdue tasks with High priority
  • Deals closing this week with no recent activity
  • Past-due close dates
  • Escalated support cases tied to your accounts

Priority 2 — Do Today (Important):

  • Due-today tasks
  • Meetings requiring prep (within 2 hours)
  • New leads uncontacted for >24 hours
  • Pipeline deals closing this month in late stages (Propose/Close)

Priority 3 — Do When Possible (Normal):

  • Unanswered emails from key contacts
  • Deals in Qualify/Develop closing this quarter
  • Low priority tasks due today

Step 9: Output Daily Briefing

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]
═══════════════════════════════════════════════════════════

Output Format

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.

Example Interaction

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
═══════════════════════════════════════════════════════════

Dataverse Tables Used

TablePurpose
appointmentToday's scheduled meetings
activitypartyMeeting attendees
taskOverdue and due-today tasks
opportunityPipeline alerts and close-date monitoring
activitypointerRecent activity check per opportunity
leadNew leads assigned
emailUnanswered inbound emails
systemuserOwner context

Key Fields Reference

task:

  • subject (NVARCHAR 200) - Task title
  • scheduledend (DATETIME) - Due date
  • prioritycode (CHOICE) - High(0), Normal(1), Low(2)
  • statecode (STATE) - Open(0), Completed(1), Canceled(2)
  • regardingobjectid (LOOKUP) - Linked account, contact, or opportunity

email:

  • 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/sent
  • regardingobjectid (LOOKUP) - Linked record

Configurable Parameters

  • Days without activity threshold for pipeline alerts (default: 7)
  • Email age threshold for follow-up alerts (default: 24 hours)
  • New lead contact SLA (default: 24 hours)
  • Number of days to look back for lost deals (default: 1)

Examples

Example 1: Standard Morning Briefing

User says: "What's on my plate today?"

Actions:

  1. Query today's appointments for current user
  2. Fetch overdue and due-today tasks
  3. Identify pipeline alerts (stale deals, past-due close dates)
  4. Check for new leads and unanswered emails
  5. Generate prioritized daily briefing

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

Example 2: Briefing for Specific Date

User says: "What's happening tomorrow?"

Actions:

  1. Calculate tomorrow's date range
  2. Run same queries with tomorrow's date
  3. Generate forward-looking briefing

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

Example 3: Quick Priority Check

User says: "What should I focus on right now?"

Actions:

  1. Check next 2 hours of calendar
  2. Identify highest priority overdue items
  3. Generate focused action list

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

Troubleshooting

Error: No appointments found

Cause: User has no scheduled meetings or calendar not synced Solution:

  • Verify appointment table is populated
  • Check if meetings are on shared calendars
  • Fall back to task-focused briefing

Error: Too many items returned

Cause: User has large portfolio or many overdue items Solution:

  • Limit to top 5 per category
  • Prioritize by value and urgency
  • Suggest separate deep-dive for full list

Error: Email follow-up data incomplete

Cause: Email tracking not enabled or emails not synced to Dynamics Solution:

  • Check if server-side sync is configured
  • Fall back to task and meeting focus
  • Note email section as unavailable

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.