# sfdc-time-logger > Generate and submit Salesforce time log entries from Claude Echo activity data and Calendar events. Use when the user wants to log hours worked on customer opportunities, fill out SFDC time tracking forms, or calculate how much time was spent on different accounts/projects. Requires Echo MCP and Salesforce MCP servers. Optional Calendar MCP for meeting time capture. - Author: Jason Schwartz - Repository: jschwar2552/aai-plugin - Version: 20260127145543 - Stars: 1 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/jschwar2552/aai-plugin - Web: https://mule.run/skillshub/@@jschwar2552/aai-plugin~sfdc-time-logger:20260127145543 --- --- name: sfdc-time-logger description: Generate and submit Salesforce time log entries from Claude Echo activity data and Calendar events. Use when the user wants to log hours worked on customer opportunities, fill out SFDC time tracking forms, or calculate how much time was spent on different accounts/projects. Requires Echo MCP and Salesforce MCP servers. Optional Calendar MCP for meeting time capture. --- # SFDC Time Logger Generate and submit Applied AI Time Log entries to Salesforce by analyzing Echo activity data and Calendar events. ## Prerequisites - **Required**: Echo MCP server (eye icon in menubar) - **Required**: Salesforce MCP server (tsmztech/mcp-server-salesforce) - **Optional**: Google Calendar MCP (for meeting time capture) ## Workflow ### Step 1: Gather User Input Ask the user: 1. **Date range**: "What period do you want to log? (today / yesterday / this week / custom)" 2. **Customer names**: "What customers are you working on? e.g., Microsoft, Salesforce, Meta" ### Step 2: Look Up Opportunity IDs Query Salesforce for each customer name: ``` salesforce_query_records: objectName: Opportunity conditions: "Name LIKE '%Microsoft%' AND IsClosed = false" fields: ["Id", "Name", "Account.Name"] ``` Present matches for user confirmation, store confirmed Opportunity IDs. ### Step 3: Fetch Activity Data **Echo MCP:** `echo_get_entries_for_date`, `echo_search_activities` **Calendar MCP (if available):** List events for date range. Calendar events with customer names = direct meeting time. ### Step 4: Calculate Work Hours 1. Echo-based: First entry → last entry, minus gaps > 5 min 2. Add calendar meeting durations 3. Present estimate for user confirmation ### Step 5: Categorize and Allocate Time For each entry/event determine: opportunity, category (see references/categories.md), exclude internal activities. Calculate proportional time per opportunity, subdivided by category. ### Step 6: Generate Major Updates For each opportunity, generate 2-3 bullet points for `Major_Updates__c`: - Key deliverables (e.g., "Prepared training deck") - Milestones (e.g., "Completed POC demo") - Meetings held (e.g., "Conducted Claude Code 101 session") ### Step 7: Confirm and Submit Present summary with hours + Major Updates per opportunity. User confirms or edits. On confirmation, write using `salesforce_dml_records`: ``` operation: insert objectName: Applied_AI_Time_Log__c records: [{Opportunity__c, Date__c, [hour fields], Major_Updates__c}, ...] ``` See references/example-output.md for complete DML format. ## Edge Cases - **Multiple opps per customer**: Ask user which specific opp to log to - **Ambiguous categorization**: Flag for user review before submission - **Calendar without Echo**: Still counts as meeting time - **Echo without calendar**: Async work (docs, Slack, email) ## References - references/categories.md - Category signals and SFDC field API names - references/example-output.md - Full workflow example with DML format