From 9be2a7a4befe92c0759d7558bbe29be46362d7d6 Mon Sep 17 00:00:00 2001 From: Connor Rhodes Date: Sat, 11 Apr 2026 11:54:47 -0500 Subject: [PATCH 1/3] create skills: salesforce-se-info and update-salesforce-tech-validation, update skill index --- _skill-index.md | 14 ++++ salesforce-se-info/SKILL.md | 90 ++++++++++++++++++++++ update-salesforce-tech-validation/SKILL.md | 84 ++++++++++++++++++++ 3 files changed, 188 insertions(+) create mode 100644 salesforce-se-info/SKILL.md create mode 100644 update-salesforce-tech-validation/SKILL.md diff --git a/_skill-index.md b/_skill-index.md index 562db8f..a872b62 100644 --- a/_skill-index.md +++ b/_skill-index.md @@ -25,6 +25,8 @@ description: Master index of all skills in your robot assistant system. Your ass | "run system diagnostic," "audit my skills," "check system health," "skill audit," "health check" | **system-diagnostic** | | "write a POV doc," "create a proof of value document," "POV criteria," "proof of concept criteria," "generate a POC document" | **pov-doc** | | "submit an expense," "navan expense," "file an expense," "upload receipt" | **navan-expense** | +| "check SE validation stage," "update technical validation," "set SE validation," "se data entry" | **salesforce-se-info** | +| "update the SE radar report," "add a column to the SE report," "edit the vNotes report," "run the SE radar report" | **update-salesforce-tech-validation** | --- @@ -108,6 +110,18 @@ description: Master index of all skills in your robot assistant system. Your ass **File:** `skills/navan-expense/SKILL.md` **Dependencies:** Chrome browser with active Okta session (verkada.okta.com) +### Salesforce SE Info +**Purpose:** Navigate to a Salesforce opportunity, open SE Validation, and read or update the Technical Validation Stage field on the SE Deal Management record. +**Triggers:** "check SE validation stage," "update technical validation," "set SE validation," "se data entry" +**File:** `skills/salesforce-se-info/SKILL.md` +**Dependencies:** Chrome browser with active Salesforce session (Okta SSO) + +### Update Salesforce Tech Validation +**Purpose:** Edit and run the SE Radar report in Salesforce to add columns, view SE notes, and manage technical validation data. +**Triggers:** "update the SE radar report," "add a column to the SE report," "edit the vNotes report," "run the SE radar report," "update salesforce tech validation report" +**File:** `skills/update-salesforce-tech-validation/SKILL.md` +**Dependencies:** Chrome browser with active Salesforce session (Okta SSO) + --- ## Adding New Skills diff --git a/salesforce-se-info/SKILL.md b/salesforce-se-info/SKILL.md new file mode 100644 index 0000000..e3bcb8c --- /dev/null +++ b/salesforce-se-info/SKILL.md @@ -0,0 +1,90 @@ +--- +name: salesforce-se-info +description: | + Navigate to a Salesforce opportunity, open SE Validation, and read or update the Technical Validation Stage. + + Triggers when user mentions: + - "check SE validation stage" + - "update technical validation" + - "set SE validation" + - "se data entry" +--- + +## Overview + +This skill automates navigating Salesforce opportunity pages to read or update the SE Deal Management record, specifically the **Technical Validation Stage** field. + +## Prerequisites + +- Chrome browser with an active Salesforce session (authenticated via Okta SSO at verkada.okta.com) +- The session must have access to the SE Deal Management object + +## Workflow + +### Step 1: Open the Opportunity Page + +Navigate directly to the Salesforce opportunity record: + +``` +https://verkada.lightning.force.com/lightning/r/Opportunity//view +``` + +Wait for the page to load (look for the opportunity name in the heading). + +### Step 2: Open SE Validation + +1. Click the **"Show more actions"** button (the dropdown triangle/chevron at the top right of the opportunity record, next to "Close Lost", "Meddpicc Notes", etc.) +2. Click **"SE Validation"** from the dropdown menu + +This opens the SE Deal Management record. Wait for it to load (look for "Technical Validation" section). + +### Step 3: Read or Update the Technical Validation Stage + +The SE Deal Management page contains a **"Technical Validation"** section with these fields: + +| Field | Notes | +|-------|-------| +| **Technical Validation Stage** | The target field. Values include: Technical Win, Technical Loss, Not Involved, etc. | +| **POC Stage** | Related stage field | +| **Vendor of Choice** | Boolean field | + +To **update** the Technical Validation Stage: +1. Click the **"Edit Technical Validation Stage"** button (pencil icon next to the field) +2. Select the new value from the dropdown +3. Save + +To **read** the current value, just locate the "Technical Validation Stage" label and read the adjacent text. + +## Page Structure Reference + +### Opportunity Page (after Step 1) +``` +Opportunity + [Close Lost] [Meddpicc Notes] [Create/Add Deal ID] [Send Deal ID Email] [Show more actions v] + Account Name, Amount, NEX Amount, Close Date, Stage, Reseller + Tabs: Basic | Advanced | Products And Quotes | Partner Request | Related | Finance | VNotes +``` + +### SE Deal Management Page (after Step 2) +``` +SE DM- | SE Deal Management | Salesforce + Basic Information (expanded) + SE Deal Management ID, Solutions Engineer, Solutions Engineer Manager, Created By, Last Modified By + Primary Opportunity Information (expanded) + Opportunity, Opportunity Owner, Stage, Close Date, QR Amount, Account Name, Reseller + Technical Validation (expanded) + Technical Validation Stage: [Edit] + POC Stage: [Edit] + Vendor of Choice: [Edit] + POC Documentation Link: [Edit] + Related Opportunities + Feed / Notes at bottom +``` + +## Common Gotchas + +- **Okta SSO redirect**: If you hit an Okta login page, the session has expired. You need to re-authenticate before proceeding. +- **Page loading**: Salesforce Lightning pages load progressively. Always use `wait_for` with relevant text (like the opportunity name or "Technical Validation") before interacting. +- **"Show more actions" menu**: The dropdown menu UIDs are ephemeral. Always take a fresh snapshot after clicking the button to find "SE Validation" in the menu. +- **SE Validation may not exist**: If the opportunity has no SE Deal Management record, clicking "SE Validation" may create one or show an error. Handle both cases. +- **Multiple browser tabs**: The SE Validation action may open in the same tab (navigating away from the opportunity). To go back, use browser back or re-navigate to the opportunity URL. diff --git a/update-salesforce-tech-validation/SKILL.md b/update-salesforce-tech-validation/SKILL.md new file mode 100644 index 0000000..98e4267 --- /dev/null +++ b/update-salesforce-tech-validation/SKILL.md @@ -0,0 +1,84 @@ +--- +name: update-salesforce-tech-validation +description: | + Edit and run the SE Radar report in Salesforce to add columns, view SE notes, and manage technical validation data. + + Triggers when user mentions: + - "update the SE radar report" + - "add a column to the SE report" + - "edit the vNotes report" + - "run the SE radar report" + - "update salesforce tech validation report" +--- + +## Overview + +This skill automates editing and running the **SE Radar: SE vNotes and TVSs IC** report in Salesforce. It covers adding columns, re-running the report, and reading the results. More workflows (e.g., filtering, grouping, saving changes) will be added as needed. + +## Prerequisites + +- Chrome browser with an active Salesforce session (authenticated via Okta SSO at verkada.okta.com) +- Access to the SE Radar report + +## Report URL + +``` +https://verkada.lightning.force.com/lightning/r/Report/00OUu000004gR9ZMAU/view +``` + +## Workflow: Add a Column and Re-Run + +### Step 1: Open the Report + +Navigate to the report URL. Wait for the page to load (look for "Total Records" and the report table). If Salesforce doesn't load via browser automation (SSO issues), ask the user to open it manually first. + +### Step 2: Enter Edit Mode + +1. Take a snapshot to find the **"Edit"** button inside the Report Viewer iframe +2. Click **"Edit"** +3. Wait for the Report Builder to load (look for "Fields" panel, "Undo"/"Redo" buttons, and "Run" button) + +### Step 3: Add a Column + +1. The **Fields** panel on the left contains a tree of all available fields grouped by object (e.g., "Opportunities", "SE Deal Management", "vNotes", "SE User") +2. Locate the desired field in the tree. If the list is long, use the **"Search Fields"** searchbox at the top of the panel +3. Click the field name to select it (it will show as `selected` in the accessibility tree) +4. The page will display: "1 selected. To add new fields as detail columns, press Enter" +5. Press **Enter** to add the field as a new column + +After adding, the **Undo** button becomes enabled, confirming the change was registered. The preview area may show "To see the latest edits, refresh the preview." + +### Step 4: Run the Report + +1. Click the **"Run"** button (top of the report builder) +2. The page navigates back to the report view with the new column included +3. Wait for "Total Records" to appear confirming the data has loaded + +### Step 5: Verify the New Column + +Take a snapshot of the report view and confirm the new column header appears in the table. + +## Known Columns in the Report + +As of the initial skill creation, the report includes these columns: + +| Column | Object | +|--------|--------| +| Opportunity ID | Opportunities | +| Opp Name And Link | Opportunities | +| Solutions Engineer: Full Name | Opportunities | +| VNote: VNote Name | vNotes | +| Technical Validation Stage | SE Deal Management | +| POC Documentation Link | SE Deal Management | +| POC Stage | SE Deal Management | +| Solutions Engineer: Team | SE User | +| SE Notes | Opportunities (added via this workflow) | + +## Common Gotchas + +- **Salesforce loads in an iframe**: The report content lives inside an iframe called "Report Viewer" (view mode) or "Report Builder" (edit mode). Snapshots and interactions must target elements within this iframe. +- **Ephemeral UIDs**: Salesforce Lightning re-renders frequently. Element UIDs change between snapshots. Always take a fresh snapshot before clicking. +- **Progressive loading**: The report builder shows "Previewing a limited number of records" while loading. Use `wait_for` with text like "Columns" or "Run" before interacting. +- **SSO session expiry**: If the session has expired, the page will redirect to Okta login. Ask the user to re-authenticate manually. +- **Field tree is large**: The Opportunities object alone has 400+ fields. Use the "Search Fields" searchbox to find specific fields quickly rather than scrolling. +- **"Run" vs "Save"**: Clicking "Run" re-runs the report with the new columns but does not persist the change to the report definition. Use "Save" if the column should be permanent. From bef6e1d4c9bd3e210f11ee4c98359074e79af155 Mon Sep 17 00:00:00 2001 From: Connor Rhodes Date: Sat, 11 Apr 2026 11:55:16 -0500 Subject: [PATCH 2/3] remove salesforce-se-info skill, consolidate into update-salesforce-tech-validation, update index --- _skill-index.md | 13 ++---- salesforce-se-info/SKILL.md | 90 ------------------------------------- 2 files changed, 3 insertions(+), 100 deletions(-) delete mode 100644 salesforce-se-info/SKILL.md diff --git a/_skill-index.md b/_skill-index.md index a872b62..fe377d4 100644 --- a/_skill-index.md +++ b/_skill-index.md @@ -25,8 +25,7 @@ description: Master index of all skills in your robot assistant system. Your ass | "run system diagnostic," "audit my skills," "check system health," "skill audit," "health check" | **system-diagnostic** | | "write a POV doc," "create a proof of value document," "POV criteria," "proof of concept criteria," "generate a POC document" | **pov-doc** | | "submit an expense," "navan expense," "file an expense," "upload receipt" | **navan-expense** | -| "check SE validation stage," "update technical validation," "set SE validation," "se data entry" | **salesforce-se-info** | -| "update the SE radar report," "add a column to the SE report," "edit the vNotes report," "run the SE radar report" | **update-salesforce-tech-validation** | +| "update the SE radar report," "add a column to the SE report," "edit the vNotes report," "run the SE radar report," "check SE validation stage," "update technical validation" | **update-salesforce-tech-validation** | --- @@ -110,15 +109,9 @@ description: Master index of all skills in your robot assistant system. Your ass **File:** `skills/navan-expense/SKILL.md` **Dependencies:** Chrome browser with active Okta session (verkada.okta.com) -### Salesforce SE Info -**Purpose:** Navigate to a Salesforce opportunity, open SE Validation, and read or update the Technical Validation Stage field on the SE Deal Management record. -**Triggers:** "check SE validation stage," "update technical validation," "set SE validation," "se data entry" -**File:** `skills/salesforce-se-info/SKILL.md` -**Dependencies:** Chrome browser with active Salesforce session (Okta SSO) - ### Update Salesforce Tech Validation -**Purpose:** Edit and run the SE Radar report in Salesforce to add columns, view SE notes, and manage technical validation data. -**Triggers:** "update the SE radar report," "add a column to the SE report," "edit the vNotes report," "run the SE radar report," "update salesforce tech validation report" +**Purpose:** Edit and run Salesforce reports related to SE data, manage technical validation info, and interact with the SE Radar report (add columns, run reports, view SE notes and TVS data). +**Triggers:** "update the SE radar report," "add a column to the SE report," "edit the vNotes report," "run the SE radar report," "check SE validation stage," "update technical validation" **File:** `skills/update-salesforce-tech-validation/SKILL.md` **Dependencies:** Chrome browser with active Salesforce session (Okta SSO) diff --git a/salesforce-se-info/SKILL.md b/salesforce-se-info/SKILL.md deleted file mode 100644 index e3bcb8c..0000000 --- a/salesforce-se-info/SKILL.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -name: salesforce-se-info -description: | - Navigate to a Salesforce opportunity, open SE Validation, and read or update the Technical Validation Stage. - - Triggers when user mentions: - - "check SE validation stage" - - "update technical validation" - - "set SE validation" - - "se data entry" ---- - -## Overview - -This skill automates navigating Salesforce opportunity pages to read or update the SE Deal Management record, specifically the **Technical Validation Stage** field. - -## Prerequisites - -- Chrome browser with an active Salesforce session (authenticated via Okta SSO at verkada.okta.com) -- The session must have access to the SE Deal Management object - -## Workflow - -### Step 1: Open the Opportunity Page - -Navigate directly to the Salesforce opportunity record: - -``` -https://verkada.lightning.force.com/lightning/r/Opportunity//view -``` - -Wait for the page to load (look for the opportunity name in the heading). - -### Step 2: Open SE Validation - -1. Click the **"Show more actions"** button (the dropdown triangle/chevron at the top right of the opportunity record, next to "Close Lost", "Meddpicc Notes", etc.) -2. Click **"SE Validation"** from the dropdown menu - -This opens the SE Deal Management record. Wait for it to load (look for "Technical Validation" section). - -### Step 3: Read or Update the Technical Validation Stage - -The SE Deal Management page contains a **"Technical Validation"** section with these fields: - -| Field | Notes | -|-------|-------| -| **Technical Validation Stage** | The target field. Values include: Technical Win, Technical Loss, Not Involved, etc. | -| **POC Stage** | Related stage field | -| **Vendor of Choice** | Boolean field | - -To **update** the Technical Validation Stage: -1. Click the **"Edit Technical Validation Stage"** button (pencil icon next to the field) -2. Select the new value from the dropdown -3. Save - -To **read** the current value, just locate the "Technical Validation Stage" label and read the adjacent text. - -## Page Structure Reference - -### Opportunity Page (after Step 1) -``` -Opportunity - [Close Lost] [Meddpicc Notes] [Create/Add Deal ID] [Send Deal ID Email] [Show more actions v] - Account Name, Amount, NEX Amount, Close Date, Stage, Reseller - Tabs: Basic | Advanced | Products And Quotes | Partner Request | Related | Finance | VNotes -``` - -### SE Deal Management Page (after Step 2) -``` -SE DM- | SE Deal Management | Salesforce - Basic Information (expanded) - SE Deal Management ID, Solutions Engineer, Solutions Engineer Manager, Created By, Last Modified By - Primary Opportunity Information (expanded) - Opportunity, Opportunity Owner, Stage, Close Date, QR Amount, Account Name, Reseller - Technical Validation (expanded) - Technical Validation Stage: [Edit] - POC Stage: [Edit] - Vendor of Choice: [Edit] - POC Documentation Link: [Edit] - Related Opportunities - Feed / Notes at bottom -``` - -## Common Gotchas - -- **Okta SSO redirect**: If you hit an Okta login page, the session has expired. You need to re-authenticate before proceeding. -- **Page loading**: Salesforce Lightning pages load progressively. Always use `wait_for` with relevant text (like the opportunity name or "Technical Validation") before interacting. -- **"Show more actions" menu**: The dropdown menu UIDs are ephemeral. Always take a fresh snapshot after clicking the button to find "SE Validation" in the menu. -- **SE Validation may not exist**: If the opportunity has no SE Deal Management record, clicking "SE Validation" may create one or show an error. Handle both cases. -- **Multiple browser tabs**: The SE Validation action may open in the same tab (navigating away from the opportunity). To go back, use browser back or re-navigate to the opportunity URL. From 252c18eaf98c147fff034316535d02f54a1c9369 Mon Sep 17 00:00:00 2001 From: Connor Rhodes Date: Sat, 11 Apr 2026 12:08:26 -0500 Subject: [PATCH 3/3] Add workflow for looking up blank SE notes from notes directory --- update-salesforce-tech-validation/SKILL.md | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/update-salesforce-tech-validation/SKILL.md b/update-salesforce-tech-validation/SKILL.md index 98e4267..b6d4a54 100644 --- a/update-salesforce-tech-validation/SKILL.md +++ b/update-salesforce-tech-validation/SKILL.md @@ -74,11 +74,46 @@ As of the initial skill creation, the report includes these columns: | Solutions Engineer: Team | SE User | | SE Notes | Opportunities (added via this workflow) | +## Workflow: Find Blank SE Notes and Look Up from Notes Directory + +After adding the SE Notes column and running the report, use this workflow to identify opportunities missing SE Notes and find the corresponding notes in the local notes repo. + +### Step 1: Identify Blank SE Notes + +1. Scroll through the full report to see all rows (Salesforce lazy-loads rows; click "Load more widgets" or scroll to the bottom of the iframe body) +2. For each row, check the SE Notes cell. Blank entries show as a single dash: `-` +3. Build a list of all opportunities with blank SE Notes, noting the opportunity name and the account name + +### Step 2: Look Up SE Notes from Account Notes + +For each account with a blank SE Notes entry: + +1. **Find the account note file** in `/Users/connor.rhodes/code/notes/` (e.g., `San Antonio ISD.md`, `AR Dept of Transportation.md`) +2. **Find the relevant wip file**: + - Account notes link to wip files under a `## WIP` section or similar + - Look for a wip file that matches the specific opportunity (e.g., `wip/ardot phase 2.md`) + - If no opportunity-specific wip file exists, use a **general expansion** wip file if one is linked (e.g., `wip/general saisd expansion.md` for any SAISD expansion opportunity) +3. **Extract the SE Note content**: + - Open the wip file and look for a header matching `SE Notes` or `SE Note` (case insensitive, any header level) + - Return the content under that header, but not the header itself + - If no SE Notes header exists in the wip file, report that no SE note was found + +### Step 3: Present Results to the User + +Group results by account. For each opportunity: +- If an SE note was found, show the opportunity name and the SE note content (header omitted) +- If no SE note was found, say so + +Note: Multiple opportunities for the same account can share the same general expansion SE note. This is expected behavior (e.g., all SAISD expansion opps use `wip/general saisd expansion.md`). + ## Common Gotchas - **Salesforce loads in an iframe**: The report content lives inside an iframe called "Report Viewer" (view mode) or "Report Builder" (edit mode). Snapshots and interactions must target elements within this iframe. - **Ephemeral UIDs**: Salesforce Lightning re-renders frequently. Element UIDs change between snapshots. Always take a fresh snapshot before clicking. - **Progressive loading**: The report builder shows "Previewing a limited number of records" while loading. Use `wait_for` with text like "Columns" or "Run" before interacting. +- **Lazy-loaded rows**: The report view only renders ~12 rows initially. Scroll the iframe body or click "Load more widgets" to see the rest. - **SSO session expiry**: If the session has expired, the page will redirect to Okta login. Ask the user to re-authenticate manually. - **Field tree is large**: The Opportunities object alone has 400+ fields. Use the "Search Fields" searchbox to find specific fields quickly rather than scrolling. - **"Run" vs "Save"**: Clicking "Run" re-runs the report with the new columns but does not persist the change to the report definition. Use "Save" if the column should be permanent. +- **General expansion wip files**: When no opportunity-specific wip file exists, check for a general expansion wip file linked from the account note. This is the catch-all SE note for all expansion opportunities under that account. +- **Wip files may not exist on disk**: Some wip files linked from account notes may have been deleted or never created. Check for the file before trying to read it.