Playbooks built by the world's best operations teams

Playbooks built by the world's best operations teams

Playbooks built by the world's best operations teams

Write the logic once in natural language. Console executes it across identity, access, devices, and more.

Write the logic once in natural language. Console executes it across identity, access, devices, and more.

Write the logic once in natural language.

Console executes it across identity, access, devices, and more.

All

IT

HR

Security

RevOps

Finance

Legal

30/60/90-Day Check-Ins

Playbooks

/

30/60/90-Day Check-Ins

30/60/90-Day Check-Ins

Created by

Console Team

Published

HR

Okta

Google Calendar

Google Docs

+8

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

When HR marks an employee as terminated in the HRIS system.

  1. #Custom Workday Query Hires for employees at exactly day 30, day 60, and day 90 from their start date.

  2. For each matching employee:

    • #Lookup Users with includeManager.

    • Resolve HRBP via custom Get HRBP for Department.

  3. Create the check-in calendar event:

    • #Custom Google Calendar Create Event for a 30-min check-in between employee, manager, and HRBP at the next available common slot within 7 days.

    • Title: "{{Day-30/60/90}} Check-in - {{employee.name}}".

  4. Pre-fill the agenda by pulling signals:

  5. Generate the agenda doc:

    • #Custom Generate Check-in Agenda writes a Google Doc with prefilled engagement signals, suggested questions, and free-text sections.

    • Attach the doc to the calendar event.

  6. Flag off-track signals:

    If engagement score dropped, login activity is low, or no goals set:

    • #Send Channel Message to #hrbp-alerts with: employee, day milestone, signal that's off, manager.

    • #Send Direct Message to the manager and HRBP with: calendar invite link, agenda doc link, the flagged signals (if any).

    • #Send Direct Message to the employee with: "You've got a {{day-X}} check-in coming up with {{manager}} and {{hrbp}}. Anything specific you want to discuss? Add to the agenda doc."

    • schedule_action wake 1 day after the check-in date to follow up: #Send Direct Message to manager + HRBP: "How did it go? Anything we should escalate or change?"

    • #Leave Internal Note in the employee's internal HR record.

30/60/90-Day Check-Ins

Playbooks

/

30/60/90-Day Check-Ins

30/60/90-Day Check-Ins

Created by

Console Team

Published

HR

Okta

Google Calendar

Google Docs

+8

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

When HR marks an employee as terminated in the HRIS system.

  1. #Custom Workday Query Hires for employees at exactly day 30, day 60, and day 90 from their start date.

  2. For each matching employee:

    • #Lookup Users with includeManager.

    • Resolve HRBP via custom Get HRBP for Department.

  3. Create the check-in calendar event:

    • #Custom Google Calendar Create Event for a 30-min check-in between employee, manager, and HRBP at the next available common slot within 7 days.

    • Title: "{{Day-30/60/90}} Check-in - {{employee.name}}".

  4. Pre-fill the agenda by pulling signals:

  5. Generate the agenda doc:

    • #Custom Generate Check-in Agenda writes a Google Doc with prefilled engagement signals, suggested questions, and free-text sections.

    • Attach the doc to the calendar event.

  6. Flag off-track signals:

    If engagement score dropped, login activity is low, or no goals set:

    • #Send Channel Message to #hrbp-alerts with: employee, day milestone, signal that's off, manager.

    • #Send Direct Message to the manager and HRBP with: calendar invite link, agenda doc link, the flagged signals (if any).

    • #Send Direct Message to the employee with: "You've got a {{day-X}} check-in coming up with {{manager}} and {{hrbp}}. Anything specific you want to discuss? Add to the agenda doc."

    • schedule_action wake 1 day after the check-in date to follow up: #Send Direct Message to manager + HRBP: "How did it go? Anything we should escalate or change?"

    • #Leave Internal Note in the employee's internal HR record.

30/60/90-Day Check-Ins

Playbooks

/

30/60/90-Day Check-Ins

30/60/90-Day Check-Ins

Created by

Console Team

Published

HR

Okta

Google Calendar

Google Docs

+8

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

When HR marks an employee as terminated in the HRIS system.

  1. #Custom Workday Query Hires for employees at exactly day 30, day 60, and day 90 from their start date.

  2. For each matching employee:

    • #Lookup Users with includeManager.

    • Resolve HRBP via custom Get HRBP for Department.

  3. Create the check-in calendar event:

    • #Custom Google Calendar Create Event for a 30-min check-in between employee, manager, and HRBP at the next available common slot within 7 days.

    • Title: "{{Day-30/60/90}} Check-in - {{employee.name}}".

  4. Pre-fill the agenda by pulling signals:

  5. Generate the agenda doc:

    • #Custom Generate Check-in Agenda writes a Google Doc with prefilled engagement signals, suggested questions, and free-text sections.

    • Attach the doc to the calendar event.

  6. Flag off-track signals:

    If engagement score dropped, login activity is low, or no goals set:

    • #Send Channel Message to #hrbp-alerts with: employee, day milestone, signal that's off, manager.

    • #Send Direct Message to the manager and HRBP with: calendar invite link, agenda doc link, the flagged signals (if any).

    • #Send Direct Message to the employee with: "You've got a {{day-X}} check-in coming up with {{manager}} and {{hrbp}}. Anything specific you want to discuss? Add to the agenda doc."

    • schedule_action wake 1 day after the check-in date to follow up: #Send Direct Message to manager + HRBP: "How did it go? Anything we should escalate or change?"

    • #Leave Internal Note in the employee's internal HR record.

Access Request

Playbooks

/

Access Request

Access Request

Created by

Console Team

Published

IT

Okta

AWS

DocuSign

+10

Trigger

Requester asks for access to a specific app, role, or entitlement (e.g. "give me access to DocuSign", "admin on Figma org", "add me to AWS prod role").

Instructions

  1. Parse the target app name and entitlement level (member / admin / specific role) from the request.

  2. #Lookup Apps with the parsed app name to confirm it exists in the catalog. If not found,

  3. #Send Direct Message to the requester asking them to clarify or use Web Research to find the app.

  4. #Lookup Users on the requester with includeManager and includeGroups.

  5. #Lookup Policies with the requester's user ID and the matched app.

  6. Check the policy:

    • If reviewStrategy == NO_REVIEW_REQUIRED and requester is eligible → proceed to step 7.

    • If reviewStrategy == APP_OWNERS → resolve app owner from the policy and route via #Request Approval.

    • If reviewStrategy == REQUESTERS_MANAGER → #Request Approval with the manager from step 3.

    • If reviewStrategy == EXPLICIT → #Request Approval with the listed approvers.

  7. If approval denied, #Send Direct Message to requester with the reason and #Resolve Request. Stop.

  8. Execute provisioning:

    • If the app uses Okta SSO with group-based access → #Add to Group (Okta) for the entitlement group from the policy.

    • If the app has a SCIM/native API → call the app-specific custom create-user or grant-role action.

    • If the policy specifies a custom provisioning action → invoke it with the entitlement metadata.

  9. #Send Direct Message to the requester confirming access is live, including the app URL and any first-login instructions.

  10. #Leave Internal Note on the request capturing the policy used and the action taken.

  11. #Resolve Request.

Access Request

Playbooks

/

Access Request

Access Request

Created by

Console Team

Published

IT

Okta

AWS

DocuSign

+10

Trigger

Requester asks for access to a specific app, role, or entitlement (e.g. "give me access to DocuSign", "admin on Figma org", "add me to AWS prod role").

Instructions

  1. Parse the target app name and entitlement level (member / admin / specific role) from the request.

  2. #Lookup Apps with the parsed app name to confirm it exists in the catalog. If not found,

  3. #Send Direct Message to the requester asking them to clarify or use Web Research to find the app.

  4. #Lookup Users on the requester with includeManager and includeGroups.

  5. #Lookup Policies with the requester's user ID and the matched app.

  6. Check the policy:

    • If reviewStrategy == NO_REVIEW_REQUIRED and requester is eligible → proceed to step 7.

    • If reviewStrategy == APP_OWNERS → resolve app owner from the policy and route via #Request Approval.

    • If reviewStrategy == REQUESTERS_MANAGER → #Request Approval with the manager from step 3.

    • If reviewStrategy == EXPLICIT → #Request Approval with the listed approvers.

  7. If approval denied, #Send Direct Message to requester with the reason and #Resolve Request. Stop.

  8. Execute provisioning:

    • If the app uses Okta SSO with group-based access → #Add to Group (Okta) for the entitlement group from the policy.

    • If the app has a SCIM/native API → call the app-specific custom create-user or grant-role action.

    • If the policy specifies a custom provisioning action → invoke it with the entitlement metadata.

  9. #Send Direct Message to the requester confirming access is live, including the app URL and any first-login instructions.

  10. #Leave Internal Note on the request capturing the policy used and the action taken.

  11. #Resolve Request.

Access Request

Playbooks

/

Access Request

Access Request

Created by

Console Team

Published

IT

Okta

AWS

DocuSign

+10

Trigger

Requester asks for access to a specific app, role, or entitlement (e.g. "give me access to DocuSign", "admin on Figma org", "add me to AWS prod role").

Instructions

  1. Parse the target app name and entitlement level (member / admin / specific role) from the request.

  2. #Lookup Apps with the parsed app name to confirm it exists in the catalog. If not found,

  3. #Send Direct Message to the requester asking them to clarify or use Web Research to find the app.

  4. #Lookup Users on the requester with includeManager and includeGroups.

  5. #Lookup Policies with the requester's user ID and the matched app.

  6. Check the policy:

    • If reviewStrategy == NO_REVIEW_REQUIRED and requester is eligible → proceed to step 7.

    • If reviewStrategy == APP_OWNERS → resolve app owner from the policy and route via #Request Approval.

    • If reviewStrategy == REQUESTERS_MANAGER → #Request Approval with the manager from step 3.

    • If reviewStrategy == EXPLICIT → #Request Approval with the listed approvers.

  7. If approval denied, #Send Direct Message to requester with the reason and #Resolve Request. Stop.

  8. Execute provisioning:

    • If the app uses Okta SSO with group-based access → #Add to Group (Okta) for the entitlement group from the policy.

    • If the app has a SCIM/native API → call the app-specific custom create-user or grant-role action.

    • If the policy specifies a custom provisioning action → invoke it with the entitlement metadata.

  9. #Send Direct Message to the requester confirming access is live, including the app URL and any first-login instructions.

  10. #Leave Internal Note on the request capturing the policy used and the action taken.

  11. #Resolve Request.

Account & Contact Dedupe

Playbooks

/

Account & Contact Dedupe

Account & Contact Dedupe

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Apollo

+12

Trigger

New account/contact being created (request-triggered) OR webhook on hubspot.contact.creation / salesforce.account.created.

Instructions

  1. Parse the new record details:

    • Name, domain, email, phone, location, owner.

  2. Run internal dedupe:

  3. Run external enrichment dedupe:

  4. Compute similarity scores:

    • Domain match → 100%.

    • Exact name + same country → 95%.

    • Fuzzy name (Levenshtein <3) + same domain → 90%.

    • Phone match → 85%.

    • Else use weighted attributes.

  5. Branch on scores:

    • No match (<70%) → proceed with create; just enrich the new record.

    • Likely match (70-89%) → present options.

    • High-confidence match (≥90%) → block creation; suggest merge.

  6. For matches (70%+):

    • #Lookup Users on the requester (or record owner if webhook-triggered).

    • #Send Direct Message with the candidate matches: "Found {{N}} possible duplicates for {{name}}. Review?"

    • Include a #Trigger Form with options per candidate: "Merge into this one" / "Different company" / "Create anyway".

  7. On response:

    • Merge → custom HubSpot Merge Companies (or Salesforce Merge Accounts) with the chosen master.

    • Different / Create anyway → proceed with creation. Capture justification in a deal note.

  8. Enrichment regardless of path:

  9. #Send Direct Message confirming the action taken.

  10. #Send Channel Message to #revops-data weekly summary of duplicates prevented.

  11. #Leave Internal Note capturing the decision.

  12. #Resolve Request.

Account & Contact Dedupe

Playbooks

/

Account & Contact Dedupe

Account & Contact Dedupe

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Apollo

+12

Trigger

New account/contact being created (request-triggered) OR webhook on hubspot.contact.creation / salesforce.account.created.

Instructions

  1. Parse the new record details:

    • Name, domain, email, phone, location, owner.

  2. Run internal dedupe:

  3. Run external enrichment dedupe:

  4. Compute similarity scores:

    • Domain match → 100%.

    • Exact name + same country → 95%.

    • Fuzzy name (Levenshtein <3) + same domain → 90%.

    • Phone match → 85%.

    • Else use weighted attributes.

  5. Branch on scores:

    • No match (<70%) → proceed with create; just enrich the new record.

    • Likely match (70-89%) → present options.

    • High-confidence match (≥90%) → block creation; suggest merge.

  6. For matches (70%+):

    • #Lookup Users on the requester (or record owner if webhook-triggered).

    • #Send Direct Message with the candidate matches: "Found {{N}} possible duplicates for {{name}}. Review?"

    • Include a #Trigger Form with options per candidate: "Merge into this one" / "Different company" / "Create anyway".

  7. On response:

    • Merge → custom HubSpot Merge Companies (or Salesforce Merge Accounts) with the chosen master.

    • Different / Create anyway → proceed with creation. Capture justification in a deal note.

  8. Enrichment regardless of path:

  9. #Send Direct Message confirming the action taken.

  10. #Send Channel Message to #revops-data weekly summary of duplicates prevented.

  11. #Leave Internal Note capturing the decision.

  12. #Resolve Request.

Account & Contact Dedupe

Playbooks

/

Account & Contact Dedupe

Account & Contact Dedupe

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Apollo

+12

Trigger

New account/contact being created (request-triggered) OR webhook on hubspot.contact.creation / salesforce.account.created.

Instructions

  1. Parse the new record details:

    • Name, domain, email, phone, location, owner.

  2. Run internal dedupe:

  3. Run external enrichment dedupe:

  4. Compute similarity scores:

    • Domain match → 100%.

    • Exact name + same country → 95%.

    • Fuzzy name (Levenshtein <3) + same domain → 90%.

    • Phone match → 85%.

    • Else use weighted attributes.

  5. Branch on scores:

    • No match (<70%) → proceed with create; just enrich the new record.

    • Likely match (70-89%) → present options.

    • High-confidence match (≥90%) → block creation; suggest merge.

  6. For matches (70%+):

    • #Lookup Users on the requester (or record owner if webhook-triggered).

    • #Send Direct Message with the candidate matches: "Found {{N}} possible duplicates for {{name}}. Review?"

    • Include a #Trigger Form with options per candidate: "Merge into this one" / "Different company" / "Create anyway".

  7. On response:

    • Merge → custom HubSpot Merge Companies (or Salesforce Merge Accounts) with the chosen master.

    • Different / Create anyway → proceed with creation. Capture justification in a deal note.

  8. Enrichment regardless of path:

  9. #Send Direct Message confirming the action taken.

  10. #Send Channel Message to #revops-data weekly summary of duplicates prevented.

  11. #Leave Internal Note capturing the decision.

  12. #Resolve Request.

Account Research Brief

Playbooks

/

Account Research Brief

Account Research Brief

Created by

Console Team

Published

RevOps

Gong

HubSpot

ZoomInfo

+5

Trigger

Requester asks for an account one-pager ("pull firmographics + champion + meeting notes + product usage for Acme").

Instructions

  1. Parse the target account name and the scope of the brief (firmographics / champion / meetings / usage / news / all).

  2. Resolve the account:

  3. Pull data in parallel:

  4. Identify the champion:

    • From the contact list, sort by:

      • Engagement score (Gong talk time + email opens + meetings).

      • Title weight (VP/Director > Manager > IC).

      • Recent activity recency.

    • Top result = champion candidate.

  5. Compose the brief:

    • Company snapshot: industry, size, HQ, revenue, tech stack.

    • Champion: name, title, contact info, recent engagement summary.

    • Other key contacts: list with titles.

    • Recent meetings (last 5): date, attendees, AI summary.

    • Product usage (if customer): MAU/WAU, key features used, trend.

    • Recent news: 3-5 bullets.

    • Open opportunities: list with stage, amount, close date.

  6. Format as a Slack message with sections + a Google Doc link for the full version.

  7. #Send Direct Message with the brief and doc link.

  8. Offer follow-up: "Want to set up a call with {{champion}}?" or "Want me to enrich the contact list further?"

  9. #Leave Internal Note capturing the brief generation.

  10. #Resolve Request.

Account Research Brief

Playbooks

/

Account Research Brief

Account Research Brief

Created by

Console Team

Published

RevOps

Gong

HubSpot

ZoomInfo

+5

Trigger

Requester asks for an account one-pager ("pull firmographics + champion + meeting notes + product usage for Acme").

Instructions

  1. Parse the target account name and the scope of the brief (firmographics / champion / meetings / usage / news / all).

  2. Resolve the account:

  3. Pull data in parallel:

  4. Identify the champion:

    • From the contact list, sort by:

      • Engagement score (Gong talk time + email opens + meetings).

      • Title weight (VP/Director > Manager > IC).

      • Recent activity recency.

    • Top result = champion candidate.

  5. Compose the brief:

    • Company snapshot: industry, size, HQ, revenue, tech stack.

    • Champion: name, title, contact info, recent engagement summary.

    • Other key contacts: list with titles.

    • Recent meetings (last 5): date, attendees, AI summary.

    • Product usage (if customer): MAU/WAU, key features used, trend.

    • Recent news: 3-5 bullets.

    • Open opportunities: list with stage, amount, close date.

  6. Format as a Slack message with sections + a Google Doc link for the full version.

  7. #Send Direct Message with the brief and doc link.

  8. Offer follow-up: "Want to set up a call with {{champion}}?" or "Want me to enrich the contact list further?"

  9. #Leave Internal Note capturing the brief generation.

  10. #Resolve Request.

Account Research Brief

Playbooks

/

Account Research Brief

Account Research Brief

Created by

Console Team

Published

RevOps

Gong

HubSpot

ZoomInfo

+5

Trigger

Requester asks for an account one-pager ("pull firmographics + champion + meeting notes + product usage for Acme").

Instructions

  1. Parse the target account name and the scope of the brief (firmographics / champion / meetings / usage / news / all).

  2. Resolve the account:

  3. Pull data in parallel:

  4. Identify the champion:

    • From the contact list, sort by:

      • Engagement score (Gong talk time + email opens + meetings).

      • Title weight (VP/Director > Manager > IC).

      • Recent activity recency.

    • Top result = champion candidate.

  5. Compose the brief:

    • Company snapshot: industry, size, HQ, revenue, tech stack.

    • Champion: name, title, contact info, recent engagement summary.

    • Other key contacts: list with titles.

    • Recent meetings (last 5): date, attendees, AI summary.

    • Product usage (if customer): MAU/WAU, key features used, trend.

    • Recent news: 3-5 bullets.

    • Open opportunities: list with stage, amount, close date.

  6. Format as a Slack message with sections + a Google Doc link for the full version.

  7. #Send Direct Message with the brief and doc link.

  8. Offer follow-up: "Want to set up a call with {{champion}}?" or "Want me to enrich the contact list further?"

  9. #Leave Internal Note capturing the brief generation.

  10. #Resolve Request.

Address & Name Change

Playbooks

/

Address & Name Change

Address & Name Change

Created by

Console Team

Published

HR

Okta

Slack

Workday

+2

Trigger

Requester asks to update their legal name (post-marriage, post-correction) or address.

Instructions

Requester asks to update their legal name (post-marriage, post-correction) or address.

​ Parse the change type (legal name / preferred name / address / both).

​ #Lookup Users on the requester.

​ #Trigger Form to collect:

​ For legal name change: new legal first/middle/last, documentation (marriage cert /

court order upload).

​ For address: new street, city, state, zip, country, effective date.

​ Whether to also update preferred name (yes/no).

​ Reason (helps with audit trail).

​ Validate the documentation:

​ For legal name change → custom Validate Name Change Docs (HR review

required for first-pass).

​ #Request Approval from HRBP for legal name change.

​ Execute changes on effective date (use schedule_action if future):

​ Custom Workday Update Worker with new fields.

​ #Update Okta User Profile (Custom) to update name fields, login email if

name-based.

​ For legal name change with new login email:

​ #Create User Alias (Google) for the old email to forward to the new.

​ Custom Update Slack Display Name.

​ Custom Update GitHub User Name (if applicable).

​ Custom Update Badge System Name.

​ For address change:

​ Custom Workday Trigger Payroll Tax Recalc.

​ Custom Update Badge System Address.

​ Custom Update Shipping Address in asset DB for any future device

shipments.

​ #Send Direct Message to the requester with a checklist of what changed where, and what

they need to do themselves (e.g. "Update your I-9, update your Slack avatar, update your

title at events").

​ #Send Channel Message to #org-changes for the legal name change announcement

(only if requester opts in).

​ #Leave Internal Note capturing the change, documentation, approval trail.

​ #Resolve Request.

Address & Name Change

Playbooks

/

Address & Name Change

Address & Name Change

Created by

Console Team

Published

HR

Okta

Slack

Workday

+2

Trigger

Requester asks to update their legal name (post-marriage, post-correction) or address.

Instructions

Requester asks to update their legal name (post-marriage, post-correction) or address.

​ Parse the change type (legal name / preferred name / address / both).

​ #Lookup Users on the requester.

​ #Trigger Form to collect:

​ For legal name change: new legal first/middle/last, documentation (marriage cert /

court order upload).

​ For address: new street, city, state, zip, country, effective date.

​ Whether to also update preferred name (yes/no).

​ Reason (helps with audit trail).

​ Validate the documentation:

​ For legal name change → custom Validate Name Change Docs (HR review

required for first-pass).

​ #Request Approval from HRBP for legal name change.

​ Execute changes on effective date (use schedule_action if future):

​ Custom Workday Update Worker with new fields.

​ #Update Okta User Profile (Custom) to update name fields, login email if

name-based.

​ For legal name change with new login email:

​ #Create User Alias (Google) for the old email to forward to the new.

​ Custom Update Slack Display Name.

​ Custom Update GitHub User Name (if applicable).

​ Custom Update Badge System Name.

​ For address change:

​ Custom Workday Trigger Payroll Tax Recalc.

​ Custom Update Badge System Address.

​ Custom Update Shipping Address in asset DB for any future device

shipments.

​ #Send Direct Message to the requester with a checklist of what changed where, and what

they need to do themselves (e.g. "Update your I-9, update your Slack avatar, update your

title at events").

​ #Send Channel Message to #org-changes for the legal name change announcement

(only if requester opts in).

​ #Leave Internal Note capturing the change, documentation, approval trail.

​ #Resolve Request.

Address & Name Change

Playbooks

/

Address & Name Change

Address & Name Change

Created by

Console Team

Published

HR

Okta

Slack

Workday

+2

Trigger

Requester asks to update their legal name (post-marriage, post-correction) or address.

Instructions

Requester asks to update their legal name (post-marriage, post-correction) or address.

​ Parse the change type (legal name / preferred name / address / both).

​ #Lookup Users on the requester.

​ #Trigger Form to collect:

​ For legal name change: new legal first/middle/last, documentation (marriage cert /

court order upload).

​ For address: new street, city, state, zip, country, effective date.

​ Whether to also update preferred name (yes/no).

​ Reason (helps with audit trail).

​ Validate the documentation:

​ For legal name change → custom Validate Name Change Docs (HR review

required for first-pass).

​ #Request Approval from HRBP for legal name change.

​ Execute changes on effective date (use schedule_action if future):

​ Custom Workday Update Worker with new fields.

​ #Update Okta User Profile (Custom) to update name fields, login email if

name-based.

​ For legal name change with new login email:

​ #Create User Alias (Google) for the old email to forward to the new.

​ Custom Update Slack Display Name.

​ Custom Update GitHub User Name (if applicable).

​ Custom Update Badge System Name.

​ For address change:

​ Custom Workday Trigger Payroll Tax Recalc.

​ Custom Update Badge System Address.

​ Custom Update Shipping Address in asset DB for any future device

shipments.

​ #Send Direct Message to the requester with a checklist of what changed where, and what

they need to do themselves (e.g. "Update your I-9, update your Slack avatar, update your

title at events").

​ #Send Channel Message to #org-changes for the legal name change announcement

(only if requester opts in).

​ #Leave Internal Note capturing the change, documentation, approval trail.

​ #Resolve Request.

Anomalous Login

Playbooks

/

Anomalous Login

Anomalous Login

Created by

Console Team

Published

Security

Okta

CrowdStrike

Vanta

+5

Trigger

Okta Event Hook — user.session.start with risk signals (impossible-travel, new-device, suspicious-IP)

Instructions

  1. #Lookup Users on $event.userEmail with includeManager, includeGroups.

  2. Filter false positives:

  3. Pull context:

  4. Compute risk:

    • Impossible travel (distance > N km / time delta) → High.

    • New device + new country → High.

    • New IP from known country → Medium.

    • Just risk-flagged but recognizable → Low.

  5. Branch on risk:

    1. High:

    2. Medium:

    3. Low → just log, no user prompt.

  6. On wake, check response:

    1. Yes → log as confirmed, no further action.

    2. No OR no response:

  7. #Custom Vanta Log Anomalous Login for audit.

  8. #Leave Internal Note capturing risk score, response, outcome.

Anomalous Login

Playbooks

/

Anomalous Login

Anomalous Login

Created by

Console Team

Published

Security

Okta

CrowdStrike

Vanta

+5

Trigger

Okta Event Hook — user.session.start with risk signals (impossible-travel, new-device, suspicious-IP)

Instructions

  1. #Lookup Users on $event.userEmail with includeManager, includeGroups.

  2. Filter false positives:

  3. Pull context:

  4. Compute risk:

    • Impossible travel (distance > N km / time delta) → High.

    • New device + new country → High.

    • New IP from known country → Medium.

    • Just risk-flagged but recognizable → Low.

  5. Branch on risk:

    1. High:

    2. Medium:

    3. Low → just log, no user prompt.

  6. On wake, check response:

    1. Yes → log as confirmed, no further action.

    2. No OR no response:

  7. #Custom Vanta Log Anomalous Login for audit.

  8. #Leave Internal Note capturing risk score, response, outcome.

Anomalous Login

Playbooks

/

Anomalous Login

Anomalous Login

Created by

Console Team

Published

Security

Okta

CrowdStrike

Vanta

+5

Trigger

Okta Event Hook — user.session.start with risk signals (impossible-travel, new-device, suspicious-IP)

Instructions

  1. #Lookup Users on $event.userEmail with includeManager, includeGroups.

  2. Filter false positives:

  3. Pull context:

  4. Compute risk:

    • Impossible travel (distance > N km / time delta) → High.

    • New device + new country → High.

    • New IP from known country → Medium.

    • Just risk-flagged but recognizable → Low.

  5. Branch on risk:

    1. High:

    2. Medium:

    3. Low → just log, no user prompt.

  6. On wake, check response:

    1. Yes → log as confirmed, no further action.

    2. No OR no response:

  7. #Custom Vanta Log Anomalous Login for audit.

  8. #Leave Internal Note capturing risk score, response, outcome.

App Registration & SSO Setup

Playbooks

/

App Registration & SSO Setup

App Registration & SSO Setup

Created by

Console Team

Published

IT

Okta

1Password

Linear

+2

Trigger

IT or admin requests onboarding a new SaaS app with SSO ("we want to onboard Linear company-wide", "set up SSO for the new Highspot tenant").

Instructions

  1. #Trigger Form to collect:

    • App name and vendor URL

    • SSO protocol (SAML 2.0 / OIDC)

    • For SAML: ACS URL, entity ID, name ID format, certificate

    • For OIDC: redirect URI, scopes needed

    • SCIM endpoint + bearer token (if available)

    • Default user groups to provision (eng / product / design / all-company)

  2. #Lookup Apps to confirm the app isn't already onboarded. If it exists, ask the requester whether to modify or reject.

  3. #Request Approval from the security team for the new vendor (chain to Sec-18 if not already approved).

  4. Create the Okta app:

    • For SAML → custom Okta Create SAML App with ACS URL, entity ID, attributes mapping.

    • For OIDC → custom Okta Create OIDC App with redirect URI and scopes.

  5. #Create Okta Group (Custom) for default access: {{app-slug}}-users and {{app-slug}}-admins.

  6. #Add to Group to assign the requester to {{app-slug}}-admins.

  7. For each requested default group (eng/product/design/all-company): custom Okta Assign

  8. Group to App to grant baseline access.

  9. If SCIM endpoint provided: custom Okta Configure SCIM with the endpoint + token, then #Update 1Password App Username Template to set the username convention.

  10. Generate test credentials via custom Okta Create Test User and Assign action.

  11. #Send Direct Message to the requester with SSO sign-in URL, test creds, SCIM status, next steps.

  12. #Create Linear Issue in the IT project for follow-up tasks: app catalog entry, access policy creation, KB doc.

  13. #Leave Internal Note capturing the protocol, ACS URL, and groups configured.

  14. #Resolve Request.

App Registration & SSO Setup

Playbooks

/

App Registration & SSO Setup

App Registration & SSO Setup

Created by

Console Team

Published

IT

Okta

1Password

Linear

+2

Trigger

IT or admin requests onboarding a new SaaS app with SSO ("we want to onboard Linear company-wide", "set up SSO for the new Highspot tenant").

Instructions

  1. #Trigger Form to collect:

    • App name and vendor URL

    • SSO protocol (SAML 2.0 / OIDC)

    • For SAML: ACS URL, entity ID, name ID format, certificate

    • For OIDC: redirect URI, scopes needed

    • SCIM endpoint + bearer token (if available)

    • Default user groups to provision (eng / product / design / all-company)

  2. #Lookup Apps to confirm the app isn't already onboarded. If it exists, ask the requester whether to modify or reject.

  3. #Request Approval from the security team for the new vendor (chain to Sec-18 if not already approved).

  4. Create the Okta app:

    • For SAML → custom Okta Create SAML App with ACS URL, entity ID, attributes mapping.

    • For OIDC → custom Okta Create OIDC App with redirect URI and scopes.

  5. #Create Okta Group (Custom) for default access: {{app-slug}}-users and {{app-slug}}-admins.

  6. #Add to Group to assign the requester to {{app-slug}}-admins.

  7. For each requested default group (eng/product/design/all-company): custom Okta Assign

  8. Group to App to grant baseline access.

  9. If SCIM endpoint provided: custom Okta Configure SCIM with the endpoint + token, then #Update 1Password App Username Template to set the username convention.

  10. Generate test credentials via custom Okta Create Test User and Assign action.

  11. #Send Direct Message to the requester with SSO sign-in URL, test creds, SCIM status, next steps.

  12. #Create Linear Issue in the IT project for follow-up tasks: app catalog entry, access policy creation, KB doc.

  13. #Leave Internal Note capturing the protocol, ACS URL, and groups configured.

  14. #Resolve Request.

App Registration & SSO Setup

Playbooks

/

App Registration & SSO Setup

App Registration & SSO Setup

Created by

Console Team

Published

IT

Okta

1Password

Linear

+2

Trigger

IT or admin requests onboarding a new SaaS app with SSO ("we want to onboard Linear company-wide", "set up SSO for the new Highspot tenant").

Instructions

  1. #Trigger Form to collect:

    • App name and vendor URL

    • SSO protocol (SAML 2.0 / OIDC)

    • For SAML: ACS URL, entity ID, name ID format, certificate

    • For OIDC: redirect URI, scopes needed

    • SCIM endpoint + bearer token (if available)

    • Default user groups to provision (eng / product / design / all-company)

  2. #Lookup Apps to confirm the app isn't already onboarded. If it exists, ask the requester whether to modify or reject.

  3. #Request Approval from the security team for the new vendor (chain to Sec-18 if not already approved).

  4. Create the Okta app:

    • For SAML → custom Okta Create SAML App with ACS URL, entity ID, attributes mapping.

    • For OIDC → custom Okta Create OIDC App with redirect URI and scopes.

  5. #Create Okta Group (Custom) for default access: {{app-slug}}-users and {{app-slug}}-admins.

  6. #Add to Group to assign the requester to {{app-slug}}-admins.

  7. For each requested default group (eng/product/design/all-company): custom Okta Assign

  8. Group to App to grant baseline access.

  9. If SCIM endpoint provided: custom Okta Configure SCIM with the endpoint + token, then #Update 1Password App Username Template to set the username convention.

  10. Generate test credentials via custom Okta Create Test User and Assign action.

  11. #Send Direct Message to the requester with SSO sign-in URL, test creds, SCIM status, next steps.

  12. #Create Linear Issue in the IT project for follow-up tasks: app catalog entry, access policy creation, KB doc.

  13. #Leave Internal Note capturing the protocol, ACS URL, and groups configured.

  14. #Resolve Request.

AR Aging & Collections

Playbooks

/

AR Aging & Collections

AR Aging & Collections

Created by

Console Team

Published

Finance

HubSpot

NetSuite

+5

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Custom NetSuite Get Open AR with aging buckets.

  2. For each open invoice:

  3. Branch by bucket:

  4. Aggregate by customer; multiple overdue → treat at worst bucket.

  5. Weekly AR digest to #finance-ar.

  6. Monthly bad debt review to #finance-leads.

  7. #Leave Internal Note.

AR Aging & Collections

Playbooks

/

AR Aging & Collections

AR Aging & Collections

Created by

Console Team

Published

Finance

HubSpot

NetSuite

+5

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Custom NetSuite Get Open AR with aging buckets.

  2. For each open invoice:

  3. Branch by bucket:

  4. Aggregate by customer; multiple overdue → treat at worst bucket.

  5. Weekly AR digest to #finance-ar.

  6. Monthly bad debt review to #finance-leads.

  7. #Leave Internal Note.

AR Aging & Collections

Playbooks

/

AR Aging & Collections

AR Aging & Collections

Created by

Console Team

Published

Finance

HubSpot

NetSuite

+5

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Custom NetSuite Get Open AR with aging buckets.

  2. For each open invoice:

  3. Branch by bucket:

  4. Aggregate by customer; multiple overdue → treat at worst bucket.

  5. Weekly AR digest to #finance-ar.

  6. Monthly bad debt review to #finance-leads.

  7. #Leave Internal Note.

Asset / Inventory Sync

Playbooks

/

Asset / Inventory Sync

Asset / Inventory Sync

Created by

Console Team

Published

IT

Kandji

Jira

Linear

+2

Trigger

Scheduled — daily incremental diff at 6:00 AM, full reconciliation quarterly on the 1st at 6:00 AM

Instructions

  1. Pull all data sources in parallel:

  2. Build a unified view by serial number and assigned user.

  3. Compute mismatches:

    • Lost-not-recovered: marked lost in any system but still active elsewhere.

    • Retired-but-active: marked retired in asset register but checking in to Kandji/Intune.

    • Employee-without-device: active employee in HR but no device assigned.

    • Device-without-owner: active device but unassigned or owner is offboarded.

    • Owner-mismatch: different owner in Kandji vs Jira Assets.

  4. For each mismatch:

    • Determine the asset owner (IT team member responsible).

    • #Send Direct Message to the asset owner with the mismatch, proposed fix, and a

    • #Trigger Form to approve / modify / dismiss.

  5. schedule_action wake at 7 days for each mismatch to check resolution.

  6. On wake: if mismatch still exists, #Create Linear Issue for IT to resolve.

  7. After full daily reconciliation:

  8. Quarterly run also produces a Linear summary issue with trend data via #Run Query.

Asset / Inventory Sync

Playbooks

/

Asset / Inventory Sync

Asset / Inventory Sync

Created by

Console Team

Published

IT

Kandji

Jira

Linear

+2

Trigger

Scheduled — daily incremental diff at 6:00 AM, full reconciliation quarterly on the 1st at 6:00 AM

Instructions

  1. Pull all data sources in parallel:

  2. Build a unified view by serial number and assigned user.

  3. Compute mismatches:

    • Lost-not-recovered: marked lost in any system but still active elsewhere.

    • Retired-but-active: marked retired in asset register but checking in to Kandji/Intune.

    • Employee-without-device: active employee in HR but no device assigned.

    • Device-without-owner: active device but unassigned or owner is offboarded.

    • Owner-mismatch: different owner in Kandji vs Jira Assets.

  4. For each mismatch:

    • Determine the asset owner (IT team member responsible).

    • #Send Direct Message to the asset owner with the mismatch, proposed fix, and a

    • #Trigger Form to approve / modify / dismiss.

  5. schedule_action wake at 7 days for each mismatch to check resolution.

  6. On wake: if mismatch still exists, #Create Linear Issue for IT to resolve.

  7. After full daily reconciliation:

  8. Quarterly run also produces a Linear summary issue with trend data via #Run Query.

Asset / Inventory Sync

Playbooks

/

Asset / Inventory Sync

Asset / Inventory Sync

Created by

Console Team

Published

IT

Kandji

Jira

Linear

+2

Trigger

Scheduled — daily incremental diff at 6:00 AM, full reconciliation quarterly on the 1st at 6:00 AM

Instructions

  1. Pull all data sources in parallel:

  2. Build a unified view by serial number and assigned user.

  3. Compute mismatches:

    • Lost-not-recovered: marked lost in any system but still active elsewhere.

    • Retired-but-active: marked retired in asset register but checking in to Kandji/Intune.

    • Employee-without-device: active employee in HR but no device assigned.

    • Device-without-owner: active device but unassigned or owner is offboarded.

    • Owner-mismatch: different owner in Kandji vs Jira Assets.

  4. For each mismatch:

    • Determine the asset owner (IT team member responsible).

    • #Send Direct Message to the asset owner with the mismatch, proposed fix, and a

    • #Trigger Form to approve / modify / dismiss.

  5. schedule_action wake at 7 days for each mismatch to check resolution.

  6. On wake: if mismatch still exists, #Create Linear Issue for IT to resolve.

  7. After full daily reconciliation:

  8. Quarterly run also produces a Linear summary issue with trend data via #Run Query.

AVD Assignment

Playbooks

/

AVD Assignment

AVD Assignment

Created by

Console Team

Published

IT

Azure DevOps

Entrata

+2

Trigger

Contractor in a restricted country or BYOD user needs an Azure Virtual Desktop session.

Instructions

  1. #Lookup Users on the requester with includeManager and includeGroups.

  2. #Search Graph in the custom HR/contractor ingest to find the engagement end-date.

  3. #Trigger Form to collect:

    1. Role-based image needed (eng tools / design tools / GTM tools)

    2. Country of access

    3. Engagement duration (auto-fill from HR ingest if available)

  4. #Request Approval from the requester's engagement owner.

  5. On approval, provision the AVD:

    1. Custom Azure AVD Create Host Pool Assignment with image template and user UPN.

    2. Custom Entra Assign User to AVD App scoped to this user only.

    3. Custom Entra Set Conditional Access restricting sign-in to the engagement country.

  6. Time-box the access:

​ schedule_action wake on the engagement end-date to call custom Azure AVD

Remove Assignment and Entra Revoke AVD App Access.

​ #Send Direct Message to the requester with AVD connection URL, sign-in credentials,

expiry date, support path.

​ #Send Channel Message to #it-contractor-access logging the provision.

​ #Leave Internal Note capturing image, country, end-date.

​ #Resolve Request.

AVD Assignment

Playbooks

/

AVD Assignment

AVD Assignment

Created by

Console Team

Published

IT

Azure DevOps

Entrata

+2

Trigger

Contractor in a restricted country or BYOD user needs an Azure Virtual Desktop session.

Instructions

  1. #Lookup Users on the requester with includeManager and includeGroups.

  2. #Search Graph in the custom HR/contractor ingest to find the engagement end-date.

  3. #Trigger Form to collect:

    1. Role-based image needed (eng tools / design tools / GTM tools)

    2. Country of access

    3. Engagement duration (auto-fill from HR ingest if available)

  4. #Request Approval from the requester's engagement owner.

  5. On approval, provision the AVD:

    1. Custom Azure AVD Create Host Pool Assignment with image template and user UPN.

    2. Custom Entra Assign User to AVD App scoped to this user only.

    3. Custom Entra Set Conditional Access restricting sign-in to the engagement country.

  6. Time-box the access:

​ schedule_action wake on the engagement end-date to call custom Azure AVD

Remove Assignment and Entra Revoke AVD App Access.

​ #Send Direct Message to the requester with AVD connection URL, sign-in credentials,

expiry date, support path.

​ #Send Channel Message to #it-contractor-access logging the provision.

​ #Leave Internal Note capturing image, country, end-date.

​ #Resolve Request.

AVD Assignment

Playbooks

/

AVD Assignment

AVD Assignment

Created by

Console Team

Published

IT

Azure DevOps

Entrata

+2

Trigger

Contractor in a restricted country or BYOD user needs an Azure Virtual Desktop session.

Instructions

  1. #Lookup Users on the requester with includeManager and includeGroups.

  2. #Search Graph in the custom HR/contractor ingest to find the engagement end-date.

  3. #Trigger Form to collect:

    1. Role-based image needed (eng tools / design tools / GTM tools)

    2. Country of access

    3. Engagement duration (auto-fill from HR ingest if available)

  4. #Request Approval from the requester's engagement owner.

  5. On approval, provision the AVD:

    1. Custom Azure AVD Create Host Pool Assignment with image template and user UPN.

    2. Custom Entra Assign User to AVD App scoped to this user only.

    3. Custom Entra Set Conditional Access restricting sign-in to the engagement country.

  6. Time-box the access:

​ schedule_action wake on the engagement end-date to call custom Azure AVD

Remove Assignment and Entra Revoke AVD App Access.

​ #Send Direct Message to the requester with AVD connection URL, sign-in credentials,

expiry date, support path.

​ #Send Channel Message to #it-contractor-access logging the provision.

​ #Leave Internal Note capturing image, country, end-date.

​ #Resolve Request.

Bill Payment Approval

Playbooks

/

Bill Payment Approval

Bill Payment Approval

Created by

Console Team

Published

Finance

Workday

NetSuite

Bill

+5

Trigger

Webhook — Bill.com bill.created or bill.submitted Variables: $bill.id, $bill.vendorId, $bill.amount, $bill.dueDate, $bill.glAccount

Instructions

  1. #Custom Bill.com Get Bill Details.

  2. #Custom NetSuite Lookup Vendor to confirm active.

  3. #Custom Coupa Find Matching PO by vendor + amount + line items.

  4. Validation:

    • PO exists for amounts above $X.

    • Amount matches PO within tolerance (±5% or $100).

    • GL coding valid for cost center.

    • Vendor not on payment hold.

    • Failures → #Send Channel Message to #ap-review and pause.

  5. Approval tier:

    • <$5k → AP clerk.

    • $5k–$25k → controller.

    • $25k–$100k → controller + CFO.

    • >$100k → controller + CFO + CEO.

  6. Resolve approvers (custom Get AP Clerk On Duty / Get Controller / Get CFO, cost-center owner via Workday).

  7. #Request Approval chained per tier with: bill detail, PO match, GL coding, vendor history, terms, due-date proximity.

  8. On full approval:

  9. Rejection / query → #Send Channel Message to #ap-review and DM PO owner.

  10. #Send Channel Message to #ap-log.

  11. #Leave Internal Note.

Bill Payment Approval

Playbooks

/

Bill Payment Approval

Bill Payment Approval

Created by

Console Team

Published

Finance

Workday

NetSuite

Bill

+5

Trigger

Webhook — Bill.com bill.created or bill.submitted Variables: $bill.id, $bill.vendorId, $bill.amount, $bill.dueDate, $bill.glAccount

Instructions

  1. #Custom Bill.com Get Bill Details.

  2. #Custom NetSuite Lookup Vendor to confirm active.

  3. #Custom Coupa Find Matching PO by vendor + amount + line items.

  4. Validation:

    • PO exists for amounts above $X.

    • Amount matches PO within tolerance (±5% or $100).

    • GL coding valid for cost center.

    • Vendor not on payment hold.

    • Failures → #Send Channel Message to #ap-review and pause.

  5. Approval tier:

    • <$5k → AP clerk.

    • $5k–$25k → controller.

    • $25k–$100k → controller + CFO.

    • >$100k → controller + CFO + CEO.

  6. Resolve approvers (custom Get AP Clerk On Duty / Get Controller / Get CFO, cost-center owner via Workday).

  7. #Request Approval chained per tier with: bill detail, PO match, GL coding, vendor history, terms, due-date proximity.

  8. On full approval:

  9. Rejection / query → #Send Channel Message to #ap-review and DM PO owner.

  10. #Send Channel Message to #ap-log.

  11. #Leave Internal Note.

Bill Payment Approval

Playbooks

/

Bill Payment Approval

Bill Payment Approval

Created by

Console Team

Published

Finance

Workday

NetSuite

Bill

+5

Trigger

Webhook — Bill.com bill.created or bill.submitted Variables: $bill.id, $bill.vendorId, $bill.amount, $bill.dueDate, $bill.glAccount

Instructions

  1. #Custom Bill.com Get Bill Details.

  2. #Custom NetSuite Lookup Vendor to confirm active.

  3. #Custom Coupa Find Matching PO by vendor + amount + line items.

  4. Validation:

    • PO exists for amounts above $X.

    • Amount matches PO within tolerance (±5% or $100).

    • GL coding valid for cost center.

    • Vendor not on payment hold.

    • Failures → #Send Channel Message to #ap-review and pause.

  5. Approval tier:

    • <$5k → AP clerk.

    • $5k–$25k → controller.

    • $25k–$100k → controller + CFO.

    • >$100k → controller + CFO + CEO.

  6. Resolve approvers (custom Get AP Clerk On Duty / Get Controller / Get CFO, cost-center owner via Workday).

  7. #Request Approval chained per tier with: bill detail, PO match, GL coding, vendor history, terms, due-date proximity.

  8. On full approval:

  9. Rejection / query → #Send Channel Message to #ap-review and DM PO owner.

  10. #Send Channel Message to #ap-log.

  11. #Leave Internal Note.

Call Recording Lookup

Playbooks

/

Call Recording Lookup

Call Recording Lookup

Created by

Console Team

Published

RevOps

Gong

HubSpot

Fathom

+5

Trigger

Requester asks for a Gong/Fathom call ("Gong from Acme last Tuesday", "Fathom call with Globex CTO", "recap from the demo I did with Initech").

Instructions

  1. Parse:

    • Account/company name.

    • Date or relative date ("last Tuesday", "yesterday").

    • Participant name (if specified).

    • Type (demo / discovery / negotiation).

  2. #Lookup Users on the requester (to filter to their calls by default).

  3. Resolve the account:

  4. Resolve the date window:

    • "Last Tuesday" → compute calendar date.

    • "Yesterday" → previous day.

    • "Last week" → 7-day window.

  5. Search call recordings:

  6. If multiple matches, list them:

    1. #Send Direct Message with: Title | Date | Duration | Participants | Link.

    2. #Trigger Form to pick one.

  7. On selection (or if single match):

  8. Format the response:

    • TL;DR (1-3 sentence summary).

    • Key moments with timestamps.

    • Action items extracted.

    • Sentiment / talk ratio if relevant.

    • Full transcript link.

  9. #Send Direct Message with the formatted call brief.

  10. #Create HubSpot Note on Deal if a deal is associated, capturing the summary.

  11. #Leave Internal Note.

  12. #Resolve Request.

Call Recording Lookup

Playbooks

/

Call Recording Lookup

Call Recording Lookup

Created by

Console Team

Published

RevOps

Gong

HubSpot

Fathom

+5

Trigger

Requester asks for a Gong/Fathom call ("Gong from Acme last Tuesday", "Fathom call with Globex CTO", "recap from the demo I did with Initech").

Instructions

  1. Parse:

    • Account/company name.

    • Date or relative date ("last Tuesday", "yesterday").

    • Participant name (if specified).

    • Type (demo / discovery / negotiation).

  2. #Lookup Users on the requester (to filter to their calls by default).

  3. Resolve the account:

  4. Resolve the date window:

    • "Last Tuesday" → compute calendar date.

    • "Yesterday" → previous day.

    • "Last week" → 7-day window.

  5. Search call recordings:

  6. If multiple matches, list them:

    1. #Send Direct Message with: Title | Date | Duration | Participants | Link.

    2. #Trigger Form to pick one.

  7. On selection (or if single match):

  8. Format the response:

    • TL;DR (1-3 sentence summary).

    • Key moments with timestamps.

    • Action items extracted.

    • Sentiment / talk ratio if relevant.

    • Full transcript link.

  9. #Send Direct Message with the formatted call brief.

  10. #Create HubSpot Note on Deal if a deal is associated, capturing the summary.

  11. #Leave Internal Note.

  12. #Resolve Request.

Call Recording Lookup

Playbooks

/

Call Recording Lookup

Call Recording Lookup

Created by

Console Team

Published

RevOps

Gong

HubSpot

Fathom

+5

Trigger

Requester asks for a Gong/Fathom call ("Gong from Acme last Tuesday", "Fathom call with Globex CTO", "recap from the demo I did with Initech").

Instructions

  1. Parse:

    • Account/company name.

    • Date or relative date ("last Tuesday", "yesterday").

    • Participant name (if specified).

    • Type (demo / discovery / negotiation).

  2. #Lookup Users on the requester (to filter to their calls by default).

  3. Resolve the account:

  4. Resolve the date window:

    • "Last Tuesday" → compute calendar date.

    • "Yesterday" → previous day.

    • "Last week" → 7-day window.

  5. Search call recordings:

  6. If multiple matches, list them:

    1. #Send Direct Message with: Title | Date | Duration | Participants | Link.

    2. #Trigger Form to pick one.

  7. On selection (or if single match):

  8. Format the response:

    • TL;DR (1-3 sentence summary).

    • Key moments with timestamps.

    • Action items extracted.

    • Sentiment / talk ratio if relevant.

    • Full transcript link.

  9. #Send Direct Message with the formatted call brief.

  10. #Create HubSpot Note on Deal if a deal is associated, capturing the summary.

  11. #Leave Internal Note.

  12. #Resolve Request.

Card Lock & Lost Replacement

Playbooks

/

Card Lock & Lost Replacement

Card Lock & Lost Replacement

Created by

Console Team

Published

Finance

Ramp

+1

Trigger

Requester reports lost/stolen card.

Instructions

  1. #Trigger Form for platform, card identifier, when lost, suspected fraud, replacement needed, shipping address.

  2. #Lookup Users.

  3. #List Ramp Cards by User to confirm card.

  4. Immediate containment:

  5. Fraud suspected:

  6. Identity verification:

  7. Replacement:

  8. #Send Direct Message with freeze confirm, fraud case number, tracking, virtual card details, what to do if found.

  9. #Send Channel Message to #finance-card-log.

  10. schedule_action wake at expected delivery + 1 day to confirm receipt.

  11. #Leave Internal Note.

  12. #Resolve Request.

Card Lock & Lost Replacement

Playbooks

/

Card Lock & Lost Replacement

Card Lock & Lost Replacement

Created by

Console Team

Published

Finance

Ramp

+1

Trigger

Requester reports lost/stolen card.

Instructions

  1. #Trigger Form for platform, card identifier, when lost, suspected fraud, replacement needed, shipping address.

  2. #Lookup Users.

  3. #List Ramp Cards by User to confirm card.

  4. Immediate containment:

  5. Fraud suspected:

  6. Identity verification:

  7. Replacement:

  8. #Send Direct Message with freeze confirm, fraud case number, tracking, virtual card details, what to do if found.

  9. #Send Channel Message to #finance-card-log.

  10. schedule_action wake at expected delivery + 1 day to confirm receipt.

  11. #Leave Internal Note.

  12. #Resolve Request.

Card Lock & Lost Replacement

Playbooks

/

Card Lock & Lost Replacement

Card Lock & Lost Replacement

Created by

Console Team

Published

Finance

Ramp

+1

Trigger

Requester reports lost/stolen card.

Instructions

  1. #Trigger Form for platform, card identifier, when lost, suspected fraud, replacement needed, shipping address.

  2. #Lookup Users.

  3. #List Ramp Cards by User to confirm card.

  4. Immediate containment:

  5. Fraud suspected:

  6. Identity verification:

  7. Replacement:

  8. #Send Direct Message with freeze confirm, fraud case number, tracking, virtual card details, what to do if found.

  9. #Send Channel Message to #finance-card-log.

  10. schedule_action wake at expected delivery + 1 day to confirm receipt.

  11. #Leave Internal Note.

  12. #Resolve Request.

Card Spend Limit Adjustment

Playbooks

/

Card Spend Limit Adjustment

Card Spend Limit Adjustment

Created by

Console Team

Published

Finance

Ramp

+2

Trigger

Requester asks to change spend limit.

Instructions

  1. #Trigger Form for cardholder, current limit, requested limit, permanent vs temporary (with expiry), justification, cost center.

  2. #Lookup Users with includeManager + includeGroups.

  3. #List Ramp Cards by User.

  4. Validate against role-based max:

  5. Approval tier:

    • <25% increase → manager.

    • 25-100% → manager + finance ops.

    • >100% OR new limit >$25k → manager + finance ops + controller.

  6. #Request Approval chained.

  7. On approval:

    1. #Custom Ramp Update Card Limit.

    2. For temporary: capture original limit + expiry.

    3. schedule_action wake at expiry to revert.

  8. #Send Direct Message with new limit, effective date, reversion date.

  9. #Send Channel Message to #finance-card-log.

  10. On reversion wake: DM cardholder + channel log.

  11. #Leave Internal Note.

  12. #Resolve Request.

Card Spend Limit Adjustment

Playbooks

/

Card Spend Limit Adjustment

Card Spend Limit Adjustment

Created by

Console Team

Published

Finance

Ramp

+2

Trigger

Requester asks to change spend limit.

Instructions

  1. #Trigger Form for cardholder, current limit, requested limit, permanent vs temporary (with expiry), justification, cost center.

  2. #Lookup Users with includeManager + includeGroups.

  3. #List Ramp Cards by User.

  4. Validate against role-based max:

  5. Approval tier:

    • <25% increase → manager.

    • 25-100% → manager + finance ops.

    • >100% OR new limit >$25k → manager + finance ops + controller.

  6. #Request Approval chained.

  7. On approval:

    1. #Custom Ramp Update Card Limit.

    2. For temporary: capture original limit + expiry.

    3. schedule_action wake at expiry to revert.

  8. #Send Direct Message with new limit, effective date, reversion date.

  9. #Send Channel Message to #finance-card-log.

  10. On reversion wake: DM cardholder + channel log.

  11. #Leave Internal Note.

  12. #Resolve Request.

Card Spend Limit Adjustment

Playbooks

/

Card Spend Limit Adjustment

Card Spend Limit Adjustment

Created by

Console Team

Published

Finance

Ramp

+2

Trigger

Requester asks to change spend limit.

Instructions

  1. #Trigger Form for cardholder, current limit, requested limit, permanent vs temporary (with expiry), justification, cost center.

  2. #Lookup Users with includeManager + includeGroups.

  3. #List Ramp Cards by User.

  4. Validate against role-based max:

  5. Approval tier:

    • <25% increase → manager.

    • 25-100% → manager + finance ops.

    • >100% OR new limit >$25k → manager + finance ops + controller.

  6. #Request Approval chained.

  7. On approval:

    1. #Custom Ramp Update Card Limit.

    2. For temporary: capture original limit + expiry.

    3. schedule_action wake at expiry to revert.

  8. #Send Direct Message with new limit, effective date, reversion date.

  9. #Send Channel Message to #finance-card-log.

  10. On reversion wake: DM cardholder + channel log.

  11. #Leave Internal Note.

  12. #Resolve Request.

Certificate Expiration Tracking

Playbooks

/

Certificate Expiration Tracking

Certificate Expiration Tracking

Created by

Console Team

Published

Security

AWS

Google

Vanta

+5

Trigger

Scheduled — every day at 6:00 AM America/Chicago

Instructions

  1. Pull cert inventory:

  2. For each cert, capture:

    • Domain(s)

    • Issuer

    • Not-after date

    • Days-to-expiry

    • Cert owner (via custom Get Cert Owner).

  3. Determine alert tier:

    • 30 days → first reminder.

    • 14 days → second reminder.

    • 3 days → urgent + create Linear ticket.

    • Expired → critical alert.

  4. For each cert at an alert tier:

    • #Lookup Users on the cert owner.

    • Check if already alerted in the last 24h (avoid spam).

  5. Send the alert:

    • #Send Direct Message to the owner with: domain, expiry date, days remaining, renewal runbook link, "Renew now" form.

    • For auto-renewable certs (LE, ACM auto-renew): just notify; system will handle.

    • For manual: provide step-by-step.

  6. On "Renew now":

    1. For LE / ACM: custom Trigger Cert Renewal action.

    2. For manual cert sources: #Create Linear Issue in the platform project assigned to the owner.

  7. At 3-day mark:

    1. #Create Linear Issue regardless of prior action.

    2. #Send Channel Message to #security with the impending expiry.

  8. At expiry:

    1. #Send Channel Message to #security-critical and the cert owner's team channel.

    2. #Custom Page On-Call for production-critical certs.

  9. Weekly summary:

    1. #Send Channel Message to #security with: certs expiring in next 30/60/90 days, renewal status.

  10. #Custom Vanta Upload Evidence monthly with cert inventory snapshot. ​

  11. #Leave Internal Note for each cert action.

Certificate Expiration Tracking

Playbooks

/

Certificate Expiration Tracking

Certificate Expiration Tracking

Created by

Console Team

Published

Security

AWS

Google

Vanta

+5

Trigger

Scheduled — every day at 6:00 AM America/Chicago

Instructions

  1. Pull cert inventory:

  2. For each cert, capture:

    • Domain(s)

    • Issuer

    • Not-after date

    • Days-to-expiry

    • Cert owner (via custom Get Cert Owner).

  3. Determine alert tier:

    • 30 days → first reminder.

    • 14 days → second reminder.

    • 3 days → urgent + create Linear ticket.

    • Expired → critical alert.

  4. For each cert at an alert tier:

    • #Lookup Users on the cert owner.

    • Check if already alerted in the last 24h (avoid spam).

  5. Send the alert:

    • #Send Direct Message to the owner with: domain, expiry date, days remaining, renewal runbook link, "Renew now" form.

    • For auto-renewable certs (LE, ACM auto-renew): just notify; system will handle.

    • For manual: provide step-by-step.

  6. On "Renew now":

    1. For LE / ACM: custom Trigger Cert Renewal action.

    2. For manual cert sources: #Create Linear Issue in the platform project assigned to the owner.

  7. At 3-day mark:

    1. #Create Linear Issue regardless of prior action.

    2. #Send Channel Message to #security with the impending expiry.

  8. At expiry:

    1. #Send Channel Message to #security-critical and the cert owner's team channel.

    2. #Custom Page On-Call for production-critical certs.

  9. Weekly summary:

    1. #Send Channel Message to #security with: certs expiring in next 30/60/90 days, renewal status.

  10. #Custom Vanta Upload Evidence monthly with cert inventory snapshot. ​

  11. #Leave Internal Note for each cert action.

Certificate Expiration Tracking

Playbooks

/

Certificate Expiration Tracking

Certificate Expiration Tracking

Created by

Console Team

Published

Security

AWS

Google

Vanta

+5

Trigger

Scheduled — every day at 6:00 AM America/Chicago

Instructions

  1. Pull cert inventory:

  2. For each cert, capture:

    • Domain(s)

    • Issuer

    • Not-after date

    • Days-to-expiry

    • Cert owner (via custom Get Cert Owner).

  3. Determine alert tier:

    • 30 days → first reminder.

    • 14 days → second reminder.

    • 3 days → urgent + create Linear ticket.

    • Expired → critical alert.

  4. For each cert at an alert tier:

    • #Lookup Users on the cert owner.

    • Check if already alerted in the last 24h (avoid spam).

  5. Send the alert:

    • #Send Direct Message to the owner with: domain, expiry date, days remaining, renewal runbook link, "Renew now" form.

    • For auto-renewable certs (LE, ACM auto-renew): just notify; system will handle.

    • For manual: provide step-by-step.

  6. On "Renew now":

    1. For LE / ACM: custom Trigger Cert Renewal action.

    2. For manual cert sources: #Create Linear Issue in the platform project assigned to the owner.

  7. At 3-day mark:

    1. #Create Linear Issue regardless of prior action.

    2. #Send Channel Message to #security with the impending expiry.

  8. At expiry:

    1. #Send Channel Message to #security-critical and the cert owner's team channel.

    2. #Custom Page On-Call for production-critical certs.

  9. Weekly summary:

    1. #Send Channel Message to #security with: certs expiring in next 30/60/90 days, renewal status.

  10. #Custom Vanta Upload Evidence monthly with cert inventory snapshot. ​

  11. #Leave Internal Note for each cert action.

Closed-Lost Cascade

Playbooks

/

Closed-Lost Cascade

Closed-Lost Cascade

Created by

Console Team

Published

RevOps

HubSpot

Gong

Outreach

+2

Trigger

Webhook — deal stage transition to closed-lost Variables: $deal.id, $deal.amount, $deal.ownerId, $deal.companyId, $deal.closeDate

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for context.

  2. #Lookup Users on $deal.ownerId.

  3. Capture loss reason if not already on the deal:

    • Check closedLostReason field — if empty, prompt the AE.

    • #Send Direct Message to AE with a #Trigger Form:

      • Primary loss reason (Price / Product fit / Competitor / Timing / No decision / Champion left / Other).

      • Competitor (if Competitor selected).

      • Decision-maker (who made the call).

      • Lessons learned (free text).

      • Win-back potential (Likely / Possible / Unlikely).

  4. schedule_action wake at 3 days if AE hasn't responded.

  5. On AE response:

  6. Schedule win-back cadence (if Likely or Possible):

  7. Competitive intelligence:

  8. Gong tagging:

  9. QBR tagging:

  10. AE coaching trigger:

    • For specific loss reasons (e.g. "Champion left", "Product fit"): suggest coaching topic to manager.

    • #Send Direct Message to manager with: "Three deals lost to {{reason}} this quarter. Coaching session?"

  11. #Send Channel Message to #deal-lost-log for visibility (without amount if sensitive).

  12. #Leave Internal Note with full cascade.

Closed-Lost Cascade

Playbooks

/

Closed-Lost Cascade

Closed-Lost Cascade

Created by

Console Team

Published

RevOps

HubSpot

Gong

Outreach

+2

Trigger

Webhook — deal stage transition to closed-lost Variables: $deal.id, $deal.amount, $deal.ownerId, $deal.companyId, $deal.closeDate

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for context.

  2. #Lookup Users on $deal.ownerId.

  3. Capture loss reason if not already on the deal:

    • Check closedLostReason field — if empty, prompt the AE.

    • #Send Direct Message to AE with a #Trigger Form:

      • Primary loss reason (Price / Product fit / Competitor / Timing / No decision / Champion left / Other).

      • Competitor (if Competitor selected).

      • Decision-maker (who made the call).

      • Lessons learned (free text).

      • Win-back potential (Likely / Possible / Unlikely).

  4. schedule_action wake at 3 days if AE hasn't responded.

  5. On AE response:

  6. Schedule win-back cadence (if Likely or Possible):

  7. Competitive intelligence:

  8. Gong tagging:

  9. QBR tagging:

  10. AE coaching trigger:

    • For specific loss reasons (e.g. "Champion left", "Product fit"): suggest coaching topic to manager.

    • #Send Direct Message to manager with: "Three deals lost to {{reason}} this quarter. Coaching session?"

  11. #Send Channel Message to #deal-lost-log for visibility (without amount if sensitive).

  12. #Leave Internal Note with full cascade.

Closed-Lost Cascade

Playbooks

/

Closed-Lost Cascade

Closed-Lost Cascade

Created by

Console Team

Published

RevOps

HubSpot

Gong

Outreach

+2

Trigger

Webhook — deal stage transition to closed-lost Variables: $deal.id, $deal.amount, $deal.ownerId, $deal.companyId, $deal.closeDate

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for context.

  2. #Lookup Users on $deal.ownerId.

  3. Capture loss reason if not already on the deal:

    • Check closedLostReason field — if empty, prompt the AE.

    • #Send Direct Message to AE with a #Trigger Form:

      • Primary loss reason (Price / Product fit / Competitor / Timing / No decision / Champion left / Other).

      • Competitor (if Competitor selected).

      • Decision-maker (who made the call).

      • Lessons learned (free text).

      • Win-back potential (Likely / Possible / Unlikely).

  4. schedule_action wake at 3 days if AE hasn't responded.

  5. On AE response:

  6. Schedule win-back cadence (if Likely or Possible):

  7. Competitive intelligence:

  8. Gong tagging:

  9. QBR tagging:

  10. AE coaching trigger:

    • For specific loss reasons (e.g. "Champion left", "Product fit"): suggest coaching topic to manager.

    • #Send Direct Message to manager with: "Three deals lost to {{reason}} this quarter. Coaching session?"

  11. #Send Channel Message to #deal-lost-log for visibility (without amount if sensitive).

  12. #Leave Internal Note with full cascade.

Closed-Won Cascade

Playbooks

/

Closed-Won Cascade

Closed-Won Cascade

Created by

Console Team

Published

RevOps

Google Calendar

Ramp

HubSpot

+5

Trigger

Webhook — HubSpot/Salesforce deal stage transition to closed-won Variables: $deal.id, $deal.amount, $deal.ownerId, $deal.companyId, $deal.closeDate

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for full deal context.

  2. #Lookup Users on $deal.ownerId (AE) and resolve the CSM via custom Get Assigned CSM from the company's CSM field.

  3. Notify CS team:

    1. #Send Channel Message to #cs-handoffs with: account name, ACV, contract term, products purchased, AE, CSM.

    2. #Send Direct Message to the assigned CSM with the deal package.

  4. Generate kickoff calendar:

    1. Custom Google Calendar Create Event for a 60-min customer kickoff call scheduled 5-10 business days post-close.

    2. Invite: CSM, AE (introduction), Implementation Lead, customer champion + contacts.

  5. Exec gift:

    1. For deals over a threshold (e.g. >$50k ACV): #Lookup Users for customer champion contact from the deal.

    2. Custom Ramp Send Customer Gift with the champion's address.

  6. Internal celebration:

    1. #Send Channel Message to #wins with: AE, account, ACV, win story, product, region.

    2. Include team-tagged shoutout for SE, SDR, CSM involved.

  7. Financial system sync:

    1. Custom NetSuite Create Customer Record if new customer.

    2. Custom NetSuite Create Subscription with terms.

    3. Custom NetSuite Generate Invoice Schedule based on payment terms.

Kick off customer onboarding playbook:

​ Custom Trigger Onboarding Playbook with the deal ID + customer payload (chains

to a CS onboarding playbook).

​ Update CRM with post-close fields:

​ #Update HubSpot Deal Properties with kickoffScheduled = true,

csmAssigned, onboardingTriggered.

​ AE celebration:

​ #Send Direct Message to AE with the closed-won celebration + comp impact

estimate.

​ #Create HubSpot Note on Deal capturing the full cascade execution.

​ #Leave Internal Note.

Closed-Won Cascade

Playbooks

/

Closed-Won Cascade

Closed-Won Cascade

Created by

Console Team

Published

RevOps

Google Calendar

Ramp

HubSpot

+5

Trigger

Webhook — HubSpot/Salesforce deal stage transition to closed-won Variables: $deal.id, $deal.amount, $deal.ownerId, $deal.companyId, $deal.closeDate

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for full deal context.

  2. #Lookup Users on $deal.ownerId (AE) and resolve the CSM via custom Get Assigned CSM from the company's CSM field.

  3. Notify CS team:

    1. #Send Channel Message to #cs-handoffs with: account name, ACV, contract term, products purchased, AE, CSM.

    2. #Send Direct Message to the assigned CSM with the deal package.

  4. Generate kickoff calendar:

    1. Custom Google Calendar Create Event for a 60-min customer kickoff call scheduled 5-10 business days post-close.

    2. Invite: CSM, AE (introduction), Implementation Lead, customer champion + contacts.

  5. Exec gift:

    1. For deals over a threshold (e.g. >$50k ACV): #Lookup Users for customer champion contact from the deal.

    2. Custom Ramp Send Customer Gift with the champion's address.

  6. Internal celebration:

    1. #Send Channel Message to #wins with: AE, account, ACV, win story, product, region.

    2. Include team-tagged shoutout for SE, SDR, CSM involved.

  7. Financial system sync:

    1. Custom NetSuite Create Customer Record if new customer.

    2. Custom NetSuite Create Subscription with terms.

    3. Custom NetSuite Generate Invoice Schedule based on payment terms.

Kick off customer onboarding playbook:

​ Custom Trigger Onboarding Playbook with the deal ID + customer payload (chains

to a CS onboarding playbook).

​ Update CRM with post-close fields:

​ #Update HubSpot Deal Properties with kickoffScheduled = true,

csmAssigned, onboardingTriggered.

​ AE celebration:

​ #Send Direct Message to AE with the closed-won celebration + comp impact

estimate.

​ #Create HubSpot Note on Deal capturing the full cascade execution.

​ #Leave Internal Note.

Closed-Won Cascade

Playbooks

/

Closed-Won Cascade

Closed-Won Cascade

Created by

Console Team

Published

RevOps

Google Calendar

Ramp

HubSpot

+5

Trigger

Webhook — HubSpot/Salesforce deal stage transition to closed-won Variables: $deal.id, $deal.amount, $deal.ownerId, $deal.companyId, $deal.closeDate

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for full deal context.

  2. #Lookup Users on $deal.ownerId (AE) and resolve the CSM via custom Get Assigned CSM from the company's CSM field.

  3. Notify CS team:

    1. #Send Channel Message to #cs-handoffs with: account name, ACV, contract term, products purchased, AE, CSM.

    2. #Send Direct Message to the assigned CSM with the deal package.

  4. Generate kickoff calendar:

    1. Custom Google Calendar Create Event for a 60-min customer kickoff call scheduled 5-10 business days post-close.

    2. Invite: CSM, AE (introduction), Implementation Lead, customer champion + contacts.

  5. Exec gift:

    1. For deals over a threshold (e.g. >$50k ACV): #Lookup Users for customer champion contact from the deal.

    2. Custom Ramp Send Customer Gift with the champion's address.

  6. Internal celebration:

    1. #Send Channel Message to #wins with: AE, account, ACV, win story, product, region.

    2. Include team-tagged shoutout for SE, SDR, CSM involved.

  7. Financial system sync:

    1. Custom NetSuite Create Customer Record if new customer.

    2. Custom NetSuite Create Subscription with terms.

    3. Custom NetSuite Generate Invoice Schedule based on payment terms.

Kick off customer onboarding playbook:

​ Custom Trigger Onboarding Playbook with the deal ID + customer payload (chains

to a CS onboarding playbook).

​ Update CRM with post-close fields:

​ #Update HubSpot Deal Properties with kickoffScheduled = true,

csmAssigned, onboardingTriggered.

​ AE celebration:

​ #Send Direct Message to AE with the closed-won celebration + comp impact

estimate.

​ #Create HubSpot Note on Deal capturing the full cascade execution.

​ #Leave Internal Note.

Cloud IAM Reviews

Playbooks

/

Cloud IAM Reviews

Cloud IAM Reviews

Created by

Console Team

Published

Security

AWS

Azure Blob Storage

Vanta

+5

Trigger

Scheduled — quarterly on the 1st of Jan/Apr/Jul/Oct at 7:00 AM America/Chicago

Instructions

  1. Pull IAM inventory:

  2. For each IAM principal, compute privilege score:

  3. Flag overly permissive:

    • Admin-equivalent (e.g. AdministratorAccess, *:*, Owner) → always reviewed.

    • Unused permissions ≥ 60 days → flagged.

    • Service accounts with human-like patterns → flagged for review.

  4. Resolve owners:

    • For each flagged identity, #custom Get Service Owner by looking up:

      • Tags on the AWS user/role.

      • CODEOWNERS in associated repos.

      • Custom internal service-to-owner mapping.

  5. Send attestations:

  6. schedule_action wakes at 7, 14, 21 days for non-respondents.

  7. At deadline + 1, execute decisions:

  8. #Custom Vanta Upload Evidence with the full review log.

  9. #Send Channel Message to #security post-cycle summary.

  10. #Create Linear Issue in Security-Audit for the quarterly cycle artifact.

  11. #Leave Internal Note with cycle stats.

Cloud IAM Reviews

Playbooks

/

Cloud IAM Reviews

Cloud IAM Reviews

Created by

Console Team

Published

Security

AWS

Azure Blob Storage

Vanta

+5

Trigger

Scheduled — quarterly on the 1st of Jan/Apr/Jul/Oct at 7:00 AM America/Chicago

Instructions

  1. Pull IAM inventory:

  2. For each IAM principal, compute privilege score:

  3. Flag overly permissive:

    • Admin-equivalent (e.g. AdministratorAccess, *:*, Owner) → always reviewed.

    • Unused permissions ≥ 60 days → flagged.

    • Service accounts with human-like patterns → flagged for review.

  4. Resolve owners:

    • For each flagged identity, #custom Get Service Owner by looking up:

      • Tags on the AWS user/role.

      • CODEOWNERS in associated repos.

      • Custom internal service-to-owner mapping.

  5. Send attestations:

  6. schedule_action wakes at 7, 14, 21 days for non-respondents.

  7. At deadline + 1, execute decisions:

  8. #Custom Vanta Upload Evidence with the full review log.

  9. #Send Channel Message to #security post-cycle summary.

  10. #Create Linear Issue in Security-Audit for the quarterly cycle artifact.

  11. #Leave Internal Note with cycle stats.

Cloud IAM Reviews

Playbooks

/

Cloud IAM Reviews

Cloud IAM Reviews

Created by

Console Team

Published

Security

AWS

Azure Blob Storage

Vanta

+5

Trigger

Scheduled — quarterly on the 1st of Jan/Apr/Jul/Oct at 7:00 AM America/Chicago

Instructions

  1. Pull IAM inventory:

  2. For each IAM principal, compute privilege score:

  3. Flag overly permissive:

    • Admin-equivalent (e.g. AdministratorAccess, *:*, Owner) → always reviewed.

    • Unused permissions ≥ 60 days → flagged.

    • Service accounts with human-like patterns → flagged for review.

  4. Resolve owners:

    • For each flagged identity, #custom Get Service Owner by looking up:

      • Tags on the AWS user/role.

      • CODEOWNERS in associated repos.

      • Custom internal service-to-owner mapping.

  5. Send attestations:

  6. schedule_action wakes at 7, 14, 21 days for non-respondents.

  7. At deadline + 1, execute decisions:

  8. #Custom Vanta Upload Evidence with the full review log.

  9. #Send Channel Message to #security post-cycle summary.

  10. #Create Linear Issue in Security-Audit for the quarterly cycle artifact.

  11. #Leave Internal Note with cycle stats.

Comp & Quota Q&A

Playbooks

/

Comp & Quota Q&A

Comp & Quota Q&A

Created by

Console Team

Published

RevOps

Workday

HubSpot

+5

Trigger

Requester asks about their comp plan, attainment, commission timing, or accelerator triggers ("what's my plan", "Q3 attainment", "when does last quarter's commission pay", "am I in accelerator").

Instructions

  1. Parse the question type:

    • Plan details / attainment / payment timing / accelerator / quota.

  2. #Lookup Users on the requester with includeManager to confirm comp eligibility.

  3. Authentication / sensitivity check:

    • Comp data is personal — only the requester or their manager + ops should see.

    • If requester is asking about someone else: #Request Approval from that person or from ops.

  4. Pull comp data:

  5. Cross-check against CRM:

  6. Format the answer based on question type:

    • Plan → quota, OTE, base, variable, accelerator thresholds, SPIFFs.

    • Attainment → period, attainment %, dollars at quota, dollars at attainment.

    • Payment timing → next pay date, amount, prior periods status.

    • Accelerator → current attainment vs threshold, projected accelerator earnings.

  7. #Send Direct Message with the formatted answer.

  8. If discrepancy was flagged:

  9. Offer follow-up: "Want me to walk you through how this is calculated?"

  10. #Leave Internal Note capturing the query type.

  11. #Resolve Request.

Comp & Quota Q&A

Playbooks

/

Comp & Quota Q&A

Comp & Quota Q&A

Created by

Console Team

Published

RevOps

Workday

HubSpot

+5

Trigger

Requester asks about their comp plan, attainment, commission timing, or accelerator triggers ("what's my plan", "Q3 attainment", "when does last quarter's commission pay", "am I in accelerator").

Instructions

  1. Parse the question type:

    • Plan details / attainment / payment timing / accelerator / quota.

  2. #Lookup Users on the requester with includeManager to confirm comp eligibility.

  3. Authentication / sensitivity check:

    • Comp data is personal — only the requester or their manager + ops should see.

    • If requester is asking about someone else: #Request Approval from that person or from ops.

  4. Pull comp data:

  5. Cross-check against CRM:

  6. Format the answer based on question type:

    • Plan → quota, OTE, base, variable, accelerator thresholds, SPIFFs.

    • Attainment → period, attainment %, dollars at quota, dollars at attainment.

    • Payment timing → next pay date, amount, prior periods status.

    • Accelerator → current attainment vs threshold, projected accelerator earnings.

  7. #Send Direct Message with the formatted answer.

  8. If discrepancy was flagged:

  9. Offer follow-up: "Want me to walk you through how this is calculated?"

  10. #Leave Internal Note capturing the query type.

  11. #Resolve Request.

Comp & Quota Q&A

Playbooks

/

Comp & Quota Q&A

Comp & Quota Q&A

Created by

Console Team

Published

RevOps

Workday

HubSpot

+5

Trigger

Requester asks about their comp plan, attainment, commission timing, or accelerator triggers ("what's my plan", "Q3 attainment", "when does last quarter's commission pay", "am I in accelerator").

Instructions

  1. Parse the question type:

    • Plan details / attainment / payment timing / accelerator / quota.

  2. #Lookup Users on the requester with includeManager to confirm comp eligibility.

  3. Authentication / sensitivity check:

    • Comp data is personal — only the requester or their manager + ops should see.

    • If requester is asking about someone else: #Request Approval from that person or from ops.

  4. Pull comp data:

  5. Cross-check against CRM:

  6. Format the answer based on question type:

    • Plan → quota, OTE, base, variable, accelerator thresholds, SPIFFs.

    • Attainment → period, attainment %, dollars at quota, dollars at attainment.

    • Payment timing → next pay date, amount, prior periods status.

    • Accelerator → current attainment vs threshold, projected accelerator earnings.

  7. #Send Direct Message with the formatted answer.

  8. If discrepancy was flagged:

  9. Offer follow-up: "Want me to walk you through how this is calculated?"

  10. #Leave Internal Note capturing the query type.

  11. #Resolve Request.

Compensation Requests

Playbooks

/

Compensation Requests

Compensation Requests

Created by

Console Team

Published

HR

Workday

+1

Trigger

Manager submits an off-cycle merit, market adjustment, sign-on bonus, retention bonus, or promotion comp request.

Instructions

  1. #Trigger Form to collect:

    1. Employee being adjusted

    2. Adjustment type (merit / market / sign-on / retention / promotion)

    3. Current comp (auto-fill from Workday)

    4. Proposed new comp

    5. Justification (free text)

    6. Market data attachment (if market adjustment)

    7. Effective date

  2. #Lookup Users on the employee and the requesting manager.

  3. #Custom Workday Get Comp Band for the employee's role and level to check if the proposed comp falls within band.

  4. #Custom Workday Get Compa-Ratio to show current and proposed compa-ratio.

  5. Validate request:

    1. In-band → standard approval path.

    2. Above band → require additional VP approval.

    3. Outside policy window (e.g. off-cycle merit when only quarterly cycles allowed) → require HRBP exception approval.

  6. Approval chain:

    1. #Request Approval from manager's manager (skip-level).

    2. #Request Approval from HRBP with justification + market data attached.

    3. #Request Approval from finance with budget impact calculation.

    4. If above band → #Request Approval from the VP/Chief.

  7. On full approval, on effective date:

    1. #Custom Workday Submit Comp Change with new comp, type, effective date.

    2. #Custom Workday Trigger Payroll Update for next pay cycle.

    3. If sign-on or retention bonus, custom Workday Schedule Bonus Payment.

  8. #Send Direct Message to the employee with a comp letter or update notification — composed from a template.

  9. #Send Direct Message to the manager confirming the change and the next paystub the employee will see.

  10. #Send Channel Message to #hrbp-comp for tracking.

  11. #Leave Internal Note capturing approval trail, justification, market data.

  12. #Resolve Request

Compensation Requests

Playbooks

/

Compensation Requests

Compensation Requests

Created by

Console Team

Published

HR

Workday

+1

Trigger

Manager submits an off-cycle merit, market adjustment, sign-on bonus, retention bonus, or promotion comp request.

Instructions

  1. #Trigger Form to collect:

    1. Employee being adjusted

    2. Adjustment type (merit / market / sign-on / retention / promotion)

    3. Current comp (auto-fill from Workday)

    4. Proposed new comp

    5. Justification (free text)

    6. Market data attachment (if market adjustment)

    7. Effective date

  2. #Lookup Users on the employee and the requesting manager.

  3. #Custom Workday Get Comp Band for the employee's role and level to check if the proposed comp falls within band.

  4. #Custom Workday Get Compa-Ratio to show current and proposed compa-ratio.

  5. Validate request:

    1. In-band → standard approval path.

    2. Above band → require additional VP approval.

    3. Outside policy window (e.g. off-cycle merit when only quarterly cycles allowed) → require HRBP exception approval.

  6. Approval chain:

    1. #Request Approval from manager's manager (skip-level).

    2. #Request Approval from HRBP with justification + market data attached.

    3. #Request Approval from finance with budget impact calculation.

    4. If above band → #Request Approval from the VP/Chief.

  7. On full approval, on effective date:

    1. #Custom Workday Submit Comp Change with new comp, type, effective date.

    2. #Custom Workday Trigger Payroll Update for next pay cycle.

    3. If sign-on or retention bonus, custom Workday Schedule Bonus Payment.

  8. #Send Direct Message to the employee with a comp letter or update notification — composed from a template.

  9. #Send Direct Message to the manager confirming the change and the next paystub the employee will see.

  10. #Send Channel Message to #hrbp-comp for tracking.

  11. #Leave Internal Note capturing approval trail, justification, market data.

  12. #Resolve Request

Compensation Requests

Playbooks

/

Compensation Requests

Compensation Requests

Created by

Console Team

Published

HR

Workday

+1

Trigger

Manager submits an off-cycle merit, market adjustment, sign-on bonus, retention bonus, or promotion comp request.

Instructions

  1. #Trigger Form to collect:

    1. Employee being adjusted

    2. Adjustment type (merit / market / sign-on / retention / promotion)

    3. Current comp (auto-fill from Workday)

    4. Proposed new comp

    5. Justification (free text)

    6. Market data attachment (if market adjustment)

    7. Effective date

  2. #Lookup Users on the employee and the requesting manager.

  3. #Custom Workday Get Comp Band for the employee's role and level to check if the proposed comp falls within band.

  4. #Custom Workday Get Compa-Ratio to show current and proposed compa-ratio.

  5. Validate request:

    1. In-band → standard approval path.

    2. Above band → require additional VP approval.

    3. Outside policy window (e.g. off-cycle merit when only quarterly cycles allowed) → require HRBP exception approval.

  6. Approval chain:

    1. #Request Approval from manager's manager (skip-level).

    2. #Request Approval from HRBP with justification + market data attached.

    3. #Request Approval from finance with budget impact calculation.

    4. If above band → #Request Approval from the VP/Chief.

  7. On full approval, on effective date:

    1. #Custom Workday Submit Comp Change with new comp, type, effective date.

    2. #Custom Workday Trigger Payroll Update for next pay cycle.

    3. If sign-on or retention bonus, custom Workday Schedule Bonus Payment.

  8. #Send Direct Message to the employee with a comp letter or update notification — composed from a template.

  9. #Send Direct Message to the manager confirming the change and the next paystub the employee will see.

  10. #Send Channel Message to #hrbp-comp for tracking.

  11. #Leave Internal Note capturing approval trail, justification, market data.

  12. #Resolve Request

Compliance Training

Playbooks

/

Compliance Training

Compliance Training

Created by

Console Team

Published

Security

Vanta

Trigger

Scheduled — daily + on hire (called from HR-1) + on cadence per framework Note: Overlaps with HR-15 but is framework-specific (SOC2, ISO, HIPAA, PCI).

Instructions

  1. Determine required attestations per employee:

  2. For each employee with missing or due-for-renewal trainings:

  3. Assign modules:

  4. #Send Direct Message to the employee with:

    • List of required modules

    • Framework context (e.g. "Required for our SOC2 attestation")

    • Deadline

    • LearnUpon link

  5. schedule_action wakes at 7, 14, 21, 30, 60, 90:

  6. On completion:

  7. Quarterly:

  8. #Leave Internal Note per employee per training cycle.

Compliance Training

Playbooks

/

Compliance Training

Compliance Training

Created by

Console Team

Published

Security

Vanta

Trigger

Scheduled — daily + on hire (called from HR-1) + on cadence per framework Note: Overlaps with HR-15 but is framework-specific (SOC2, ISO, HIPAA, PCI).

Instructions

  1. Determine required attestations per employee:

  2. For each employee with missing or due-for-renewal trainings:

  3. Assign modules:

  4. #Send Direct Message to the employee with:

    • List of required modules

    • Framework context (e.g. "Required for our SOC2 attestation")

    • Deadline

    • LearnUpon link

  5. schedule_action wakes at 7, 14, 21, 30, 60, 90:

  6. On completion:

  7. Quarterly:

  8. #Leave Internal Note per employee per training cycle.

Compliance Training

Playbooks

/

Compliance Training

Compliance Training

Created by

Console Team

Published

Security

Vanta

Trigger

Scheduled — daily + on hire (called from HR-1) + on cadence per framework Note: Overlaps with HR-15 but is framework-specific (SOC2, ISO, HIPAA, PCI).

Instructions

  1. Determine required attestations per employee:

  2. For each employee with missing or due-for-renewal trainings:

  3. Assign modules:

  4. #Send Direct Message to the employee with:

    • List of required modules

    • Framework context (e.g. "Required for our SOC2 attestation")

    • Deadline

    • LearnUpon link

  5. schedule_action wakes at 7, 14, 21, 30, 60, 90:

  6. On completion:

  7. Quarterly:

  8. #Leave Internal Note per employee per training cycle.

Compromised Credential Response

Playbooks

/

Compromised Credential Response

Compromised Credential Response

Created by

Console Team

Published

Security

Okta

1Password

Vanta

+5

Trigger

Detection — webhook from HaveIBeenPwned API monitor OR Dehashed scheduled poll

Instructions

  1. Parse the dump match:

    • Affected email

    • Source dump name + date

    • What was compromised (password / email / phone / other)

  2. #Search Okta User by Email to confirm the user exists and is active.

  3. If user doesn't exist or is already deactivated → log and exit.

  4. #Lookup Users with includeManager.

  5. Risk assessment:

    • If password was in the dump:

      • #Custom Okta Check Password Reuse to see if the dumped password matches their current Okta password (via secure hash comparison if available).

      • If reuse detected → Critical.

      • Else → High.

    • If only email/phone exposed → Medium (phishing risk).

  6. Execute response based on risk:

  7. #Send Direct Message to the user:

    • Explain the breach source and date (without leaking other affected services).

    • Confirm what was reset.

    • Recommend they:

      • Use 1Password to generate a unique password for the corporate account.

      • Check other accounts for password reuse via HIBP self-check link.

      • Enable phishing-resistant MFA (FIDO2 / passkey).

    • Include 1Password setup link if user isn't enrolled.

  8. #Send Channel Message to #security-credentials with the response summary.

  9. schedule_action wake at 7 days to verify the user re-enrolled MFA and reset password.

  10. On wake: if MFA not re-enrolled → #Send Direct Message reminder.

  11. #Custom Vanta Log Credential Incident for compliance.

  12. #Leave Internal Note capturing breach source, response actions, follow-up status.

Compromised Credential Response

Playbooks

/

Compromised Credential Response

Compromised Credential Response

Created by

Console Team

Published

Security

Okta

1Password

Vanta

+5

Trigger

Detection — webhook from HaveIBeenPwned API monitor OR Dehashed scheduled poll

Instructions

  1. Parse the dump match:

    • Affected email

    • Source dump name + date

    • What was compromised (password / email / phone / other)

  2. #Search Okta User by Email to confirm the user exists and is active.

  3. If user doesn't exist or is already deactivated → log and exit.

  4. #Lookup Users with includeManager.

  5. Risk assessment:

    • If password was in the dump:

      • #Custom Okta Check Password Reuse to see if the dumped password matches their current Okta password (via secure hash comparison if available).

      • If reuse detected → Critical.

      • Else → High.

    • If only email/phone exposed → Medium (phishing risk).

  6. Execute response based on risk:

  7. #Send Direct Message to the user:

    • Explain the breach source and date (without leaking other affected services).

    • Confirm what was reset.

    • Recommend they:

      • Use 1Password to generate a unique password for the corporate account.

      • Check other accounts for password reuse via HIBP self-check link.

      • Enable phishing-resistant MFA (FIDO2 / passkey).

    • Include 1Password setup link if user isn't enrolled.

  8. #Send Channel Message to #security-credentials with the response summary.

  9. schedule_action wake at 7 days to verify the user re-enrolled MFA and reset password.

  10. On wake: if MFA not re-enrolled → #Send Direct Message reminder.

  11. #Custom Vanta Log Credential Incident for compliance.

  12. #Leave Internal Note capturing breach source, response actions, follow-up status.

Compromised Credential Response

Playbooks

/

Compromised Credential Response

Compromised Credential Response

Created by

Console Team

Published

Security

Okta

1Password

Vanta

+5

Trigger

Detection — webhook from HaveIBeenPwned API monitor OR Dehashed scheduled poll

Instructions

  1. Parse the dump match:

    • Affected email

    • Source dump name + date

    • What was compromised (password / email / phone / other)

  2. #Search Okta User by Email to confirm the user exists and is active.

  3. If user doesn't exist or is already deactivated → log and exit.

  4. #Lookup Users with includeManager.

  5. Risk assessment:

    • If password was in the dump:

      • #Custom Okta Check Password Reuse to see if the dumped password matches their current Okta password (via secure hash comparison if available).

      • If reuse detected → Critical.

      • Else → High.

    • If only email/phone exposed → Medium (phishing risk).

  6. Execute response based on risk:

  7. #Send Direct Message to the user:

    • Explain the breach source and date (without leaking other affected services).

    • Confirm what was reset.

    • Recommend they:

      • Use 1Password to generate a unique password for the corporate account.

      • Check other accounts for password reuse via HIBP self-check link.

      • Enable phishing-resistant MFA (FIDO2 / passkey).

    • Include 1Password setup link if user isn't enrolled.

  8. #Send Channel Message to #security-credentials with the response summary.

  9. schedule_action wake at 7 days to verify the user re-enrolled MFA and reset password.

  10. On wake: if MFA not re-enrolled → #Send Direct Message reminder.

  11. #Custom Vanta Log Credential Incident for compliance.

  12. #Leave Internal Note capturing breach source, response actions, follow-up status.

Contractor Access Expiration

Playbooks

/

Contractor Access Expiration

Contractor Access Expiration

Created by

Console Team

Published

IT

Okta

Slack

Workday

+1

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. Query the #custom Workday/HR ingest via #Search Graph for contractors with endDate between today + 5 days and today + 7 days.

  2. For each contractor, #Lookup Users on the engagement owner's email with includeSlackId.

  3. #Send Direct Message to the engagement owner with a #Trigger Form containing options: "Extend"(collect new end-date), "Expire on schedule", "Expire immediately".

  4. Use schedule_action to wake 5 days later to check the form response.

  5. On wake, branch on the response:

    • Extend → #custom Workday Update Contractor End Date with the new date, then #Send Direct Message confirming.

    • Expire on schedule or no response → schedule_action wake on the contractor's endDate to execute revocation.

    • Expire immediately → execute revocation now.

  6. Revocation sequence:

  7. #Create Linear Issue in the IT-Audit project documenting the revocation.

  8. #Send Channel Message to #it-audit with the contractor name, owner, expiry type, and revoked entitlements.

Contractor Access Expiration

Playbooks

/

Contractor Access Expiration

Contractor Access Expiration

Created by

Console Team

Published

IT

Okta

Slack

Workday

+1

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. Query the #custom Workday/HR ingest via #Search Graph for contractors with endDate between today + 5 days and today + 7 days.

  2. For each contractor, #Lookup Users on the engagement owner's email with includeSlackId.

  3. #Send Direct Message to the engagement owner with a #Trigger Form containing options: "Extend"(collect new end-date), "Expire on schedule", "Expire immediately".

  4. Use schedule_action to wake 5 days later to check the form response.

  5. On wake, branch on the response:

    • Extend → #custom Workday Update Contractor End Date with the new date, then #Send Direct Message confirming.

    • Expire on schedule or no response → schedule_action wake on the contractor's endDate to execute revocation.

    • Expire immediately → execute revocation now.

  6. Revocation sequence:

  7. #Create Linear Issue in the IT-Audit project documenting the revocation.

  8. #Send Channel Message to #it-audit with the contractor name, owner, expiry type, and revoked entitlements.

Contractor Access Expiration

Playbooks

/

Contractor Access Expiration

Contractor Access Expiration

Created by

Console Team

Published

IT

Okta

Slack

Workday

+1

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. Query the #custom Workday/HR ingest via #Search Graph for contractors with endDate between today + 5 days and today + 7 days.

  2. For each contractor, #Lookup Users on the engagement owner's email with includeSlackId.

  3. #Send Direct Message to the engagement owner with a #Trigger Form containing options: "Extend"(collect new end-date), "Expire on schedule", "Expire immediately".

  4. Use schedule_action to wake 5 days later to check the form response.

  5. On wake, branch on the response:

    • Extend → #custom Workday Update Contractor End Date with the new date, then #Send Direct Message confirming.

    • Expire on schedule or no response → schedule_action wake on the contractor's endDate to execute revocation.

    • Expire immediately → execute revocation now.

  6. Revocation sequence:

  7. #Create Linear Issue in the IT-Audit project documenting the revocation.

  8. #Send Channel Message to #it-audit with the contractor name, owner, expiry type, and revoked entitlements.

Corporate Card Issuance

Playbooks

/

Corporate Card Issuance

Corporate Card Issuance

Created by

Console Team

Published

Finance

Workday

Brex

NetSuite

+1

Trigger

Requester asks for a Ramp/Brex card.

Instructions

  1. #Trigger Form to collect: card type (physical / virtual / vendor-specific), cardholder type (employee / contractor / vendor / event), cardholder name + email, shipping address, spend limit, allowed categories, justification, effective date + expiry.

  2. #Lookup Users on requester with includeManager, includeGroups.

  3. #Lookup Users on cardholder (if different).

  4. Validate against policy:

  5. Approval per tier:

    • <$2k/mo → manager.

    • $2k–$10k/mo → manager + finance ops.

    • >$10k/mo OR vendor card → manager + finance ops + controller.

    • #Request Approval chained.

  6. On approval:

    • Employee/contractor → #Invite Ramp User (if needed) + custom Ramp Create Card with limit + categories + cost center.

    • Vendor card → custom Ramp Create Vendor Card with restricted MCC codes.

    • Physical → custom Ramp Ship Physical Card.

    • Virtual → returns card to cardholder via secure delivery.

  7. For temporary lifts: schedule_action wake at expiry to custom Ramp Update Card Limit back to baseline.

  8. #Send Direct Message to cardholder with details, policy reminders, expense instructions, expiry.

  9. #Send Direct Message to requester confirming.

  10. #Send Channel Message to #finance-card-log.

  11. #Custom NetSuite Tag Cost Center for the card.

  12. #Leave Internal Note.

  13. #Resolve Request.

Corporate Card Issuance

Playbooks

/

Corporate Card Issuance

Corporate Card Issuance

Created by

Console Team

Published

Finance

Workday

Brex

NetSuite

+1

Trigger

Requester asks for a Ramp/Brex card.

Instructions

  1. #Trigger Form to collect: card type (physical / virtual / vendor-specific), cardholder type (employee / contractor / vendor / event), cardholder name + email, shipping address, spend limit, allowed categories, justification, effective date + expiry.

  2. #Lookup Users on requester with includeManager, includeGroups.

  3. #Lookup Users on cardholder (if different).

  4. Validate against policy:

  5. Approval per tier:

    • <$2k/mo → manager.

    • $2k–$10k/mo → manager + finance ops.

    • >$10k/mo OR vendor card → manager + finance ops + controller.

    • #Request Approval chained.

  6. On approval:

    • Employee/contractor → #Invite Ramp User (if needed) + custom Ramp Create Card with limit + categories + cost center.

    • Vendor card → custom Ramp Create Vendor Card with restricted MCC codes.

    • Physical → custom Ramp Ship Physical Card.

    • Virtual → returns card to cardholder via secure delivery.

  7. For temporary lifts: schedule_action wake at expiry to custom Ramp Update Card Limit back to baseline.

  8. #Send Direct Message to cardholder with details, policy reminders, expense instructions, expiry.

  9. #Send Direct Message to requester confirming.

  10. #Send Channel Message to #finance-card-log.

  11. #Custom NetSuite Tag Cost Center for the card.

  12. #Leave Internal Note.

  13. #Resolve Request.

Corporate Card Issuance

Playbooks

/

Corporate Card Issuance

Corporate Card Issuance

Created by

Console Team

Published

Finance

Workday

Brex

NetSuite

+1

Trigger

Requester asks for a Ramp/Brex card.

Instructions

  1. #Trigger Form to collect: card type (physical / virtual / vendor-specific), cardholder type (employee / contractor / vendor / event), cardholder name + email, shipping address, spend limit, allowed categories, justification, effective date + expiry.

  2. #Lookup Users on requester with includeManager, includeGroups.

  3. #Lookup Users on cardholder (if different).

  4. Validate against policy:

  5. Approval per tier:

    • <$2k/mo → manager.

    • $2k–$10k/mo → manager + finance ops.

    • >$10k/mo OR vendor card → manager + finance ops + controller.

    • #Request Approval chained.

  6. On approval:

    • Employee/contractor → #Invite Ramp User (if needed) + custom Ramp Create Card with limit + categories + cost center.

    • Vendor card → custom Ramp Create Vendor Card with restricted MCC codes.

    • Physical → custom Ramp Ship Physical Card.

    • Virtual → returns card to cardholder via secure delivery.

  7. For temporary lifts: schedule_action wake at expiry to custom Ramp Update Card Limit back to baseline.

  8. #Send Direct Message to cardholder with details, policy reminders, expense instructions, expiry.

  9. #Send Direct Message to requester confirming.

  10. #Send Channel Message to #finance-card-log.

  11. #Custom NetSuite Tag Cost Center for the card.

  12. #Leave Internal Note.

  13. #Resolve Request.

CRM Data Hygiene & Updates

Playbooks

/

CRM Data Hygiene & Updates

CRM Data Hygiene & Updates

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

+5

Trigger

Requester asks to update a CRM record ("change opp owner to Jeff", "update close date to next Friday", "mark closed-lost to competitor as Serval").

Instructions

  1. Parse the request:

    • Target object (deal / opportunity / contact / company / lead).

    • Target identifier (deal name, ID, account name).

    • Field to update.

    • New value.

  2. #Lookup Users on the requester with includeGroups.

  3. Permission check:

    • #Custom Check CRM Permission for the requester on the target object and field.

    • Rep can update their own records.

    • Manager can update reports' records.

    • Ops can update any.

    • If permission denied → #Request Approval from the record owner.

  4. Locate the record:

  5. #Get HubSpot Deal Details with Activity Timeline (or contact/company equivalent) to confirm current state.

  6. Validate the new value:

    • For owner changes: #Lookup Users to confirm the new owner exists.

    • For close dates: must be future or current quarter unless requester is ops.

    • For stage changes: must follow stage progression (route through Rev-15 if backward jump).

    • For status changes: require closedLostReason if moving to closed-lost.

  7. Confirm with the requester via #Send Direct Message showing the diff: "Will change {{field}} from {{old}} to {{new}}. Confirm?"

  8. On confirm: #Update HubSpot Deal Properties (or custom Salesforce update action) with the new value.

  9. Log the change:

  10. #Send Direct Message to the requester confirming, including the deal link.

  11. If the owner changed: #Send Direct Message to the new owner with the handoff.

  12. #Leave Internal Note capturing the change and approval trail.

  13. #Resolve Request.

CRM Data Hygiene & Updates

Playbooks

/

CRM Data Hygiene & Updates

CRM Data Hygiene & Updates

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

+5

Trigger

Requester asks to update a CRM record ("change opp owner to Jeff", "update close date to next Friday", "mark closed-lost to competitor as Serval").

Instructions

  1. Parse the request:

    • Target object (deal / opportunity / contact / company / lead).

    • Target identifier (deal name, ID, account name).

    • Field to update.

    • New value.

  2. #Lookup Users on the requester with includeGroups.

  3. Permission check:

    • #Custom Check CRM Permission for the requester on the target object and field.

    • Rep can update their own records.

    • Manager can update reports' records.

    • Ops can update any.

    • If permission denied → #Request Approval from the record owner.

  4. Locate the record:

  5. #Get HubSpot Deal Details with Activity Timeline (or contact/company equivalent) to confirm current state.

  6. Validate the new value:

    • For owner changes: #Lookup Users to confirm the new owner exists.

    • For close dates: must be future or current quarter unless requester is ops.

    • For stage changes: must follow stage progression (route through Rev-15 if backward jump).

    • For status changes: require closedLostReason if moving to closed-lost.

  7. Confirm with the requester via #Send Direct Message showing the diff: "Will change {{field}} from {{old}} to {{new}}. Confirm?"

  8. On confirm: #Update HubSpot Deal Properties (or custom Salesforce update action) with the new value.

  9. Log the change:

  10. #Send Direct Message to the requester confirming, including the deal link.

  11. If the owner changed: #Send Direct Message to the new owner with the handoff.

  12. #Leave Internal Note capturing the change and approval trail.

  13. #Resolve Request.

CRM Data Hygiene & Updates

Playbooks

/

CRM Data Hygiene & Updates

CRM Data Hygiene & Updates

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

+5

Trigger

Requester asks to update a CRM record ("change opp owner to Jeff", "update close date to next Friday", "mark closed-lost to competitor as Serval").

Instructions

  1. Parse the request:

    • Target object (deal / opportunity / contact / company / lead).

    • Target identifier (deal name, ID, account name).

    • Field to update.

    • New value.

  2. #Lookup Users on the requester with includeGroups.

  3. Permission check:

    • #Custom Check CRM Permission for the requester on the target object and field.

    • Rep can update their own records.

    • Manager can update reports' records.

    • Ops can update any.

    • If permission denied → #Request Approval from the record owner.

  4. Locate the record:

  5. #Get HubSpot Deal Details with Activity Timeline (or contact/company equivalent) to confirm current state.

  6. Validate the new value:

    • For owner changes: #Lookup Users to confirm the new owner exists.

    • For close dates: must be future or current quarter unless requester is ops.

    • For stage changes: must follow stage progression (route through Rev-15 if backward jump).

    • For status changes: require closedLostReason if moving to closed-lost.

  7. Confirm with the requester via #Send Direct Message showing the diff: "Will change {{field}} from {{old}} to {{new}}. Confirm?"

  8. On confirm: #Update HubSpot Deal Properties (or custom Salesforce update action) with the new value.

  9. Log the change:

  10. #Send Direct Message to the requester confirming, including the deal link.

  11. If the owner changed: #Send Direct Message to the new owner with the handoff.

  12. #Leave Internal Note capturing the change and approval trail.

  13. #Resolve Request.

Custom Pricing & CPQ Exception

Playbooks

/

Custom Pricing & CPQ Exception

Custom Pricing & CPQ Exception

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

DocuSign

+5

Trigger

AE needs non-standard pricing, bundles, or SKUs.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • Type of exception (non-standard SKU / custom bundle / non-list pricing / multi-year discount / payment terms).

    • Proposed pricing details.

    • Business justification.

    • Quote ID (if exists).

  2. #Hubspot Search Deals to locate.

  3. #Get HubSpot Deal Details with Activity Timeline for deal context.

  4. Pull current quote/CPQ state:

  5. Validate the proposal:

  6. Approval chain:

  7. On approval:

    • For Salesforce CPQ: custom Salesforce CPQ Update Quote Lines with the approved pricing.

    • For custom SKU: custom Salesforce CPQ Create Product Override.

    • Custom Salesforce CPQ Regenerate Quote to produce a new PDF with the approved pricing.

    • #Update HubSpot Deal Properties with customPricingApproved = true.

  8. Notify and deliver:

  9. #Create HubSpot Note on Deal with the full pricing exception trail.

  10. #Send Channel Message to #cpq-exceptions for tracking.

  11. #Leave Internal Note with approval chain.

  12. #Resolve Request.


Custom Pricing & CPQ Exception

Playbooks

/

Custom Pricing & CPQ Exception

Custom Pricing & CPQ Exception

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

DocuSign

+5

Trigger

AE needs non-standard pricing, bundles, or SKUs.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • Type of exception (non-standard SKU / custom bundle / non-list pricing / multi-year discount / payment terms).

    • Proposed pricing details.

    • Business justification.

    • Quote ID (if exists).

  2. #Hubspot Search Deals to locate.

  3. #Get HubSpot Deal Details with Activity Timeline for deal context.

  4. Pull current quote/CPQ state:

  5. Validate the proposal:

  6. Approval chain:

  7. On approval:

    • For Salesforce CPQ: custom Salesforce CPQ Update Quote Lines with the approved pricing.

    • For custom SKU: custom Salesforce CPQ Create Product Override.

    • Custom Salesforce CPQ Regenerate Quote to produce a new PDF with the approved pricing.

    • #Update HubSpot Deal Properties with customPricingApproved = true.

  8. Notify and deliver:

  9. #Create HubSpot Note on Deal with the full pricing exception trail.

  10. #Send Channel Message to #cpq-exceptions for tracking.

  11. #Leave Internal Note with approval chain.

  12. #Resolve Request.


Custom Pricing & CPQ Exception

Playbooks

/

Custom Pricing & CPQ Exception

Custom Pricing & CPQ Exception

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

DocuSign

+5

Trigger

AE needs non-standard pricing, bundles, or SKUs.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • Type of exception (non-standard SKU / custom bundle / non-list pricing / multi-year discount / payment terms).

    • Proposed pricing details.

    • Business justification.

    • Quote ID (if exists).

  2. #Hubspot Search Deals to locate.

  3. #Get HubSpot Deal Details with Activity Timeline for deal context.

  4. Pull current quote/CPQ state:

  5. Validate the proposal:

  6. Approval chain:

  7. On approval:

    • For Salesforce CPQ: custom Salesforce CPQ Update Quote Lines with the approved pricing.

    • For custom SKU: custom Salesforce CPQ Create Product Override.

    • Custom Salesforce CPQ Regenerate Quote to produce a new PDF with the approved pricing.

    • #Update HubSpot Deal Properties with customPricingApproved = true.

  8. Notify and deliver:

  9. #Create HubSpot Note on Deal with the full pricing exception trail.

  10. #Send Channel Message to #cpq-exceptions for tracking.

  11. #Leave Internal Note with approval chain.

  12. #Resolve Request.


Customer Invoice & Subscription Change

Playbooks

/

Customer Invoice & Subscription Change

Customer Invoice & Subscription Change

Created by

Console Team

Published

Finance

HubSpot

NetSuite

Stripe App

+1

Trigger

Requester (AE/CSM/ops) requests a subscription change.

Instructions

  1. #Trigger Form for customer, change type, effective date, quantity/product/pricing, pro-rate handling, reason.

  2. #Lookup Users with includeGroups.

  3. #Search HubSpot Companies to locate customer.

  4. #Get HubSpot Company Details with Activity Timeline.

  5. Pull subscription:

  6. Validate:

  7. Approval:

  8. #Request Approval.

  9. On approval:

  10. Send invoice:

  11. Notify:

  12. Update CRM:

  13. For new products: custom Provision Product Access.

  14. schedule_action wake at next billing date to confirm change.

  15. #Leave Internal Note.

  16. #Resolve Request.

Customer Invoice & Subscription Change

Playbooks

/

Customer Invoice & Subscription Change

Customer Invoice & Subscription Change

Created by

Console Team

Published

Finance

HubSpot

NetSuite

Stripe App

+1

Trigger

Requester (AE/CSM/ops) requests a subscription change.

Instructions

  1. #Trigger Form for customer, change type, effective date, quantity/product/pricing, pro-rate handling, reason.

  2. #Lookup Users with includeGroups.

  3. #Search HubSpot Companies to locate customer.

  4. #Get HubSpot Company Details with Activity Timeline.

  5. Pull subscription:

  6. Validate:

  7. Approval:

  8. #Request Approval.

  9. On approval:

  10. Send invoice:

  11. Notify:

  12. Update CRM:

  13. For new products: custom Provision Product Access.

  14. schedule_action wake at next billing date to confirm change.

  15. #Leave Internal Note.

  16. #Resolve Request.

Customer Invoice & Subscription Change

Playbooks

/

Customer Invoice & Subscription Change

Customer Invoice & Subscription Change

Created by

Console Team

Published

Finance

HubSpot

NetSuite

Stripe App

+1

Trigger

Requester (AE/CSM/ops) requests a subscription change.

Instructions

  1. #Trigger Form for customer, change type, effective date, quantity/product/pricing, pro-rate handling, reason.

  2. #Lookup Users with includeGroups.

  3. #Search HubSpot Companies to locate customer.

  4. #Get HubSpot Company Details with Activity Timeline.

  5. Pull subscription:

  6. Validate:

  7. Approval:

  8. #Request Approval.

  9. On approval:

  10. Send invoice:

  11. Notify:

  12. Update CRM:

  13. For new products: custom Provision Product Access.

  14. schedule_action wake at next billing date to confirm change.

  15. #Leave Internal Note.

  16. #Resolve Request.

Deal Stage Gate Enforcement

Playbooks

/

Deal Stage Gate Enforcement

Deal Stage Gate Enforcement

Created by

Console Team

Published

RevOps

Vanta

HubSpot

Ironclad

+2

Trigger

Webhook — deal stage change to Proposal or Negotiation Variables: $deal.id, $deal.previousStage, $deal.newStage, $deal.ownerId

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for current state.

  2. #Lookup Users on $deal.ownerId.

  3. Define gates for the target stage:

    • Proposal: MEDDIC fields complete, mutual-action-plan signed, ROI doc shared.

    • Negotiation: MSA in motion, pricing approved, security review status confirmed.

  4. Check each gate:

    • MSA status → custom Ironclad Get Workflow Status for the deal's MSA. Pass if signed or negotiating.

    • Pricing approved → check deal property pricingApproved or compute from discount vs threshold (auto-approve if within AE-discretion).

    • Security review → custom Vanta Get Vendor Review Status for the customer if they're SOC2-scoped customer.

    • MEDDIC complete → check required deal properties are all populated.

  5. Gate evaluation:

    • All pass → allow stage change; #Create HubSpot Note on Deal logging the gate check pass.

    • Any fail → revert the stage:

      • #Custom HubSpot Update Stage to $deal.previousStage.

      • #Send Direct Message to AE: "Deal {{name}} can't move to {{newStage}} yet. Missing: {{failed gates}}. Here's how to clear each: {{instructions}}."

      • Offer to fire upstream playbooks: Rev-8 for pricing, Rev-9 for MSA, etc.

  6. #Send Channel Message to #deal-ops only for fails (signal/noise).

  7. #Create HubSpot Note on Deal with the gate check result.

  8. #Leave Internal Note.

Deal Stage Gate Enforcement

Playbooks

/

Deal Stage Gate Enforcement

Deal Stage Gate Enforcement

Created by

Console Team

Published

RevOps

Vanta

HubSpot

Ironclad

+2

Trigger

Webhook — deal stage change to Proposal or Negotiation Variables: $deal.id, $deal.previousStage, $deal.newStage, $deal.ownerId

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for current state.

  2. #Lookup Users on $deal.ownerId.

  3. Define gates for the target stage:

    • Proposal: MEDDIC fields complete, mutual-action-plan signed, ROI doc shared.

    • Negotiation: MSA in motion, pricing approved, security review status confirmed.

  4. Check each gate:

    • MSA status → custom Ironclad Get Workflow Status for the deal's MSA. Pass if signed or negotiating.

    • Pricing approved → check deal property pricingApproved or compute from discount vs threshold (auto-approve if within AE-discretion).

    • Security review → custom Vanta Get Vendor Review Status for the customer if they're SOC2-scoped customer.

    • MEDDIC complete → check required deal properties are all populated.

  5. Gate evaluation:

    • All pass → allow stage change; #Create HubSpot Note on Deal logging the gate check pass.

    • Any fail → revert the stage:

      • #Custom HubSpot Update Stage to $deal.previousStage.

      • #Send Direct Message to AE: "Deal {{name}} can't move to {{newStage}} yet. Missing: {{failed gates}}. Here's how to clear each: {{instructions}}."

      • Offer to fire upstream playbooks: Rev-8 for pricing, Rev-9 for MSA, etc.

  6. #Send Channel Message to #deal-ops only for fails (signal/noise).

  7. #Create HubSpot Note on Deal with the gate check result.

  8. #Leave Internal Note.

Deal Stage Gate Enforcement

Playbooks

/

Deal Stage Gate Enforcement

Deal Stage Gate Enforcement

Created by

Console Team

Published

RevOps

Vanta

HubSpot

Ironclad

+2

Trigger

Webhook — deal stage change to Proposal or Negotiation Variables: $deal.id, $deal.previousStage, $deal.newStage, $deal.ownerId

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for current state.

  2. #Lookup Users on $deal.ownerId.

  3. Define gates for the target stage:

    • Proposal: MEDDIC fields complete, mutual-action-plan signed, ROI doc shared.

    • Negotiation: MSA in motion, pricing approved, security review status confirmed.

  4. Check each gate:

    • MSA status → custom Ironclad Get Workflow Status for the deal's MSA. Pass if signed or negotiating.

    • Pricing approved → check deal property pricingApproved or compute from discount vs threshold (auto-approve if within AE-discretion).

    • Security review → custom Vanta Get Vendor Review Status for the customer if they're SOC2-scoped customer.

    • MEDDIC complete → check required deal properties are all populated.

  5. Gate evaluation:

    • All pass → allow stage change; #Create HubSpot Note on Deal logging the gate check pass.

    • Any fail → revert the stage:

      • #Custom HubSpot Update Stage to $deal.previousStage.

      • #Send Direct Message to AE: "Deal {{name}} can't move to {{newStage}} yet. Missing: {{failed gates}}. Here's how to clear each: {{instructions}}."

      • Offer to fire upstream playbooks: Rev-8 for pricing, Rev-9 for MSA, etc.

  6. #Send Channel Message to #deal-ops only for fails (signal/noise).

  7. #Create HubSpot Note on Deal with the gate check result.

  8. #Leave Internal Note.

Deal-at-Risk Detection

Playbooks

/

Deal-at-Risk Detection

Deal-at-Risk Detection

Created by

Console Team

Published

RevOps

HubSpot

Gong

LinkedIn

+1

Trigger

Detection — scheduled every day at 6:00 AM America/Chicago

Instructions

  1. Pull open opps:

  2. For each deal, compute signals in parallel:

  3. Score the deal:

    • 0 signals → healthy.

    • 1 signal → watch.

    • 2 signals → at-risk.

    • 3+ signals → critical.

  4. Skip if deal was flagged in the last 7 days (avoid re-alert spam) unless score increased.

  5. For at-risk and critical deals:

    • #Lookup Users on the AE with includeManager.

    • Compose the risk brief:

      • Deal name + amount + close date + stage.

      • Signals firing (with detail per signal).

      • Suggested actions per signal (e.g. champion changed → reach out to backup, no activity → schedule check-in, slipped → revisit timeline with customer).

  6. #Send Direct Message to the AE with the risk brief.

  7. For critical deals, also:

  8. Create save-play guidance:

  9. Offer follow-ups:

    • "Want to schedule a deal review?"

    • "Want me to generate a champion-departure response email?"

  10. schedule_action wake at 7 days to re-evaluate.

  11. #Create HubSpot Note on Deal with the risk signals captured.

  12. #Leave Internal Note.

Deal-at-Risk Detection

Playbooks

/

Deal-at-Risk Detection

Deal-at-Risk Detection

Created by

Console Team

Published

RevOps

HubSpot

Gong

LinkedIn

+1

Trigger

Detection — scheduled every day at 6:00 AM America/Chicago

Instructions

  1. Pull open opps:

  2. For each deal, compute signals in parallel:

  3. Score the deal:

    • 0 signals → healthy.

    • 1 signal → watch.

    • 2 signals → at-risk.

    • 3+ signals → critical.

  4. Skip if deal was flagged in the last 7 days (avoid re-alert spam) unless score increased.

  5. For at-risk and critical deals:

    • #Lookup Users on the AE with includeManager.

    • Compose the risk brief:

      • Deal name + amount + close date + stage.

      • Signals firing (with detail per signal).

      • Suggested actions per signal (e.g. champion changed → reach out to backup, no activity → schedule check-in, slipped → revisit timeline with customer).

  6. #Send Direct Message to the AE with the risk brief.

  7. For critical deals, also:

  8. Create save-play guidance:

  9. Offer follow-ups:

    • "Want to schedule a deal review?"

    • "Want me to generate a champion-departure response email?"

  10. schedule_action wake at 7 days to re-evaluate.

  11. #Create HubSpot Note on Deal with the risk signals captured.

  12. #Leave Internal Note.

Deal-at-Risk Detection

Playbooks

/

Deal-at-Risk Detection

Deal-at-Risk Detection

Created by

Console Team

Published

RevOps

HubSpot

Gong

LinkedIn

+1

Trigger

Detection — scheduled every day at 6:00 AM America/Chicago

Instructions

  1. Pull open opps:

  2. For each deal, compute signals in parallel:

  3. Score the deal:

    • 0 signals → healthy.

    • 1 signal → watch.

    • 2 signals → at-risk.

    • 3+ signals → critical.

  4. Skip if deal was flagged in the last 7 days (avoid re-alert spam) unless score increased.

  5. For at-risk and critical deals:

    • #Lookup Users on the AE with includeManager.

    • Compose the risk brief:

      • Deal name + amount + close date + stage.

      • Signals firing (with detail per signal).

      • Suggested actions per signal (e.g. champion changed → reach out to backup, no activity → schedule check-in, slipped → revisit timeline with customer).

  6. #Send Direct Message to the AE with the risk brief.

  7. For critical deals, also:

  8. Create save-play guidance:

  9. Offer follow-ups:

    • "Want to schedule a deal review?"

    • "Want me to generate a champion-departure response email?"

  10. schedule_action wake at 7 days to re-evaluate.

  11. #Create HubSpot Note on Deal with the risk signals captured.

  12. #Leave Internal Note.

Demo Prep & Meeting Room

Playbooks

/

Demo Prep & Meeting Room

Demo Prep & Meeting Room

Created by

Console Team

Published

RevOps

Google

Slack

HubSpot

+1

Trigger

Webhook — meeting booked in Calendly/Chili Piper Variables: $booking.id, $booking.meetingType, $booking.startTime, $booking.attendees, $booking.hostEmail

Instructions

  1. #Lookup Users on the host (AE/SE) with includeSlackId.

  2. Identify the prospect:

    • From $booking.attendees, parse external attendees.

    • Get the company domain from the primary external attendee.

    • #Search HubSpot Companies by domain to find the account record.

  3. Pull account context:

  4. Enrich attendees:

    • For each external attendee:

      • #Search HubSpot Contacts by email.

      • If not found: custom ZoomInfo Enrich Person + create the contact.

      • Pull title, LinkedIn, prior interactions.

  5. Pull prior touches:

  6. Generate prep doc:

    • #Custom Generate Demo Prep Doc writes a Google Doc with:

      • Meeting time + attendees + their context.

      • Account snapshot (firmographics, tech stack).

      • Deal history + current stage.

      • Prior call highlights.

      • Suggested demo flow based on attendee titles + use case.

      • Open questions / discovery gaps to fill.

  7. Create internal prep channel:

  8. #Send Direct Message to host with: prep doc link, prep channel link, key call-out (e.g. "This account has 3 open competitive POCs — be aware").

  9. schedule_action wake 1 hour before meeting to send a final reminder.

  10. #Create HubSpot Note on Company linking the prep doc and channel.

  11. #Leave Internal Note.

Demo Prep & Meeting Room

Playbooks

/

Demo Prep & Meeting Room

Demo Prep & Meeting Room

Created by

Console Team

Published

RevOps

Google

Slack

HubSpot

+1

Trigger

Webhook — meeting booked in Calendly/Chili Piper Variables: $booking.id, $booking.meetingType, $booking.startTime, $booking.attendees, $booking.hostEmail

Instructions

  1. #Lookup Users on the host (AE/SE) with includeSlackId.

  2. Identify the prospect:

    • From $booking.attendees, parse external attendees.

    • Get the company domain from the primary external attendee.

    • #Search HubSpot Companies by domain to find the account record.

  3. Pull account context:

  4. Enrich attendees:

    • For each external attendee:

      • #Search HubSpot Contacts by email.

      • If not found: custom ZoomInfo Enrich Person + create the contact.

      • Pull title, LinkedIn, prior interactions.

  5. Pull prior touches:

  6. Generate prep doc:

    • #Custom Generate Demo Prep Doc writes a Google Doc with:

      • Meeting time + attendees + their context.

      • Account snapshot (firmographics, tech stack).

      • Deal history + current stage.

      • Prior call highlights.

      • Suggested demo flow based on attendee titles + use case.

      • Open questions / discovery gaps to fill.

  7. Create internal prep channel:

  8. #Send Direct Message to host with: prep doc link, prep channel link, key call-out (e.g. "This account has 3 open competitive POCs — be aware").

  9. schedule_action wake 1 hour before meeting to send a final reminder.

  10. #Create HubSpot Note on Company linking the prep doc and channel.

  11. #Leave Internal Note.

Demo Prep & Meeting Room

Playbooks

/

Demo Prep & Meeting Room

Demo Prep & Meeting Room

Created by

Console Team

Published

RevOps

Google

Slack

HubSpot

+1

Trigger

Webhook — meeting booked in Calendly/Chili Piper Variables: $booking.id, $booking.meetingType, $booking.startTime, $booking.attendees, $booking.hostEmail

Instructions

  1. #Lookup Users on the host (AE/SE) with includeSlackId.

  2. Identify the prospect:

    • From $booking.attendees, parse external attendees.

    • Get the company domain from the primary external attendee.

    • #Search HubSpot Companies by domain to find the account record.

  3. Pull account context:

  4. Enrich attendees:

    • For each external attendee:

      • #Search HubSpot Contacts by email.

      • If not found: custom ZoomInfo Enrich Person + create the contact.

      • Pull title, LinkedIn, prior interactions.

  5. Pull prior touches:

  6. Generate prep doc:

    • #Custom Generate Demo Prep Doc writes a Google Doc with:

      • Meeting time + attendees + their context.

      • Account snapshot (firmographics, tech stack).

      • Deal history + current stage.

      • Prior call highlights.

      • Suggested demo flow based on attendee titles + use case.

      • Open questions / discovery gaps to fill.

  7. Create internal prep channel:

  8. #Send Direct Message to host with: prep doc link, prep channel link, key call-out (e.g. "This account has 3 open competitive POCs — be aware").

  9. schedule_action wake 1 hour before meeting to send a final reminder.

  10. #Create HubSpot Note on Company linking the prep doc and channel.

  11. #Leave Internal Note.

Device Recovery / Unlock

Playbooks

/

Device Recovery / Unlock

Device Recovery / Unlock

Created by

Console Team

Published

IT

Okta

Kandji

Trigger

User reports being locked out of their laptop ("forgot FileVault password", "can't get past BitLocker", "MacBook is asking for recovery key").

Instructions

  1. #Lookup Users on the requester with includeManager.

  2. #List Devices (Kandji) filtered by assignedUserEmail = requester.email to find their device(s).

  3. If multiple devices, #Trigger Form to ask which device.

  4. #Get Device Details (Kandji) to confirm the device is enrolled and active.

  5. Risk check: #Search Okta System Log Custom for recent suspicious activity. If anomalous, escalate to Sec-12 flow.

  6. Identity verification:

  7. On approval: #Get Device FileVault Recovery Key (Kandji) for Mac, or custom Get BitLocker Recovery Key for Windows.

  8. #Send Direct Message to the requester with:

    • The recovery key

    • Step-by-step unlock instructions (different for Mac vs Windows)

    • Reminder to reset their password after unlock

  9. Wait for the requester to confirm they're back in via a follow-up message.

  10. After confirmation, #Send Direct Message suggesting they update their password and re-enroll FileVault/BitLocker.

  11. #Leave Internal Note capturing device serial, verification method, and outcome.

  12. #Resolve Request.

Device Recovery / Unlock

Playbooks

/

Device Recovery / Unlock

Device Recovery / Unlock

Created by

Console Team

Published

IT

Okta

Kandji

Trigger

User reports being locked out of their laptop ("forgot FileVault password", "can't get past BitLocker", "MacBook is asking for recovery key").

Instructions

  1. #Lookup Users on the requester with includeManager.

  2. #List Devices (Kandji) filtered by assignedUserEmail = requester.email to find their device(s).

  3. If multiple devices, #Trigger Form to ask which device.

  4. #Get Device Details (Kandji) to confirm the device is enrolled and active.

  5. Risk check: #Search Okta System Log Custom for recent suspicious activity. If anomalous, escalate to Sec-12 flow.

  6. Identity verification:

  7. On approval: #Get Device FileVault Recovery Key (Kandji) for Mac, or custom Get BitLocker Recovery Key for Windows.

  8. #Send Direct Message to the requester with:

    • The recovery key

    • Step-by-step unlock instructions (different for Mac vs Windows)

    • Reminder to reset their password after unlock

  9. Wait for the requester to confirm they're back in via a follow-up message.

  10. After confirmation, #Send Direct Message suggesting they update their password and re-enroll FileVault/BitLocker.

  11. #Leave Internal Note capturing device serial, verification method, and outcome.

  12. #Resolve Request.

Device Recovery / Unlock

Playbooks

/

Device Recovery / Unlock

Device Recovery / Unlock

Created by

Console Team

Published

IT

Okta

Kandji

Trigger

User reports being locked out of their laptop ("forgot FileVault password", "can't get past BitLocker", "MacBook is asking for recovery key").

Instructions

  1. #Lookup Users on the requester with includeManager.

  2. #List Devices (Kandji) filtered by assignedUserEmail = requester.email to find their device(s).

  3. If multiple devices, #Trigger Form to ask which device.

  4. #Get Device Details (Kandji) to confirm the device is enrolled and active.

  5. Risk check: #Search Okta System Log Custom for recent suspicious activity. If anomalous, escalate to Sec-12 flow.

  6. Identity verification:

  7. On approval: #Get Device FileVault Recovery Key (Kandji) for Mac, or custom Get BitLocker Recovery Key for Windows.

  8. #Send Direct Message to the requester with:

    • The recovery key

    • Step-by-step unlock instructions (different for Mac vs Windows)

    • Reminder to reset their password after unlock

  9. Wait for the requester to confirm they're back in via a follow-up message.

  10. After confirmation, #Send Direct Message suggesting they update their password and re-enroll FileVault/BitLocker.

  11. #Leave Internal Note capturing device serial, verification method, and outcome.

  12. #Resolve Request.

Discount Approval Routing

Playbooks

/

Discount Approval Routing

Discount Approval Routing

Created by

Console Team

Published

RevOps

HubSpot

Gong

Trigger

AE requests a discount on a deal.

Instructions

  1. #Trigger Form to collect:

    1. Deal name or ID.

    2. Discount % requested.

    3. Justification (free text).

    4. Competitor (if competing).

    5. Timeline urgency.

  2. #Lookup Users on the requester.

  3. #Hubspot Search Deals to locate the deal.

  4. #Get HubSpot Deal Details with Activity Timeline to pull ACV, stage, current discount if any.

  5. Calculate the discount tier:

    • 0-10% → AE-discretionary, no approval needed; just log.

    • 10-20% → manager approval.

    • 20-30% → manager + deal desk approval.

    • >30% OR ACV >$500k → manager + deal desk + CFO approval.

    • Custom Get Discount Policy for current org thresholds (may differ from defaults).

  6. #Search Knowledge Base for any vertical/segment-specific discount exceptions.

  7. Attach deal context to the approval:

    • Pull last 3 Gong calls for the deal.

    • Pull engagement summary.

    • Pull competitive context if competitor named.

  8. Approval chain (executed via #Request Approval):

    • Manager (with full deal context).

    • Deal desk (with discount comparison vs similar closed deals via custom Get Discount Benchmarks).

    • CFO (with margin impact calculation if applicable).

  9. On approval at each tier, #Send Direct Message to AE with status.

  10. On full approval:

  11. On rejection:

    • #Send Direct Message to AE with the reason.

    • Offer alternatives (lower discount, payment terms, scope reduction).

  12. #Send Channel Message to #deal-desk-log for visibility.

  13. #Leave Internal Note with the approval trail.

  14. #Resolve Request.

Discount Approval Routing

Playbooks

/

Discount Approval Routing

Discount Approval Routing

Created by

Console Team

Published

RevOps

HubSpot

Gong

Trigger

AE requests a discount on a deal.

Instructions

  1. #Trigger Form to collect:

    1. Deal name or ID.

    2. Discount % requested.

    3. Justification (free text).

    4. Competitor (if competing).

    5. Timeline urgency.

  2. #Lookup Users on the requester.

  3. #Hubspot Search Deals to locate the deal.

  4. #Get HubSpot Deal Details with Activity Timeline to pull ACV, stage, current discount if any.

  5. Calculate the discount tier:

    • 0-10% → AE-discretionary, no approval needed; just log.

    • 10-20% → manager approval.

    • 20-30% → manager + deal desk approval.

    • >30% OR ACV >$500k → manager + deal desk + CFO approval.

    • Custom Get Discount Policy for current org thresholds (may differ from defaults).

  6. #Search Knowledge Base for any vertical/segment-specific discount exceptions.

  7. Attach deal context to the approval:

    • Pull last 3 Gong calls for the deal.

    • Pull engagement summary.

    • Pull competitive context if competitor named.

  8. Approval chain (executed via #Request Approval):

    • Manager (with full deal context).

    • Deal desk (with discount comparison vs similar closed deals via custom Get Discount Benchmarks).

    • CFO (with margin impact calculation if applicable).

  9. On approval at each tier, #Send Direct Message to AE with status.

  10. On full approval:

  11. On rejection:

    • #Send Direct Message to AE with the reason.

    • Offer alternatives (lower discount, payment terms, scope reduction).

  12. #Send Channel Message to #deal-desk-log for visibility.

  13. #Leave Internal Note with the approval trail.

  14. #Resolve Request.

Discount Approval Routing

Playbooks

/

Discount Approval Routing

Discount Approval Routing

Created by

Console Team

Published

RevOps

HubSpot

Gong

Trigger

AE requests a discount on a deal.

Instructions

  1. #Trigger Form to collect:

    1. Deal name or ID.

    2. Discount % requested.

    3. Justification (free text).

    4. Competitor (if competing).

    5. Timeline urgency.

  2. #Lookup Users on the requester.

  3. #Hubspot Search Deals to locate the deal.

  4. #Get HubSpot Deal Details with Activity Timeline to pull ACV, stage, current discount if any.

  5. Calculate the discount tier:

    • 0-10% → AE-discretionary, no approval needed; just log.

    • 10-20% → manager approval.

    • 20-30% → manager + deal desk approval.

    • >30% OR ACV >$500k → manager + deal desk + CFO approval.

    • Custom Get Discount Policy for current org thresholds (may differ from defaults).

  6. #Search Knowledge Base for any vertical/segment-specific discount exceptions.

  7. Attach deal context to the approval:

    • Pull last 3 Gong calls for the deal.

    • Pull engagement summary.

    • Pull competitive context if competitor named.

  8. Approval chain (executed via #Request Approval):

    • Manager (with full deal context).

    • Deal desk (with discount comparison vs similar closed deals via custom Get Discount Benchmarks).

    • CFO (with margin impact calculation if applicable).

  9. On approval at each tier, #Send Direct Message to AE with status.

  10. On full approval:

  11. On rejection:

    • #Send Direct Message to AE with the reason.

    • Offer alternatives (lower discount, payment terms, scope reduction).

  12. #Send Channel Message to #deal-desk-log for visibility.

  13. #Leave Internal Note with the approval trail.

  14. #Resolve Request.

Employee Data Updates

Playbooks

/

Employee Data Updates

Employee Data Updates

Created by

Console Team

Published

HR

Trigger

Requester wants to update personal info (home address, emergency contact, phone number, marital status, dependents).

Instructions

Employee Data Updates

Playbooks

/

Employee Data Updates

Employee Data Updates

Created by

Console Team

Published

HR

Trigger

Requester wants to update personal info (home address, emergency contact, phone number, marital status, dependents).

Instructions

Employee Data Updates

Playbooks

/

Employee Data Updates

Employee Data Updates

Created by

Console Team

Published

HR

Trigger

Requester wants to update personal info (home address, emergency contact, phone number, marital status, dependents).

Instructions

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

IT

Okta

Kandji

Ramp

+8

Trigger

Webhook — worker.terminated Variables: $employee.email, $employee.managerEmail, $employee.terminationDate, $employee.department

Instructions

  1. #Lookup Users on $employee.email with includeGroups, includeApps, includeManager.

  2. #Search Okta User by Email, then #Revoke All User Sessions, then #Deactivate User (Okta).

  3. #Suspend Google User and #Transfer Drive Files to $employee.managerEmail.

  4. #Out Of Office to set the auto-reply.

  5. If department == "Engineering": #Remove User from Org (GitHub), #Disable Datadog User, custom AWS IAM detach.

  6. If department == "Sales": revoke Salesforce/Gong/Outreach seats (custom actions).

  7. Loop user's apps from step 1; for each Productiv-tracked SaaS, call the appropriate #Remove from Group action.

  8. #Kandji: Force Device Check-In then #Device Lock for each assigned device.

  9. #Update User (Ramp) to suspend the card.

  10. Create Linear Issue in the IT-Audit project documenting the offboarding.

  11. #Send Channel Message to #it-audit summarizing what was revoked.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

IT

Okta

Kandji

Ramp

+8

Trigger

Webhook — worker.terminated Variables: $employee.email, $employee.managerEmail, $employee.terminationDate, $employee.department

Instructions

  1. #Lookup Users on $employee.email with includeGroups, includeApps, includeManager.

  2. #Search Okta User by Email, then #Revoke All User Sessions, then #Deactivate User (Okta).

  3. #Suspend Google User and #Transfer Drive Files to $employee.managerEmail.

  4. #Out Of Office to set the auto-reply.

  5. If department == "Engineering": #Remove User from Org (GitHub), #Disable Datadog User, custom AWS IAM detach.

  6. If department == "Sales": revoke Salesforce/Gong/Outreach seats (custom actions).

  7. Loop user's apps from step 1; for each Productiv-tracked SaaS, call the appropriate #Remove from Group action.

  8. #Kandji: Force Device Check-In then #Device Lock for each assigned device.

  9. #Update User (Ramp) to suspend the card.

  10. Create Linear Issue in the IT-Audit project documenting the offboarding.

  11. #Send Channel Message to #it-audit summarizing what was revoked.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

IT

Okta

Kandji

Ramp

+8

Trigger

Webhook — worker.terminated Variables: $employee.email, $employee.managerEmail, $employee.terminationDate, $employee.department

Instructions

  1. #Lookup Users on $employee.email with includeGroups, includeApps, includeManager.

  2. #Search Okta User by Email, then #Revoke All User Sessions, then #Deactivate User (Okta).

  3. #Suspend Google User and #Transfer Drive Files to $employee.managerEmail.

  4. #Out Of Office to set the auto-reply.

  5. If department == "Engineering": #Remove User from Org (GitHub), #Disable Datadog User, custom AWS IAM detach.

  6. If department == "Sales": revoke Salesforce/Gong/Outreach seats (custom actions).

  7. Loop user's apps from step 1; for each Productiv-tracked SaaS, call the appropriate #Remove from Group action.

  8. #Kandji: Force Device Check-In then #Device Lock for each assigned device.

  9. #Update User (Ramp) to suspend the card.

  10. Create Linear Issue in the IT-Audit project documenting the offboarding.

  11. #Send Channel Message to #it-audit summarizing what was revoked.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

HR

Google Calendar

Workday

Rippling

+3

Trigger

Webhook — worker.terminated Variables: $employee.email, $employee.managerEmail, $employee.terminationDate, $employee.terminationType (voluntary / involuntary), $employee.personalEmail

Instructions

  1. #Lookup Users on $employee.email with includeManager and includeGroups.

  2. Branch on $employee.terminationType:

    • Voluntary → run full sequence below.

    • Involuntary → skip exit interview, accelerate Drive transfer and document delivery to same day. Coordinate with security via #Send Channel Message to #hr-security-sync.

  3. Schedule exit interview:

  4. File and calendar transition:

  5. Final paystub and payroll:

  6. Directory cleanup:

  7. Separation paperwork:

  8. Knowledge transfer:

    • #Send Direct Message to the manager: a checklist (project handoff doc, vendor relationships, ongoing commitments) with a #Trigger Form to confirm completion.

  9. Recognition (voluntary only):

    • #Send Channel Message to #farewells (or the team channel) on the termination date with a thank-you note from the manager.

  10. #Leave Internal Note capturing all handoff details, final pay status, signature status.

  11. #Create Linear Issue in the HR-Audit project documenting the offboarding for compliance.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

HR

Google Calendar

Workday

Rippling

+3

Trigger

Webhook — worker.terminated Variables: $employee.email, $employee.managerEmail, $employee.terminationDate, $employee.terminationType (voluntary / involuntary), $employee.personalEmail

Instructions

  1. #Lookup Users on $employee.email with includeManager and includeGroups.

  2. Branch on $employee.terminationType:

    • Voluntary → run full sequence below.

    • Involuntary → skip exit interview, accelerate Drive transfer and document delivery to same day. Coordinate with security via #Send Channel Message to #hr-security-sync.

  3. Schedule exit interview:

  4. File and calendar transition:

  5. Final paystub and payroll:

  6. Directory cleanup:

  7. Separation paperwork:

  8. Knowledge transfer:

    • #Send Direct Message to the manager: a checklist (project handoff doc, vendor relationships, ongoing commitments) with a #Trigger Form to confirm completion.

  9. Recognition (voluntary only):

    • #Send Channel Message to #farewells (or the team channel) on the termination date with a thank-you note from the manager.

  10. #Leave Internal Note capturing all handoff details, final pay status, signature status.

  11. #Create Linear Issue in the HR-Audit project documenting the offboarding for compliance.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

HR

Google Calendar

Workday

Rippling

+3

Trigger

Webhook — worker.terminated Variables: $employee.email, $employee.managerEmail, $employee.terminationDate, $employee.terminationType (voluntary / involuntary), $employee.personalEmail

Instructions

  1. #Lookup Users on $employee.email with includeManager and includeGroups.

  2. Branch on $employee.terminationType:

    • Voluntary → run full sequence below.

    • Involuntary → skip exit interview, accelerate Drive transfer and document delivery to same day. Coordinate with security via #Send Channel Message to #hr-security-sync.

  3. Schedule exit interview:

  4. File and calendar transition:

  5. Final paystub and payroll:

  6. Directory cleanup:

  7. Separation paperwork:

  8. Knowledge transfer:

    • #Send Direct Message to the manager: a checklist (project handoff doc, vendor relationships, ongoing commitments) with a #Trigger Form to confirm completion.

  9. Recognition (voluntary only):

    • #Send Channel Message to #farewells (or the team channel) on the termination date with a thank-you note from the manager.

  10. #Leave Internal Note capturing all handoff details, final pay status, signature status.

  11. #Create Linear Issue in the HR-Audit project documenting the offboarding for compliance.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

Security

Okta

Google Workspace Admin

Kandji

Trigger

Webhook — worker.terminated (parallel to IT-2 and HR-2) Variables: $employee.email, $employee.terminationDate, $employee.terminationType

Instructions

  1. #Lookup Users on $employee.email with includeGroups, includeApps, includeManager.

  2. Immediate containment (executes regardless of termination type):

  3. SSO-managed app revocations:

    • For each app in the user's apps list that is Okta-managed: #Remove from Group for the entitlement group.

  4. Non-SSO app coordination:

  5. schedule_action wake at 24h to check app-owner responses:

  6. Force re-check at day 3 and day 7:

    • schedule_action wakes to re-query each non-SSO app's user list.

    • For any app where the user still appears: #Send Channel Message to #security with the gap.

  7. Mailbox sweep:

  8. Device confirmation:

  9. Final closure:

  10. #Send Channel Message to #security confirming closure with the report link.

  11. #Create Linear Issue in the Security-Audit project with the full chain.

  12. #Leave Internal Note capturing all actions and confirmation status.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

Security

Okta

Google Workspace Admin

Kandji

Trigger

Webhook — worker.terminated (parallel to IT-2 and HR-2) Variables: $employee.email, $employee.terminationDate, $employee.terminationType

Instructions

  1. #Lookup Users on $employee.email with includeGroups, includeApps, includeManager.

  2. Immediate containment (executes regardless of termination type):

  3. SSO-managed app revocations:

    • For each app in the user's apps list that is Okta-managed: #Remove from Group for the entitlement group.

  4. Non-SSO app coordination:

  5. schedule_action wake at 24h to check app-owner responses:

  6. Force re-check at day 3 and day 7:

    • schedule_action wakes to re-query each non-SSO app's user list.

    • For any app where the user still appears: #Send Channel Message to #security with the gap.

  7. Mailbox sweep:

  8. Device confirmation:

  9. Final closure:

  10. #Send Channel Message to #security confirming closure with the report link.

  11. #Create Linear Issue in the Security-Audit project with the full chain.

  12. #Leave Internal Note capturing all actions and confirmation status.

Employee Offboarding

Playbooks

/

Employee Offboarding

Employee Offboarding

Created by

Console Team

Published

Security

Okta

Google Workspace Admin

Kandji

Trigger

Webhook — worker.terminated (parallel to IT-2 and HR-2) Variables: $employee.email, $employee.terminationDate, $employee.terminationType

Instructions

  1. #Lookup Users on $employee.email with includeGroups, includeApps, includeManager.

  2. Immediate containment (executes regardless of termination type):

  3. SSO-managed app revocations:

    • For each app in the user's apps list that is Okta-managed: #Remove from Group for the entitlement group.

  4. Non-SSO app coordination:

  5. schedule_action wake at 24h to check app-owner responses:

  6. Force re-check at day 3 and day 7:

    • schedule_action wakes to re-query each non-SSO app's user list.

    • For any app where the user still appears: #Send Channel Message to #security with the gap.

  7. Mailbox sweep:

  8. Device confirmation:

  9. Final closure:

  10. #Send Channel Message to #security confirming closure with the report link.

  11. #Create Linear Issue in the Security-Audit project with the full chain.

  12. #Leave Internal Note capturing all actions and confirmation status.

Employment Verification

Playbooks

/

Employment Verification

Employment Verification

Created by

Console Team

Published

HR

Workday

DocuSign

Trigger

Requester needs an employment or income verification letter ("for my mortgage", "for my landlord", "for the visa lawyer").

Instructions

  1. #Trigger Form to collect:

    • Purpose (mortgage / rental / visa / loan / other)

    • Verifying party name, email, fax

    • What to include (employment only / employment + salary / employment + salary + bonus)

    • Any specific format required by the verifier

    • Delivery preference (email to verifier directly, or email to requester)

  2. #Lookup Users on the requester.

  3. #Custom Workday Get Employment Data to pull: hire date, current title, current comp, employment status (FT/PT), location, manager.

  4. If the request includes bonus / commission detail, #custom Workday Get YTD Compensation for the relevant breakdown.

  5. Generate the letter:

  6. Route for signature:

  7. On signature:

  8. #Send Direct Message to the requester confirming delivery method, date sent, and verifier contact.

  9. #Leave Internal Note capturing purpose, verifier, data included, delivery confirmation.

  10. #Resolve Request.

Employment Verification

Playbooks

/

Employment Verification

Employment Verification

Created by

Console Team

Published

HR

Workday

DocuSign

Trigger

Requester needs an employment or income verification letter ("for my mortgage", "for my landlord", "for the visa lawyer").

Instructions

  1. #Trigger Form to collect:

    • Purpose (mortgage / rental / visa / loan / other)

    • Verifying party name, email, fax

    • What to include (employment only / employment + salary / employment + salary + bonus)

    • Any specific format required by the verifier

    • Delivery preference (email to verifier directly, or email to requester)

  2. #Lookup Users on the requester.

  3. #Custom Workday Get Employment Data to pull: hire date, current title, current comp, employment status (FT/PT), location, manager.

  4. If the request includes bonus / commission detail, #custom Workday Get YTD Compensation for the relevant breakdown.

  5. Generate the letter:

  6. Route for signature:

  7. On signature:

  8. #Send Direct Message to the requester confirming delivery method, date sent, and verifier contact.

  9. #Leave Internal Note capturing purpose, verifier, data included, delivery confirmation.

  10. #Resolve Request.

Employment Verification

Playbooks

/

Employment Verification

Employment Verification

Created by

Console Team

Published

HR

Workday

DocuSign

Trigger

Requester needs an employment or income verification letter ("for my mortgage", "for my landlord", "for the visa lawyer").

Instructions

  1. #Trigger Form to collect:

    • Purpose (mortgage / rental / visa / loan / other)

    • Verifying party name, email, fax

    • What to include (employment only / employment + salary / employment + salary + bonus)

    • Any specific format required by the verifier

    • Delivery preference (email to verifier directly, or email to requester)

  2. #Lookup Users on the requester.

  3. #Custom Workday Get Employment Data to pull: hire date, current title, current comp, employment status (FT/PT), location, manager.

  4. If the request includes bonus / commission detail, #custom Workday Get YTD Compensation for the relevant breakdown.

  5. Generate the letter:

  6. Route for signature:

  7. On signature:

  8. #Send Direct Message to the requester confirming delivery method, date sent, and verifier contact.

  9. #Leave Internal Note capturing purpose, verifier, data included, delivery confirmation.

  10. #Resolve Request.

Endpoint Compliance Drift

Playbooks

/

Endpoint Compliance Drift

Endpoint Compliance Drift

Created by

Console Team

Published

Security

Okta

1Password

Kandji

+3

Trigger

Detection — scheduled scan every 6 hours

Instructions

  1. #List Devices (Kandji) for all enrolled devices.

  2. For each device, #Get Device Details and #Kandji Get Device Library Items Status for compliance posture.

  3. #CrowdStrike Search Devices by serial to confirm EDR coverage.

  4. Check compliance gates:

    • FileVault/BitLocker encryption enabled?

    • OS version within 2 releases of latest?

    • Required Kandji library items deployed?

    • CrowdStrike sensor running and healthy?

    • Required apps installed (e.g. 1Password, VPN)?

    • Last check-in within 7 days?

  5. For each device failing one or more gates:

    • #Lookup Users on device.assignedUserEmail.

    • Skip if user is on leave or hire date < 14 days (grace period).

    • Check if this device was already flagged within the last 7 days (avoid spam).

  6. Try auto-remediation first:

    • Encryption off → #Create Kandji Custom Script to re-enable FileVault.

    • OS outdated → #Create Kandji Custom Script to trigger software update with user notification.

    • Missing app → custom Kandji Reinstall Library Item.

    • EDR not running → #CrowdStrike: Init RTR Session + #CrowdStrike: RTR Run Script to restart the sensor.

    • Stale check-in → #Kandji Blank Push (Force Check-In).

  7. #Send Direct Message to the user explaining what was fixed and what they need to do.

  8. schedule_action wake at 24h to re-check compliance.

  9. On wake, if still non-compliant:

  10. On second wake (day 3), if still non-compliant:

  11. Day 7 escalation:

  12. #Custom Vanta Upload Evidence weekly with compliance stats.

  13. #Leave Internal Note per device capturing the drift and remediation path.

Endpoint Compliance Drift

Playbooks

/

Endpoint Compliance Drift

Endpoint Compliance Drift

Created by

Console Team

Published

Security

Okta

1Password

Kandji

+3

Trigger

Detection — scheduled scan every 6 hours

Instructions

  1. #List Devices (Kandji) for all enrolled devices.

  2. For each device, #Get Device Details and #Kandji Get Device Library Items Status for compliance posture.

  3. #CrowdStrike Search Devices by serial to confirm EDR coverage.

  4. Check compliance gates:

    • FileVault/BitLocker encryption enabled?

    • OS version within 2 releases of latest?

    • Required Kandji library items deployed?

    • CrowdStrike sensor running and healthy?

    • Required apps installed (e.g. 1Password, VPN)?

    • Last check-in within 7 days?

  5. For each device failing one or more gates:

    • #Lookup Users on device.assignedUserEmail.

    • Skip if user is on leave or hire date < 14 days (grace period).

    • Check if this device was already flagged within the last 7 days (avoid spam).

  6. Try auto-remediation first:

    • Encryption off → #Create Kandji Custom Script to re-enable FileVault.

    • OS outdated → #Create Kandji Custom Script to trigger software update with user notification.

    • Missing app → custom Kandji Reinstall Library Item.

    • EDR not running → #CrowdStrike: Init RTR Session + #CrowdStrike: RTR Run Script to restart the sensor.

    • Stale check-in → #Kandji Blank Push (Force Check-In).

  7. #Send Direct Message to the user explaining what was fixed and what they need to do.

  8. schedule_action wake at 24h to re-check compliance.

  9. On wake, if still non-compliant:

  10. On second wake (day 3), if still non-compliant:

  11. Day 7 escalation:

  12. #Custom Vanta Upload Evidence weekly with compliance stats.

  13. #Leave Internal Note per device capturing the drift and remediation path.

Endpoint Compliance Drift

Playbooks

/

Endpoint Compliance Drift

Endpoint Compliance Drift

Created by

Console Team

Published

Security

Okta

1Password

Kandji

+3

Trigger

Detection — scheduled scan every 6 hours

Instructions

  1. #List Devices (Kandji) for all enrolled devices.

  2. For each device, #Get Device Details and #Kandji Get Device Library Items Status for compliance posture.

  3. #CrowdStrike Search Devices by serial to confirm EDR coverage.

  4. Check compliance gates:

    • FileVault/BitLocker encryption enabled?

    • OS version within 2 releases of latest?

    • Required Kandji library items deployed?

    • CrowdStrike sensor running and healthy?

    • Required apps installed (e.g. 1Password, VPN)?

    • Last check-in within 7 days?

  5. For each device failing one or more gates:

    • #Lookup Users on device.assignedUserEmail.

    • Skip if user is on leave or hire date < 14 days (grace period).

    • Check if this device was already flagged within the last 7 days (avoid spam).

  6. Try auto-remediation first:

    • Encryption off → #Create Kandji Custom Script to re-enable FileVault.

    • OS outdated → #Create Kandji Custom Script to trigger software update with user notification.

    • Missing app → custom Kandji Reinstall Library Item.

    • EDR not running → #CrowdStrike: Init RTR Session + #CrowdStrike: RTR Run Script to restart the sensor.

    • Stale check-in → #Kandji Blank Push (Force Check-In).

  7. #Send Direct Message to the user explaining what was fixed and what they need to do.

  8. schedule_action wake at 24h to re-check compliance.

  9. On wake, if still non-compliant:

  10. On second wake (day 3), if still non-compliant:

  11. Day 7 escalation:

  12. #Custom Vanta Upload Evidence weekly with compliance stats.

  13. #Leave Internal Note per device capturing the drift and remediation path.

Engagement & Pulse Surveys

Playbooks

/

Engagement & Pulse Surveys

Engagement & Pulse Surveys

Created by

Console Team

Published

HR

Workday

Trigger

Scheduled — quarterly eNPS (every 90 days) or monthly pulse (1st of each month)

Instructions

  1. Determine survey type and target cohort:

    • eNPS → all employees with tenure >30 days.

    • Pulse → specific team or all employees with tenure >90 days.

    • Targeted pulse → custom criteria from a stored config.

  2. #Custom Workday Query Workers with filters (tenure, team, location) to get the cohort.

  3. #Custom Culture Amp Create Survey Run with the survey template and cohort.

  4. For each cohort member:

  5. schedule_action wakes at day 3, 7, 10 (close at day 14):

  6. At close:

  7. Flag concerning drops:

  8. Post org-wide summary:

    • #Send Channel Message to #people with high-level trends (no team-level data) and a link to the leadership deck.

  9. #Leave Internal Note capturing run dates, response rate, key shifts.

Engagement & Pulse Surveys

Playbooks

/

Engagement & Pulse Surveys

Engagement & Pulse Surveys

Created by

Console Team

Published

HR

Workday

Trigger

Scheduled — quarterly eNPS (every 90 days) or monthly pulse (1st of each month)

Instructions

  1. Determine survey type and target cohort:

    • eNPS → all employees with tenure >30 days.

    • Pulse → specific team or all employees with tenure >90 days.

    • Targeted pulse → custom criteria from a stored config.

  2. #Custom Workday Query Workers with filters (tenure, team, location) to get the cohort.

  3. #Custom Culture Amp Create Survey Run with the survey template and cohort.

  4. For each cohort member:

  5. schedule_action wakes at day 3, 7, 10 (close at day 14):

  6. At close:

  7. Flag concerning drops:

  8. Post org-wide summary:

    • #Send Channel Message to #people with high-level trends (no team-level data) and a link to the leadership deck.

  9. #Leave Internal Note capturing run dates, response rate, key shifts.

Engagement & Pulse Surveys

Playbooks

/

Engagement & Pulse Surveys

Engagement & Pulse Surveys

Created by

Console Team

Published

HR

Workday

Trigger

Scheduled — quarterly eNPS (every 90 days) or monthly pulse (1st of each month)

Instructions

  1. Determine survey type and target cohort:

    • eNPS → all employees with tenure >30 days.

    • Pulse → specific team or all employees with tenure >90 days.

    • Targeted pulse → custom criteria from a stored config.

  2. #Custom Workday Query Workers with filters (tenure, team, location) to get the cohort.

  3. #Custom Culture Amp Create Survey Run with the survey template and cohort.

  4. For each cohort member:

  5. schedule_action wakes at day 3, 7, 10 (close at day 14):

  6. At close:

  7. Flag concerning drops:

  8. Post org-wide summary:

    • #Send Channel Message to #people with high-level trends (no team-level data) and a link to the leadership deck.

  9. #Leave Internal Note capturing run dates, response rate, key shifts.

Equity & Stock Option Support

Playbooks

/

Equity & Stock Option Support

Equity & Stock Option Support

Created by

Console Team

Published

Finance

NetSuite

Trigger

Requester asks about equity.

Instructions

  1. #Lookup Users to confirm equity eligibility.

  2. Parse question type.

  3. Pull from Carta:

  4. Compute answer:

    • Vesting: next vest, amount, total vested, remaining.

    • Value: vested at current 409A.

    • Exercise: eligible options, exercise price, current 409A, AMT/tax notes (recommend CPA).

    • Tax: ISO vs NSO, AMT, 83b — encourage tax advisor.

  5. #Send Direct Message with numbers, dates, Carta link, "consult CPA" note.

  6. For exercise requests:

  7. Complex cases → #Prompt for Handoff to CFO/stock plan admin.

  8. #Leave Internal Note.

  9. #Resolve Request.

Equity & Stock Option Support

Playbooks

/

Equity & Stock Option Support

Equity & Stock Option Support

Created by

Console Team

Published

Finance

NetSuite

Trigger

Requester asks about equity.

Instructions

  1. #Lookup Users to confirm equity eligibility.

  2. Parse question type.

  3. Pull from Carta:

  4. Compute answer:

    • Vesting: next vest, amount, total vested, remaining.

    • Value: vested at current 409A.

    • Exercise: eligible options, exercise price, current 409A, AMT/tax notes (recommend CPA).

    • Tax: ISO vs NSO, AMT, 83b — encourage tax advisor.

  5. #Send Direct Message with numbers, dates, Carta link, "consult CPA" note.

  6. For exercise requests:

  7. Complex cases → #Prompt for Handoff to CFO/stock plan admin.

  8. #Leave Internal Note.

  9. #Resolve Request.

Equity & Stock Option Support

Playbooks

/

Equity & Stock Option Support

Equity & Stock Option Support

Created by

Console Team

Published

Finance

NetSuite

Trigger

Requester asks about equity.

Instructions

  1. #Lookup Users to confirm equity eligibility.

  2. Parse question type.

  3. Pull from Carta:

  4. Compute answer:

    • Vesting: next vest, amount, total vested, remaining.

    • Value: vested at current 409A.

    • Exercise: eligible options, exercise price, current 409A, AMT/tax notes (recommend CPA).

    • Tax: ISO vs NSO, AMT, 83b — encourage tax advisor.

  5. #Send Direct Message with numbers, dates, Carta link, "consult CPA" note.

  6. For exercise requests:

  7. Complex cases → #Prompt for Handoff to CFO/stock plan admin.

  8. #Leave Internal Note.

  9. #Resolve Request.

Expansion Signal Detection

Playbooks

/

Expansion Signal Detection

Expansion Signal Detection

Created by

Console Team

Published

RevOps

HubSpot

LinkedIn

Plain

+1

Trigger

Detection — scheduled every 4 hours + webhook from product analytics

Instructions

  1. Pull signals in parallel:

  2. For each signal:

  3. Skip if the account had an expansion deal closed in the last 60 days.

  4. Compose the signal brief:

    • Account name + tier.

    • Signal type + detail (e.g. "Used 95% of 50 seats" / "VP of Engineering hired" / "RFP mentioned in ticket #123").

    • Recommended next step (e.g. "Schedule expansion conversation" / "Proactive seat-true-up call" / "Send case study X").

    • Account context (current ACV, last expansion, account health, primary use case).

  5. #Send Direct Message to the AE + CSM with the signal brief.

  6. Offer follow-up:

    • "Want to draft an outreach email to the new champion?"

    • "Want to generate an expansion proposal?"

    • "Want to log this as a customer story?"

  7. #Create HubSpot Note on Company with the signal captured.

  8. #Send Channel Message to #expansion-signals for visibility.

  9. schedule_action wake at 7 days to check if AE/CSM acted.

  10. On wake: if no activity, #Send Direct Message reminder.

  11. #Leave Internal Note.

Expansion Signal Detection

Playbooks

/

Expansion Signal Detection

Expansion Signal Detection

Created by

Console Team

Published

RevOps

HubSpot

LinkedIn

Plain

+1

Trigger

Detection — scheduled every 4 hours + webhook from product analytics

Instructions

  1. Pull signals in parallel:

  2. For each signal:

  3. Skip if the account had an expansion deal closed in the last 60 days.

  4. Compose the signal brief:

    • Account name + tier.

    • Signal type + detail (e.g. "Used 95% of 50 seats" / "VP of Engineering hired" / "RFP mentioned in ticket #123").

    • Recommended next step (e.g. "Schedule expansion conversation" / "Proactive seat-true-up call" / "Send case study X").

    • Account context (current ACV, last expansion, account health, primary use case).

  5. #Send Direct Message to the AE + CSM with the signal brief.

  6. Offer follow-up:

    • "Want to draft an outreach email to the new champion?"

    • "Want to generate an expansion proposal?"

    • "Want to log this as a customer story?"

  7. #Create HubSpot Note on Company with the signal captured.

  8. #Send Channel Message to #expansion-signals for visibility.

  9. schedule_action wake at 7 days to check if AE/CSM acted.

  10. On wake: if no activity, #Send Direct Message reminder.

  11. #Leave Internal Note.

Expansion Signal Detection

Playbooks

/

Expansion Signal Detection

Expansion Signal Detection

Created by

Console Team

Published

RevOps

HubSpot

LinkedIn

Plain

+1

Trigger

Detection — scheduled every 4 hours + webhook from product analytics

Instructions

  1. Pull signals in parallel:

  2. For each signal:

  3. Skip if the account had an expansion deal closed in the last 60 days.

  4. Compose the signal brief:

    • Account name + tier.

    • Signal type + detail (e.g. "Used 95% of 50 seats" / "VP of Engineering hired" / "RFP mentioned in ticket #123").

    • Recommended next step (e.g. "Schedule expansion conversation" / "Proactive seat-true-up call" / "Send case study X").

    • Account context (current ACV, last expansion, account health, primary use case).

  5. #Send Direct Message to the AE + CSM with the signal brief.

  6. Offer follow-up:

    • "Want to draft an outreach email to the new champion?"

    • "Want to generate an expansion proposal?"

    • "Want to log this as a customer story?"

  7. #Create HubSpot Note on Company with the signal captured.

  8. #Send Channel Message to #expansion-signals for visibility.

  9. schedule_action wake at 7 days to check if AE/CSM acted.

  10. On wake: if no activity, #Send Direct Message reminder.

  11. #Leave Internal Note.

Expense Submission & Approval

Playbooks

/

Expense Submission & Approval

Expense Submission & Approval

Created by

Console Team

Published

Finance

Ramp

NetSuite

Trigger

Requester submits expenses.

Instructions

  1. #Trigger Form for expense type, receipts (upload), amount, date(s), cost center, business purpose, attendees if meal.

  2. #Lookup Users with includeManager.

  3. Parse receipts:

  4. Policy validation:

  5. Approval path:

    • Auto-approve under $X if compliant.

    • Manager approval otherwise.

    • Finance approval over $5k or any flag.

  6. #Request Approval.

  7. On approval:

  8. #Send Direct Message to requester with status, expected reimbursement, NetSuite link.

  9. #Leave Internal Note.

  10. #Resolve Request.

Expense Submission & Approval

Playbooks

/

Expense Submission & Approval

Expense Submission & Approval

Created by

Console Team

Published

Finance

Ramp

NetSuite

Trigger

Requester submits expenses.

Instructions

  1. #Trigger Form for expense type, receipts (upload), amount, date(s), cost center, business purpose, attendees if meal.

  2. #Lookup Users with includeManager.

  3. Parse receipts:

  4. Policy validation:

  5. Approval path:

    • Auto-approve under $X if compliant.

    • Manager approval otherwise.

    • Finance approval over $5k or any flag.

  6. #Request Approval.

  7. On approval:

  8. #Send Direct Message to requester with status, expected reimbursement, NetSuite link.

  9. #Leave Internal Note.

  10. #Resolve Request.

Expense Submission & Approval

Playbooks

/

Expense Submission & Approval

Expense Submission & Approval

Created by

Console Team

Published

Finance

Ramp

NetSuite

Trigger

Requester submits expenses.

Instructions

  1. #Trigger Form for expense type, receipts (upload), amount, date(s), cost center, business purpose, attendees if meal.

  2. #Lookup Users with includeManager.

  3. Parse receipts:

  4. Policy validation:

  5. Approval path:

    • Auto-approve under $X if compliant.

    • Manager approval otherwise.

    • Finance approval over $5k or any flag.

  6. #Request Approval.

  7. On approval:

  8. #Send Direct Message to requester with status, expected reimbursement, NetSuite link.

  9. #Leave Internal Note.

  10. #Resolve Request.

GitHub Outside-Collaborator Review

Playbooks

/

GitHub Outside-Collaborator Review

GitHub Outside-Collaborator Review

Created by

Console Team

Published

Security

GitHub

Vanta

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. #Custom GitHub List Outside Collaborators at org level to get all non-employee accounts with repo access.

  2. For each outside collaborator:

    • Capture: GitHub login, email (if visible), repos with access, permission level, last activity.

  3. Cross-reference against employees:

    • #Lookup Users for each outside collaborator's email.

    • If matches an active employee → flag as "should be inside collaborator" and skip ownership review.

  4. For confirmed outside collaborators:

  5. Group findings by repo owner.

  6. For each repo owner, #Lookup Users with includeSlackId.

  7. #Send Direct Message to each owner with their list:

    • "{{collaborator}}: {{repos}}, last active {{date}}"

    • #Trigger Form per collaborator: "Keep" / "Revoke" / "Convert to inside (employee)".

  8. schedule_action wake at 5 days for response.

  9. On wake, execute decisions:

    • Keep → log and exit; capture justification.

    • Revoke → #Remove User from Repo for each repo, or #Remove User from Org if all repos revoked.

    • Convert → #custom GitHub Add Org Member + remove outside-collab status.

    • No response → escalate at day 7 to repo owner's manager; revoke at day 10 if still no response.

  10. #Custom Vanta Log Access Review with the outside-collab decisions.

  11. #Send Channel Message to #security weekly summary: total reviewed, kept, revoked, escalated.

  12. #Leave Internal Note capturing the cycle.

GitHub Outside-Collaborator Review

Playbooks

/

GitHub Outside-Collaborator Review

GitHub Outside-Collaborator Review

Created by

Console Team

Published

Security

GitHub

Vanta

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. #Custom GitHub List Outside Collaborators at org level to get all non-employee accounts with repo access.

  2. For each outside collaborator:

    • Capture: GitHub login, email (if visible), repos with access, permission level, last activity.

  3. Cross-reference against employees:

    • #Lookup Users for each outside collaborator's email.

    • If matches an active employee → flag as "should be inside collaborator" and skip ownership review.

  4. For confirmed outside collaborators:

  5. Group findings by repo owner.

  6. For each repo owner, #Lookup Users with includeSlackId.

  7. #Send Direct Message to each owner with their list:

    • "{{collaborator}}: {{repos}}, last active {{date}}"

    • #Trigger Form per collaborator: "Keep" / "Revoke" / "Convert to inside (employee)".

  8. schedule_action wake at 5 days for response.

  9. On wake, execute decisions:

    • Keep → log and exit; capture justification.

    • Revoke → #Remove User from Repo for each repo, or #Remove User from Org if all repos revoked.

    • Convert → #custom GitHub Add Org Member + remove outside-collab status.

    • No response → escalate at day 7 to repo owner's manager; revoke at day 10 if still no response.

  10. #Custom Vanta Log Access Review with the outside-collab decisions.

  11. #Send Channel Message to #security weekly summary: total reviewed, kept, revoked, escalated.

  12. #Leave Internal Note capturing the cycle.

GitHub Outside-Collaborator Review

Playbooks

/

GitHub Outside-Collaborator Review

GitHub Outside-Collaborator Review

Created by

Console Team

Published

Security

GitHub

Vanta

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. #Custom GitHub List Outside Collaborators at org level to get all non-employee accounts with repo access.

  2. For each outside collaborator:

    • Capture: GitHub login, email (if visible), repos with access, permission level, last activity.

  3. Cross-reference against employees:

    • #Lookup Users for each outside collaborator's email.

    • If matches an active employee → flag as "should be inside collaborator" and skip ownership review.

  4. For confirmed outside collaborators:

  5. Group findings by repo owner.

  6. For each repo owner, #Lookup Users with includeSlackId.

  7. #Send Direct Message to each owner with their list:

    • "{{collaborator}}: {{repos}}, last active {{date}}"

    • #Trigger Form per collaborator: "Keep" / "Revoke" / "Convert to inside (employee)".

  8. schedule_action wake at 5 days for response.

  9. On wake, execute decisions:

    • Keep → log and exit; capture justification.

    • Revoke → #Remove User from Repo for each repo, or #Remove User from Org if all repos revoked.

    • Convert → #custom GitHub Add Org Member + remove outside-collab status.

    • No response → escalate at day 7 to repo owner's manager; revoke at day 10 if still no response.

  10. #Custom Vanta Log Access Review with the outside-collab decisions.

  11. #Send Channel Message to #security weekly summary: total reviewed, kept, revoked, escalated.

  12. #Leave Internal Note capturing the cycle.

Hardware Troubleshooting

Playbooks

/

Hardware Troubleshooting

Hardware Troubleshooting

Created by

Console Team

Published

IT

Kandji

Trigger

User reports a hardware issue (external monitor not detecting, Bluetooth keyboard won't pair, Zoom is choppy, audio drops).

Instructions

  1. #Lookup Users on the requester to identify the user.

  2. #List Devices (Kandji) filtered by assignedUserEmail to find their device(s).

  3. #Trigger Form to collect:

    • Symptom (peripheral / display / audio / network / performance)

    • When it started

    • What they've already tried

  4. #Get Device Details (Kandji) and #Get Device Parameters to pull current state.

  5. #Kandji Get Device Library Items Status to confirm required drivers/profiles are installed.

  6. #Search Knowledge Base for the symptom + device model for any known internal fixes.

  7. If no KB hit: #Web Research vendor docs (apple.com, Microsoft Learn, Dell, Logitech) for the specific symptom.

  8. Walk the user through fixes step-by-step via #Send Direct Message:

    • For peripherals → reset / re-pair / reinstall driver

    • For display → NVRAM reset, check cable, try alternate port

    • For audio/video → reset Core Audio / Windows audio service via Kandji script

    • For performance → free up RAM, check Activity Monitor / Task Manager

  9. After each step, ask "did that fix it?" via #Send Direct Message.

  10. If fixed → #Resolve Request.

  11. If hardware-failure signature detected → kick off IT-15 RMA & Repair flow.

  12. If still unresolved after exhausting steps → #Escalate Request to a human IT technician.

  13. #Leave Internal Note capturing the diagnosis trail and resolution path.

Hardware Troubleshooting

Playbooks

/

Hardware Troubleshooting

Hardware Troubleshooting

Created by

Console Team

Published

IT

Kandji

Trigger

User reports a hardware issue (external monitor not detecting, Bluetooth keyboard won't pair, Zoom is choppy, audio drops).

Instructions

  1. #Lookup Users on the requester to identify the user.

  2. #List Devices (Kandji) filtered by assignedUserEmail to find their device(s).

  3. #Trigger Form to collect:

    • Symptom (peripheral / display / audio / network / performance)

    • When it started

    • What they've already tried

  4. #Get Device Details (Kandji) and #Get Device Parameters to pull current state.

  5. #Kandji Get Device Library Items Status to confirm required drivers/profiles are installed.

  6. #Search Knowledge Base for the symptom + device model for any known internal fixes.

  7. If no KB hit: #Web Research vendor docs (apple.com, Microsoft Learn, Dell, Logitech) for the specific symptom.

  8. Walk the user through fixes step-by-step via #Send Direct Message:

    • For peripherals → reset / re-pair / reinstall driver

    • For display → NVRAM reset, check cable, try alternate port

    • For audio/video → reset Core Audio / Windows audio service via Kandji script

    • For performance → free up RAM, check Activity Monitor / Task Manager

  9. After each step, ask "did that fix it?" via #Send Direct Message.

  10. If fixed → #Resolve Request.

  11. If hardware-failure signature detected → kick off IT-15 RMA & Repair flow.

  12. If still unresolved after exhausting steps → #Escalate Request to a human IT technician.

  13. #Leave Internal Note capturing the diagnosis trail and resolution path.

Hardware Troubleshooting

Playbooks

/

Hardware Troubleshooting

Hardware Troubleshooting

Created by

Console Team

Published

IT

Kandji

Trigger

User reports a hardware issue (external monitor not detecting, Bluetooth keyboard won't pair, Zoom is choppy, audio drops).

Instructions

  1. #Lookup Users on the requester to identify the user.

  2. #List Devices (Kandji) filtered by assignedUserEmail to find their device(s).

  3. #Trigger Form to collect:

    • Symptom (peripheral / display / audio / network / performance)

    • When it started

    • What they've already tried

  4. #Get Device Details (Kandji) and #Get Device Parameters to pull current state.

  5. #Kandji Get Device Library Items Status to confirm required drivers/profiles are installed.

  6. #Search Knowledge Base for the symptom + device model for any known internal fixes.

  7. If no KB hit: #Web Research vendor docs (apple.com, Microsoft Learn, Dell, Logitech) for the specific symptom.

  8. Walk the user through fixes step-by-step via #Send Direct Message:

    • For peripherals → reset / re-pair / reinstall driver

    • For display → NVRAM reset, check cable, try alternate port

    • For audio/video → reset Core Audio / Windows audio service via Kandji script

    • For performance → free up RAM, check Activity Monitor / Task Manager

  9. After each step, ask "did that fix it?" via #Send Direct Message.

  10. If fixed → #Resolve Request.

  11. If hardware-failure signature detected → kick off IT-15 RMA & Repair flow.

  12. If still unresolved after exhausting steps → #Escalate Request to a human IT technician.

  13. #Leave Internal Note capturing the diagnosis trail and resolution path.

HR Policy & Benefits Q&A

Playbooks

/

HR Policy & Benefits Q&A

HR Policy & Benefits Q&A

Created by

Console Team

Published

HR

Trigger

Requester asks a benefits / handbook / leave / pay / policy question.

Instructions

  1. #Lookup Users on the requester to get location (for region-specific policies), department, and tenure.

  2. #Search Knowledge Base with the user's question as the query.

  3. For multi-region benefits content (parental leave, holidays, healthcare), filter to the requester's location. If multiple regions match, surface labeled variants.

  4. #Expand Knowledge Base Article for the top hit if more depth is needed.

  5. Compose the answer in #Send Direct Message:

    • Direct answer first (e.g. "You accrue 1.66 PTO days per month.")

    • Personalized context if available (e.g. "Based on your tenure, you're eligible for...").

    • Quoted source paragraph from the KB.

    • Source link to the policy doc.

  6. Ask if the answer resolved their question via a follow-up message.

  7. If user confirms → #Resolve Request.

  8. If user has follow-up questions or the policy is ambiguous:

    • For simple clarifications, loop back to step 2.

    • For complex / personal cases, #Prompt for Handoff to the benefits coordinator or HRBP based on topic.

  9. If no relevant KB hit at all:

  10. #Leave Internal Note capturing the KB articles surfaced and resolution path.

HR Policy & Benefits Q&A

Playbooks

/

HR Policy & Benefits Q&A

HR Policy & Benefits Q&A

Created by

Console Team

Published

HR

Trigger

Requester asks a benefits / handbook / leave / pay / policy question.

Instructions

  1. #Lookup Users on the requester to get location (for region-specific policies), department, and tenure.

  2. #Search Knowledge Base with the user's question as the query.

  3. For multi-region benefits content (parental leave, holidays, healthcare), filter to the requester's location. If multiple regions match, surface labeled variants.

  4. #Expand Knowledge Base Article for the top hit if more depth is needed.

  5. Compose the answer in #Send Direct Message:

    • Direct answer first (e.g. "You accrue 1.66 PTO days per month.")

    • Personalized context if available (e.g. "Based on your tenure, you're eligible for...").

    • Quoted source paragraph from the KB.

    • Source link to the policy doc.

  6. Ask if the answer resolved their question via a follow-up message.

  7. If user confirms → #Resolve Request.

  8. If user has follow-up questions or the policy is ambiguous:

    • For simple clarifications, loop back to step 2.

    • For complex / personal cases, #Prompt for Handoff to the benefits coordinator or HRBP based on topic.

  9. If no relevant KB hit at all:

  10. #Leave Internal Note capturing the KB articles surfaced and resolution path.

HR Policy & Benefits Q&A

Playbooks

/

HR Policy & Benefits Q&A

HR Policy & Benefits Q&A

Created by

Console Team

Published

HR

Trigger

Requester asks a benefits / handbook / leave / pay / policy question.

Instructions

  1. #Lookup Users on the requester to get location (for region-specific policies), department, and tenure.

  2. #Search Knowledge Base with the user's question as the query.

  3. For multi-region benefits content (parental leave, holidays, healthcare), filter to the requester's location. If multiple regions match, surface labeled variants.

  4. #Expand Knowledge Base Article for the top hit if more depth is needed.

  5. Compose the answer in #Send Direct Message:

    • Direct answer first (e.g. "You accrue 1.66 PTO days per month.")

    • Personalized context if available (e.g. "Based on your tenure, you're eligible for...").

    • Quoted source paragraph from the KB.

    • Source link to the policy doc.

  6. Ask if the answer resolved their question via a follow-up message.

  7. If user confirms → #Resolve Request.

  8. If user has follow-up questions or the policy is ambiguous:

    • For simple clarifications, loop back to step 2.

    • For complex / personal cases, #Prompt for Handoff to the benefits coordinator or HRBP based on topic.

  9. If no relevant KB hit at all:

  10. #Leave Internal Note capturing the KB articles surfaced and resolution path.

I-9 / Right-to-Work

Playbooks

/

I-9 / Right-to-Work

I-9 / Right-to-Work

Created by

Console Team

Published

HR

Workday

Vanta

Linear

+1

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. #Custom Workday Query New Hires for hires at exactly day 1, day 2, and day 3 from their start date, in US locations.

  2. For each new hire:

  3. Day 1:

  4. Day 2:

  5. Day 3 (deadline day):

  6. On completion:

  7. If not completed by day 3:

  8. #Leave Internal Note capturing dates, escalation path, completion.

I-9 / Right-to-Work

Playbooks

/

I-9 / Right-to-Work

I-9 / Right-to-Work

Created by

Console Team

Published

HR

Workday

Vanta

Linear

+1

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. #Custom Workday Query New Hires for hires at exactly day 1, day 2, and day 3 from their start date, in US locations.

  2. For each new hire:

  3. Day 1:

  4. Day 2:

  5. Day 3 (deadline day):

  6. On completion:

  7. If not completed by day 3:

  8. #Leave Internal Note capturing dates, escalation path, completion.

I-9 / Right-to-Work

Playbooks

/

I-9 / Right-to-Work

I-9 / Right-to-Work

Created by

Console Team

Published

HR

Workday

Vanta

Linear

+1

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. #Custom Workday Query New Hires for hires at exactly day 1, day 2, and day 3 from their start date, in US locations.

  2. For each new hire:

  3. Day 1:

  4. Day 2:

  5. Day 3 (deadline day):

  6. On completion:

  7. If not completed by day 3:

  8. #Leave Internal Note capturing dates, escalation path, completion.

Identity Group Management

Playbooks

/

Identity Group Management

Identity Group Management

Created by

Console Team

Published

IT

Okta

Slack

Trigger

Requester asks to create, modify membership, or change ownership of an Okta/Google/Slack group (e.g. "create Okta group for brand campaign team", "remove Sarah from eng-leadership", "add this week's new hires to #all-eng").

Instructions

  1. Parse the action type (create / add members / remove members / delete / change owner), target group name, downstream systems (Okta / Google / Slack / all), and member list.

  2. Validate group name against naming convention (^[a-z][a-z0-9-]+$, max 40 chars). If invalid:

  3. #Lookup Users on the requester with includeGroups.

  4. Check authorization:

    • Create → requester must be in the group-creators Okta group or an IT admin.

    • Modify/Delete → requester must be the group owner OR an admin. Use #custom Get Group Owner action.

    • If unauthorized → #Request Approval from an IT admin.

  5. For Create:

  6. For Add members:

  7. For Remove members:

  8. For Delete: confirm with the requester via #Trigger Form ("This will delete the group across all systems — confirm?"), then call custom delete actions for Okta + Google + Slack.

  9. For role/manager-based sync (e.g. "add this week's new hires"): query the HR ingest via #Search Graph for matching users, then loop step 6.

  10. #Send Direct Message to the requester with a summary of changes.

  11. #Leave Internal Note capturing the action and downstream sync.

  12. #Resolve Request.

Identity Group Management

Playbooks

/

Identity Group Management

Identity Group Management

Created by

Console Team

Published

IT

Okta

Slack

Trigger

Requester asks to create, modify membership, or change ownership of an Okta/Google/Slack group (e.g. "create Okta group for brand campaign team", "remove Sarah from eng-leadership", "add this week's new hires to #all-eng").

Instructions

  1. Parse the action type (create / add members / remove members / delete / change owner), target group name, downstream systems (Okta / Google / Slack / all), and member list.

  2. Validate group name against naming convention (^[a-z][a-z0-9-]+$, max 40 chars). If invalid:

  3. #Lookup Users on the requester with includeGroups.

  4. Check authorization:

    • Create → requester must be in the group-creators Okta group or an IT admin.

    • Modify/Delete → requester must be the group owner OR an admin. Use #custom Get Group Owner action.

    • If unauthorized → #Request Approval from an IT admin.

  5. For Create:

  6. For Add members:

  7. For Remove members:

  8. For Delete: confirm with the requester via #Trigger Form ("This will delete the group across all systems — confirm?"), then call custom delete actions for Okta + Google + Slack.

  9. For role/manager-based sync (e.g. "add this week's new hires"): query the HR ingest via #Search Graph for matching users, then loop step 6.

  10. #Send Direct Message to the requester with a summary of changes.

  11. #Leave Internal Note capturing the action and downstream sync.

  12. #Resolve Request.

Identity Group Management

Playbooks

/

Identity Group Management

Identity Group Management

Created by

Console Team

Published

IT

Okta

Slack

Trigger

Requester asks to create, modify membership, or change ownership of an Okta/Google/Slack group (e.g. "create Okta group for brand campaign team", "remove Sarah from eng-leadership", "add this week's new hires to #all-eng").

Instructions

  1. Parse the action type (create / add members / remove members / delete / change owner), target group name, downstream systems (Okta / Google / Slack / all), and member list.

  2. Validate group name against naming convention (^[a-z][a-z0-9-]+$, max 40 chars). If invalid:

  3. #Lookup Users on the requester with includeGroups.

  4. Check authorization:

    • Create → requester must be in the group-creators Okta group or an IT admin.

    • Modify/Delete → requester must be the group owner OR an admin. Use #custom Get Group Owner action.

    • If unauthorized → #Request Approval from an IT admin.

  5. For Create:

  6. For Add members:

  7. For Remove members:

  8. For Delete: confirm with the requester via #Trigger Form ("This will delete the group across all systems — confirm?"), then call custom delete actions for Okta + Google + Slack.

  9. For role/manager-based sync (e.g. "add this week's new hires"): query the HR ingest via #Search Graph for matching users, then loop step 6.

  10. #Send Direct Message to the requester with a summary of changes.

  11. #Leave Internal Note capturing the action and downstream sync.

  12. #Resolve Request.

Inbound Lead Enrichment & Routing

Playbooks

/

Inbound Lead Enrichment & Routing

Inbound Lead Enrichment & Routing

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Apollo

+3

Trigger

Webhook — new lead created in HubSpot/Salesforce or marketing platform Variables: $lead.id, $lead.email, $lead.companyDomain, $lead.source, $lead.formData

Instructions

  1. Pull lead details:

  2. Enrichment:

  3. ICP scoring:

    • #Custom Calculate ICP Score based on:

      • Employee count.

      • Industry.

      • Tech stack.

      • Geographic region.

      • Title seniority (CXO/VP/Director > Manager > IC).

    • Score buckets: A (90-100), B (70-89), C (50-69), D (<50).

  4. Branch on score:

    • A: Route immediately to AE; SDR sequence is high-priority.

    • B: Route to SDR with priority queue.

    • C: Route to SDR with standard queue.

    • D: Auto-nurture; do not assign to SDR.

  5. Territory and rep assignment:

  6. Update CRM:

  7. Notify the SDR:

    • #Lookup Users on the assigned SDR with includeSlackId.

    • #Send Direct Message with the lead brief: company, contact, title, ICP score, form data, enrichment, suggested first email, deal link.

  8. For score A, also notify AE:

    • #Send Direct Message to the AE with: "High-fit inbound: {{company}} ({{title}}). SDR {{sdr}} working it."

  9. SLA enforcement:

  10. #Create HubSpot Note on Contact with enrichment + scoring + routing.

  11. #Leave Internal Note.

Inbound Lead Enrichment & Routing

Playbooks

/

Inbound Lead Enrichment & Routing

Inbound Lead Enrichment & Routing

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Apollo

+3

Trigger

Webhook — new lead created in HubSpot/Salesforce or marketing platform Variables: $lead.id, $lead.email, $lead.companyDomain, $lead.source, $lead.formData

Instructions

  1. Pull lead details:

  2. Enrichment:

  3. ICP scoring:

    • #Custom Calculate ICP Score based on:

      • Employee count.

      • Industry.

      • Tech stack.

      • Geographic region.

      • Title seniority (CXO/VP/Director > Manager > IC).

    • Score buckets: A (90-100), B (70-89), C (50-69), D (<50).

  4. Branch on score:

    • A: Route immediately to AE; SDR sequence is high-priority.

    • B: Route to SDR with priority queue.

    • C: Route to SDR with standard queue.

    • D: Auto-nurture; do not assign to SDR.

  5. Territory and rep assignment:

  6. Update CRM:

  7. Notify the SDR:

    • #Lookup Users on the assigned SDR with includeSlackId.

    • #Send Direct Message with the lead brief: company, contact, title, ICP score, form data, enrichment, suggested first email, deal link.

  8. For score A, also notify AE:

    • #Send Direct Message to the AE with: "High-fit inbound: {{company}} ({{title}}). SDR {{sdr}} working it."

  9. SLA enforcement:

  10. #Create HubSpot Note on Contact with enrichment + scoring + routing.

  11. #Leave Internal Note.

Inbound Lead Enrichment & Routing

Playbooks

/

Inbound Lead Enrichment & Routing

Inbound Lead Enrichment & Routing

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Apollo

+3

Trigger

Webhook — new lead created in HubSpot/Salesforce or marketing platform Variables: $lead.id, $lead.email, $lead.companyDomain, $lead.source, $lead.formData

Instructions

  1. Pull lead details:

  2. Enrichment:

  3. ICP scoring:

    • #Custom Calculate ICP Score based on:

      • Employee count.

      • Industry.

      • Tech stack.

      • Geographic region.

      • Title seniority (CXO/VP/Director > Manager > IC).

    • Score buckets: A (90-100), B (70-89), C (50-69), D (<50).

  4. Branch on score:

    • A: Route immediately to AE; SDR sequence is high-priority.

    • B: Route to SDR with priority queue.

    • C: Route to SDR with standard queue.

    • D: Auto-nurture; do not assign to SDR.

  5. Territory and rep assignment:

  6. Update CRM:

  7. Notify the SDR:

    • #Lookup Users on the assigned SDR with includeSlackId.

    • #Send Direct Message with the lead brief: company, contact, title, ICP score, form data, enrichment, suggested first email, deal link.

  8. For score A, also notify AE:

    • #Send Direct Message to the AE with: "High-fit inbound: {{company}} ({{title}}). SDR {{sdr}} working it."

  9. SLA enforcement:

  10. #Create HubSpot Note on Contact with enrichment + scoring + routing.

  11. #Leave Internal Note.

Incident Response Orchestration

Playbooks

/

Incident Response Orchestration

Incident Response Orchestration

Created by

Console Team

Published

Security

Okta

Google

Slack

+5

Trigger

Integration Webhook — CrowdStrike high-severity event OR manual escalation from Sec-4 Variables: $incident.id, $incident.severity, $incident.deviceId, $incident.userEmail, $incident.type

Instructions

  1. Immediate containment (parallel actions):

    1. #Custom CrowdStrike Network Contain Host for $incident.deviceId to isolate it from the network.

    2. #Revoke All User Sessions (Okta) for $incident.userEmail.

    3. #Reset User Factors (Custom) if credential compromise is suspected.

    4. #Device Lock (Kandji) as a secondary containment.

  2. Create incident war room:

    1. #Create Channel (Slack) named #ir-{{incident.id}}-{{shortType}}.

    2. Add Users To Channel:

      1. Security on-call (from PagerDuty).

      2. Security lead.

      3. The affected user's manager (read-only / observer).

      4. On-call IT engineer (for device-related actions).

  3. Page on-call:

  4. Post initial status:

  5. Run containment runbook:

    • #Search Knowledge Base for the runbook matching $incident.type (e.g. "ransomware", "phishing-success", "lateral-movement").

    • For each runbook step:

      • Present in the war-room channel via #Send Channel Message with the step number and required action.

      • For automatable steps (e.g. "block hash on EDR" → #Blocklist SHA256 Hash), execute and post outcome.

      • For human-required steps, wait for the analyst to acknowledge via thread reply.

  6. Evidence collection:

  7. Stakeholder updates:

    • schedule_action wakes every 30 minutes during active incident.

    • On each wake, #Send Channel Message status update to #security and (if Sev1) to the executive Slack channel.

  8. Resolution:

  9. Post-incident:

  10. #Leave Internal Note capturing the full timeline and decisions.

Incident Response Orchestration

Playbooks

/

Incident Response Orchestration

Incident Response Orchestration

Created by

Console Team

Published

Security

Okta

Google

Slack

+5

Trigger

Integration Webhook — CrowdStrike high-severity event OR manual escalation from Sec-4 Variables: $incident.id, $incident.severity, $incident.deviceId, $incident.userEmail, $incident.type

Instructions

  1. Immediate containment (parallel actions):

    1. #Custom CrowdStrike Network Contain Host for $incident.deviceId to isolate it from the network.

    2. #Revoke All User Sessions (Okta) for $incident.userEmail.

    3. #Reset User Factors (Custom) if credential compromise is suspected.

    4. #Device Lock (Kandji) as a secondary containment.

  2. Create incident war room:

    1. #Create Channel (Slack) named #ir-{{incident.id}}-{{shortType}}.

    2. Add Users To Channel:

      1. Security on-call (from PagerDuty).

      2. Security lead.

      3. The affected user's manager (read-only / observer).

      4. On-call IT engineer (for device-related actions).

  3. Page on-call:

  4. Post initial status:

  5. Run containment runbook:

    • #Search Knowledge Base for the runbook matching $incident.type (e.g. "ransomware", "phishing-success", "lateral-movement").

    • For each runbook step:

      • Present in the war-room channel via #Send Channel Message with the step number and required action.

      • For automatable steps (e.g. "block hash on EDR" → #Blocklist SHA256 Hash), execute and post outcome.

      • For human-required steps, wait for the analyst to acknowledge via thread reply.

  6. Evidence collection:

  7. Stakeholder updates:

    • schedule_action wakes every 30 minutes during active incident.

    • On each wake, #Send Channel Message status update to #security and (if Sev1) to the executive Slack channel.

  8. Resolution:

  9. Post-incident:

  10. #Leave Internal Note capturing the full timeline and decisions.

Incident Response Orchestration

Playbooks

/

Incident Response Orchestration

Incident Response Orchestration

Created by

Console Team

Published

Security

Okta

Google

Slack

+5

Trigger

Integration Webhook — CrowdStrike high-severity event OR manual escalation from Sec-4 Variables: $incident.id, $incident.severity, $incident.deviceId, $incident.userEmail, $incident.type

Instructions

  1. Immediate containment (parallel actions):

    1. #Custom CrowdStrike Network Contain Host for $incident.deviceId to isolate it from the network.

    2. #Revoke All User Sessions (Okta) for $incident.userEmail.

    3. #Reset User Factors (Custom) if credential compromise is suspected.

    4. #Device Lock (Kandji) as a secondary containment.

  2. Create incident war room:

    1. #Create Channel (Slack) named #ir-{{incident.id}}-{{shortType}}.

    2. Add Users To Channel:

      1. Security on-call (from PagerDuty).

      2. Security lead.

      3. The affected user's manager (read-only / observer).

      4. On-call IT engineer (for device-related actions).

  3. Page on-call:

  4. Post initial status:

  5. Run containment runbook:

    • #Search Knowledge Base for the runbook matching $incident.type (e.g. "ransomware", "phishing-success", "lateral-movement").

    • For each runbook step:

      • Present in the war-room channel via #Send Channel Message with the step number and required action.

      • For automatable steps (e.g. "block hash on EDR" → #Blocklist SHA256 Hash), execute and post outcome.

      • For human-required steps, wait for the analyst to acknowledge via thread reply.

  6. Evidence collection:

  7. Stakeholder updates:

    • schedule_action wakes every 30 minutes during active incident.

    • On each wake, #Send Channel Message status update to #security and (if Sev1) to the executive Slack channel.

  8. Resolution:

  9. Post-incident:

  10. #Leave Internal Note capturing the full timeline and decisions.

IOC Enrichment & Lookup

Playbooks

/

IOC Enrichment & Lookup

IOC Enrichment & Lookup

Created by

Console Team

Published

Security

Okta

Google

Slack

+6

Trigger

Analyst pastes a file hash, IP address, domain, or URL in Slack or a request.

Instructions

  1. Parse the input:

    1. Auto-detect IOC type via regex (MD5/SHA1/SHA256 hash, IPv4/IPv6, domain, URL).

    2. If ambiguous, #Send Direct Message asking for clarification.

  2. #Lookup Users on the requester to confirm analyst role (in security-analysts Okta group).

  3. Run lookups in parallel based on IOC type:

  4. Compile a unified verdict:

    • Count engines flagging as malicious / suspicious / clean.

    • Pull first-seen / last-seen dates.

    • Pull associated malware families if any.

    • Pull related IOCs (e.g. domains hosted on the same IP).

  5. Internal correlation:

  6. #Send Direct Message (or reply in thread) to the analyst with a formatted response:

    • IOC + type

    • Verdict (Malicious / Suspicious / Clean / Unknown)

    • Engine counts and notable findings

    • Associated families / IOCs

    • Internal correlation hits

    • Source links to each enrichment provider

    • Suggested next action (block / monitor / dismiss)

  7. If verdict is Malicious AND analyst confirms via follow-up:

  8. #Leave Internal Note in the request capturing the IOC and verdict.

IOC Enrichment & Lookup

Playbooks

/

IOC Enrichment & Lookup

IOC Enrichment & Lookup

Created by

Console Team

Published

Security

Okta

Google

Slack

+6

Trigger

Analyst pastes a file hash, IP address, domain, or URL in Slack or a request.

Instructions

  1. Parse the input:

    1. Auto-detect IOC type via regex (MD5/SHA1/SHA256 hash, IPv4/IPv6, domain, URL).

    2. If ambiguous, #Send Direct Message asking for clarification.

  2. #Lookup Users on the requester to confirm analyst role (in security-analysts Okta group).

  3. Run lookups in parallel based on IOC type:

  4. Compile a unified verdict:

    • Count engines flagging as malicious / suspicious / clean.

    • Pull first-seen / last-seen dates.

    • Pull associated malware families if any.

    • Pull related IOCs (e.g. domains hosted on the same IP).

  5. Internal correlation:

  6. #Send Direct Message (or reply in thread) to the analyst with a formatted response:

    • IOC + type

    • Verdict (Malicious / Suspicious / Clean / Unknown)

    • Engine counts and notable findings

    • Associated families / IOCs

    • Internal correlation hits

    • Source links to each enrichment provider

    • Suggested next action (block / monitor / dismiss)

  7. If verdict is Malicious AND analyst confirms via follow-up:

  8. #Leave Internal Note in the request capturing the IOC and verdict.

IOC Enrichment & Lookup

Playbooks

/

IOC Enrichment & Lookup

IOC Enrichment & Lookup

Created by

Console Team

Published

Security

Okta

Google

Slack

+6

Trigger

Analyst pastes a file hash, IP address, domain, or URL in Slack or a request.

Instructions

  1. Parse the input:

    1. Auto-detect IOC type via regex (MD5/SHA1/SHA256 hash, IPv4/IPv6, domain, URL).

    2. If ambiguous, #Send Direct Message asking for clarification.

  2. #Lookup Users on the requester to confirm analyst role (in security-analysts Okta group).

  3. Run lookups in parallel based on IOC type:

  4. Compile a unified verdict:

    • Count engines flagging as malicious / suspicious / clean.

    • Pull first-seen / last-seen dates.

    • Pull associated malware families if any.

    • Pull related IOCs (e.g. domains hosted on the same IP).

  5. Internal correlation:

  6. #Send Direct Message (or reply in thread) to the analyst with a formatted response:

    • IOC + type

    • Verdict (Malicious / Suspicious / Clean / Unknown)

    • Engine counts and notable findings

    • Associated families / IOCs

    • Internal correlation hits

    • Source links to each enrichment provider

    • Suggested next action (block / monitor / dismiss)

  7. If verdict is Malicious AND analyst confirms via follow-up:

  8. #Leave Internal Note in the request capturing the IOC and verdict.

Just-In-Time (JIT) Access

Playbooks

/

Just-In-Time (JIT) Access

Just-In-Time (JIT) Access

Created by

Console Team

Published

Security

Okta

AWS

Snowflake

+1

Trigger

Requester asks for time-bound privileged access (AWS root, prod DB, financial systems, admin console).

Instructions

  1. Parse target system, role/entitlement, duration, and justification from the request.

  2. #Lookup Users on the requester with includeManager and includeGroups.

  3. #Trigger Form to collect:

    • Target system (dropdown of JIT-eligible systems)

    • Specific role or scope (e.g. "AWS prod read-only", "Snowflake admin")

    • Duration (max 8 hours, max 24 hours, max 7 days based on system tier)

    • Business justification (free text, min 50 chars)

    • Ticket/incident reference if responding to an incident

  4. Validate the request:

    • Requester is eligible for this system via custom Check JIT Eligibility.

    • Duration is within max allowed for the system tier.

    • Not already holding active JIT access for the same system.

  5. Approval chain:

  6. On full approval:

  7. schedule_action wake at the TTL to execute revocation:

    • Reverse of step 6 (Remove from Group / Detach Policy / Revoke Role).

  8. #Send Direct Message to the requester with: access details, expiry timestamp, system access URL, what they can/cannot do.

  9. #Send Channel Message to #security-jit logging the grant with: requester, system, role, duration, justification, ticket reference.

  10. #Custom Vanta Log JIT Event with the full audit trail.

  11. On revocation wake: #Send Direct Message to the requester confirming auto-expire; #Send Channel Message to #security-jit confirming revoke.

  12. #Leave Internal Note capturing approval trail and grant/revoke timestamps.

Just-In-Time (JIT) Access

Playbooks

/

Just-In-Time (JIT) Access

Just-In-Time (JIT) Access

Created by

Console Team

Published

Security

Okta

AWS

Snowflake

+1

Trigger

Requester asks for time-bound privileged access (AWS root, prod DB, financial systems, admin console).

Instructions

  1. Parse target system, role/entitlement, duration, and justification from the request.

  2. #Lookup Users on the requester with includeManager and includeGroups.

  3. #Trigger Form to collect:

    • Target system (dropdown of JIT-eligible systems)

    • Specific role or scope (e.g. "AWS prod read-only", "Snowflake admin")

    • Duration (max 8 hours, max 24 hours, max 7 days based on system tier)

    • Business justification (free text, min 50 chars)

    • Ticket/incident reference if responding to an incident

  4. Validate the request:

    • Requester is eligible for this system via custom Check JIT Eligibility.

    • Duration is within max allowed for the system tier.

    • Not already holding active JIT access for the same system.

  5. Approval chain:

  6. On full approval:

  7. schedule_action wake at the TTL to execute revocation:

    • Reverse of step 6 (Remove from Group / Detach Policy / Revoke Role).

  8. #Send Direct Message to the requester with: access details, expiry timestamp, system access URL, what they can/cannot do.

  9. #Send Channel Message to #security-jit logging the grant with: requester, system, role, duration, justification, ticket reference.

  10. #Custom Vanta Log JIT Event with the full audit trail.

  11. On revocation wake: #Send Direct Message to the requester confirming auto-expire; #Send Channel Message to #security-jit confirming revoke.

  12. #Leave Internal Note capturing approval trail and grant/revoke timestamps.

Just-In-Time (JIT) Access

Playbooks

/

Just-In-Time (JIT) Access

Just-In-Time (JIT) Access

Created by

Console Team

Published

Security

Okta

AWS

Snowflake

+1

Trigger

Requester asks for time-bound privileged access (AWS root, prod DB, financial systems, admin console).

Instructions

  1. Parse target system, role/entitlement, duration, and justification from the request.

  2. #Lookup Users on the requester with includeManager and includeGroups.

  3. #Trigger Form to collect:

    • Target system (dropdown of JIT-eligible systems)

    • Specific role or scope (e.g. "AWS prod read-only", "Snowflake admin")

    • Duration (max 8 hours, max 24 hours, max 7 days based on system tier)

    • Business justification (free text, min 50 chars)

    • Ticket/incident reference if responding to an incident

  4. Validate the request:

    • Requester is eligible for this system via custom Check JIT Eligibility.

    • Duration is within max allowed for the system tier.

    • Not already holding active JIT access for the same system.

  5. Approval chain:

  6. On full approval:

  7. schedule_action wake at the TTL to execute revocation:

    • Reverse of step 6 (Remove from Group / Detach Policy / Revoke Role).

  8. #Send Direct Message to the requester with: access details, expiry timestamp, system access URL, what they can/cannot do.

  9. #Send Channel Message to #security-jit logging the grant with: requester, system, role, duration, justification, ticket reference.

  10. #Custom Vanta Log JIT Event with the full audit trail.

  11. On revocation wake: #Send Direct Message to the requester confirming auto-expire; #Send Channel Message to #security-jit confirming revoke.

  12. #Leave Internal Note capturing approval trail and grant/revoke timestamps.

License Cost & Renewal Tracking

Playbooks

/

License Cost & Renewal Tracking

License Cost & Renewal Tracking

Created by

Console Team

Published

Finance

NetSuite

+2

Trigger

Scheduled — every day at 7:00 AM America/Chicago

Instructions

License Cost & Renewal Tracking

Playbooks

/

License Cost & Renewal Tracking

License Cost & Renewal Tracking

Created by

Console Team

Published

Finance

NetSuite

+2

Trigger

Scheduled — every day at 7:00 AM America/Chicago

Instructions

License Cost & Renewal Tracking

Playbooks

/

License Cost & Renewal Tracking

License Cost & Renewal Tracking

Created by

Console Team

Published

Finance

NetSuite

+2

Trigger

Scheduled — every day at 7:00 AM America/Chicago

Instructions

License Reclamation

Playbooks

/

License Reclamation

License Reclamation

Created by

Console Team

Published

IT

Okta

Lattice

Linear

+2

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. Query the custom Productiv ingest via #Search Graph for seats with no logins in 60+ days across Outreach, Gong, Lattice, Figma.

  2. For each stale seat:

    • #Lookup Users on the seat owner with includeManager and includeSlackId.

    • Skip if user was hired in the last 30 days (grace period) or has an active PTO/leave entry in HR ingest.

  3. #Send Direct Message to the user (cc manager in a separate DM): "You haven't logged into {{app}} in 60 days. Still need it? Confirm in 7 days or it gets reclaimed." with a #Trigger Form containing "Keep" / "Reclaim".

  4. schedule_action wake 7 days later to check the form response.

  5. On wake, branch on response:

    • Keep → log to internal note, #Send Direct Message confirming, no further action.

    • Reclaim or no response → execute reclamation:

      • For Okta-managed app → #Remove from Group for the entitlement group.

      • For app with native API → call the custom {{App}} Remove Seat action.

  6. #Send Direct Message to the user confirming reclamation with re-request instructions if needed.

  7. #Send Channel Message to #it-licenses with: user, app, seat reclaimed, savings estimate.

  8. #Create Linear Issue weekly summarizing total seats reclaimed and dollar savings.

License Reclamation

Playbooks

/

License Reclamation

License Reclamation

Created by

Console Team

Published

IT

Okta

Lattice

Linear

+2

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. Query the custom Productiv ingest via #Search Graph for seats with no logins in 60+ days across Outreach, Gong, Lattice, Figma.

  2. For each stale seat:

    • #Lookup Users on the seat owner with includeManager and includeSlackId.

    • Skip if user was hired in the last 30 days (grace period) or has an active PTO/leave entry in HR ingest.

  3. #Send Direct Message to the user (cc manager in a separate DM): "You haven't logged into {{app}} in 60 days. Still need it? Confirm in 7 days or it gets reclaimed." with a #Trigger Form containing "Keep" / "Reclaim".

  4. schedule_action wake 7 days later to check the form response.

  5. On wake, branch on response:

    • Keep → log to internal note, #Send Direct Message confirming, no further action.

    • Reclaim or no response → execute reclamation:

      • For Okta-managed app → #Remove from Group for the entitlement group.

      • For app with native API → call the custom {{App}} Remove Seat action.

  6. #Send Direct Message to the user confirming reclamation with re-request instructions if needed.

  7. #Send Channel Message to #it-licenses with: user, app, seat reclaimed, savings estimate.

  8. #Create Linear Issue weekly summarizing total seats reclaimed and dollar savings.

License Reclamation

Playbooks

/

License Reclamation

License Reclamation

Created by

Console Team

Published

IT

Okta

Lattice

Linear

+2

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. Query the custom Productiv ingest via #Search Graph for seats with no logins in 60+ days across Outreach, Gong, Lattice, Figma.

  2. For each stale seat:

    • #Lookup Users on the seat owner with includeManager and includeSlackId.

    • Skip if user was hired in the last 30 days (grace period) or has an active PTO/leave entry in HR ingest.

  3. #Send Direct Message to the user (cc manager in a separate DM): "You haven't logged into {{app}} in 60 days. Still need it? Confirm in 7 days or it gets reclaimed." with a #Trigger Form containing "Keep" / "Reclaim".

  4. schedule_action wake 7 days later to check the form response.

  5. On wake, branch on response:

    • Keep → log to internal note, #Send Direct Message confirming, no further action.

    • Reclaim or no response → execute reclamation:

      • For Okta-managed app → #Remove from Group for the entitlement group.

      • For app with native API → call the custom {{App}} Remove Seat action.

  6. #Send Direct Message to the user confirming reclamation with re-request instructions if needed.

  7. #Send Channel Message to #it-licenses with: user, app, seat reclaimed, savings estimate.

  8. #Create Linear Issue weekly summarizing total seats reclaimed and dollar savings.

Lost Device → Remote Lock

Playbooks

/

Lost Device → Remote Lock

Lost Device → Remote Lock

Created by

Console Team

Published

IT

Okta

Kandji

Linear

Trigger

User reports a lost or stolen device ("left MacBook at airport", "phone with corporate apps stolen").

Instructions

  1. #Lookup Users on the requester with includeManager.

  2. #List Devices (Kandji) filtered by assignedUserEmail to find their device(s).

  3. #Trigger Form to collect:

    • Which device

    • Where it was last seen

    • When

    • Whether it might be recoverable or is confirmed lost/stolen

    • Whether they want a replacement

  4. #Get Device Details to confirm device state.

  5. Execute immediate containment in parallel:

  6. #Revoke All User Sessions (Okta) to invalidate any active sessions.

  7. If the user indicated the device is confirmed stolen:

  8. #Create Linear Issue in the security project with severity High, including device serial, last-seen location, user, timestamp.

  9. #Send Channel Message to #security with the incident summary and Linear link.

  10. #Send Channel Message to #it-alerts with the device + user.

  11. If replacement requested → trigger IT-14 New Device Order by creating a follow-up request.

  12. #Send Direct Message to the requester with:

    • Confirmation of containment actions taken

    • Replacement order status (if applicable)

    • Police report instructions (if stolen)

    • Insurance claim instructions

  13. schedule_action wake at 7 days to check if the device was recovered.

  14. #Leave Internal Note capturing all actions and timestamps.

Lost Device → Remote Lock

Playbooks

/

Lost Device → Remote Lock

Lost Device → Remote Lock

Created by

Console Team

Published

IT

Okta

Kandji

Linear

Trigger

User reports a lost or stolen device ("left MacBook at airport", "phone with corporate apps stolen").

Instructions

  1. #Lookup Users on the requester with includeManager.

  2. #List Devices (Kandji) filtered by assignedUserEmail to find their device(s).

  3. #Trigger Form to collect:

    • Which device

    • Where it was last seen

    • When

    • Whether it might be recoverable or is confirmed lost/stolen

    • Whether they want a replacement

  4. #Get Device Details to confirm device state.

  5. Execute immediate containment in parallel:

  6. #Revoke All User Sessions (Okta) to invalidate any active sessions.

  7. If the user indicated the device is confirmed stolen:

  8. #Create Linear Issue in the security project with severity High, including device serial, last-seen location, user, timestamp.

  9. #Send Channel Message to #security with the incident summary and Linear link.

  10. #Send Channel Message to #it-alerts with the device + user.

  11. If replacement requested → trigger IT-14 New Device Order by creating a follow-up request.

  12. #Send Direct Message to the requester with:

    • Confirmation of containment actions taken

    • Replacement order status (if applicable)

    • Police report instructions (if stolen)

    • Insurance claim instructions

  13. schedule_action wake at 7 days to check if the device was recovered.

  14. #Leave Internal Note capturing all actions and timestamps.

Lost Device → Remote Lock

Playbooks

/

Lost Device → Remote Lock

Lost Device → Remote Lock

Created by

Console Team

Published

IT

Okta

Kandji

Linear

Trigger

User reports a lost or stolen device ("left MacBook at airport", "phone with corporate apps stolen").

Instructions

  1. #Lookup Users on the requester with includeManager.

  2. #List Devices (Kandji) filtered by assignedUserEmail to find their device(s).

  3. #Trigger Form to collect:

    • Which device

    • Where it was last seen

    • When

    • Whether it might be recoverable or is confirmed lost/stolen

    • Whether they want a replacement

  4. #Get Device Details to confirm device state.

  5. Execute immediate containment in parallel:

  6. #Revoke All User Sessions (Okta) to invalidate any active sessions.

  7. If the user indicated the device is confirmed stolen:

  8. #Create Linear Issue in the security project with severity High, including device serial, last-seen location, user, timestamp.

  9. #Send Channel Message to #security with the incident summary and Linear link.

  10. #Send Channel Message to #it-alerts with the device + user.

  11. If replacement requested → trigger IT-14 New Device Order by creating a follow-up request.

  12. #Send Direct Message to the requester with:

    • Confirmation of containment actions taken

    • Replacement order status (if applicable)

    • Police report instructions (if stolen)

    • Insurance claim instructions

  13. schedule_action wake at 7 days to check if the device was recovered.

  14. #Leave Internal Note capturing all actions and timestamps.

Manager Change Cascade

Playbooks

/

Manager Change Cascade

Manager Change Cascade

Created by

Console Team

Published

HR

Okta

Google Calendar

Slack

+1

Trigger

Webhook — worker.manager_changed from HRIS Variables: $employee.email, $oldManagerEmail, $newManagerEmail, $effectiveDate

Instructions

  1. #Lookup Users on the employee, old manager, and new manager with includeGroups.

  2. If $effectiveDate is in the future, schedule_action wake on that date and exit; otherwise proceed.

  3. Update identity systems:

  4. Slack usergroup sync:

    • For each Slack usergroup the old manager owns that the employee is in: #Remove Usergroup Users if it's a direct-reports-only group.

    • #Update Usergroup to add the employee to the new manager's direct-reports usergroup.

  5. Access policy cascade:

  6. Calendar / 1:1 cascade:

  7. Org chart update via custom Update People Directory Manager.

  8. #Send Direct Message to the employee, old manager, and new manager with a transition summary (when the change took effect, what got rerouted, what 1:1s changed).

  9. #Send Channel Message to #org-changes with the change.

  10. #Leave Internal Note capturing all downstream syncs.

Manager Change Cascade

Playbooks

/

Manager Change Cascade

Manager Change Cascade

Created by

Console Team

Published

HR

Okta

Google Calendar

Slack

+1

Trigger

Webhook — worker.manager_changed from HRIS Variables: $employee.email, $oldManagerEmail, $newManagerEmail, $effectiveDate

Instructions

  1. #Lookup Users on the employee, old manager, and new manager with includeGroups.

  2. If $effectiveDate is in the future, schedule_action wake on that date and exit; otherwise proceed.

  3. Update identity systems:

  4. Slack usergroup sync:

    • For each Slack usergroup the old manager owns that the employee is in: #Remove Usergroup Users if it's a direct-reports-only group.

    • #Update Usergroup to add the employee to the new manager's direct-reports usergroup.

  5. Access policy cascade:

  6. Calendar / 1:1 cascade:

  7. Org chart update via custom Update People Directory Manager.

  8. #Send Direct Message to the employee, old manager, and new manager with a transition summary (when the change took effect, what got rerouted, what 1:1s changed).

  9. #Send Channel Message to #org-changes with the change.

  10. #Leave Internal Note capturing all downstream syncs.

Manager Change Cascade

Playbooks

/

Manager Change Cascade

Manager Change Cascade

Created by

Console Team

Published

HR

Okta

Google Calendar

Slack

+1

Trigger

Webhook — worker.manager_changed from HRIS Variables: $employee.email, $oldManagerEmail, $newManagerEmail, $effectiveDate

Instructions

  1. #Lookup Users on the employee, old manager, and new manager with includeGroups.

  2. If $effectiveDate is in the future, schedule_action wake on that date and exit; otherwise proceed.

  3. Update identity systems:

  4. Slack usergroup sync:

    • For each Slack usergroup the old manager owns that the employee is in: #Remove Usergroup Users if it's a direct-reports-only group.

    • #Update Usergroup to add the employee to the new manager's direct-reports usergroup.

  5. Access policy cascade:

  6. Calendar / 1:1 cascade:

  7. Org chart update via custom Update People Directory Manager.

  8. #Send Direct Message to the employee, old manager, and new manager with a transition summary (when the change took effect, what got rerouted, what 1:1s changed).

  9. #Send Channel Message to #org-changes with the change.

  10. #Leave Internal Note capturing all downstream syncs.

Mandatory Training Assignment

Playbooks

/

Mandatory Training Assignment

Mandatory Training Assignment

Created by

Console Team

Published

HR

Workday

Vanta

Trigger

Scheduled — every day at 10:00 AM America/Chicago (also triggered from HR-1 for new hires)

Instructions

  1. Determine which employees need assignment:

    • For new hires: passed in from HR-1.

    • For cadence-based: #Custom Workday Query Workers with last_training_completion < {{cadence}} (annual / biannual).

    • For role changes: from HR-6.

  2. For each employee:

    • #Lookup Users with includeManager and department.

    • Determine required modules based on role:

      • All employees → security awareness, harassment prevention, code of conduct, GDPR awareness.

      • Engineering → secure coding, OWASP top 10.

      • Finance → SOX awareness, anti-fraud.

      • Sales → MAP-compliant selling, customer data handling.

      • Managers → manager training, performance feedback, anti-harassment leader training.

  3. #Custom LearnUpon Assign Modules with the matching module IDs and a 30-day completion deadline.

  4. #Send Direct Message to the employee with: list of assigned modules, total estimated time, deadline, LearnUpon link.

  5. schedule_action wakes at day 7, 14, 21, 30, 60, 90:

  6. On completion:

  7. Quarterly: #Send Channel Message to #compliance with org-wide completion stats via #Run Query.

Mandatory Training Assignment

Playbooks

/

Mandatory Training Assignment

Mandatory Training Assignment

Created by

Console Team

Published

HR

Workday

Vanta

Trigger

Scheduled — every day at 10:00 AM America/Chicago (also triggered from HR-1 for new hires)

Instructions

  1. Determine which employees need assignment:

    • For new hires: passed in from HR-1.

    • For cadence-based: #Custom Workday Query Workers with last_training_completion < {{cadence}} (annual / biannual).

    • For role changes: from HR-6.

  2. For each employee:

    • #Lookup Users with includeManager and department.

    • Determine required modules based on role:

      • All employees → security awareness, harassment prevention, code of conduct, GDPR awareness.

      • Engineering → secure coding, OWASP top 10.

      • Finance → SOX awareness, anti-fraud.

      • Sales → MAP-compliant selling, customer data handling.

      • Managers → manager training, performance feedback, anti-harassment leader training.

  3. #Custom LearnUpon Assign Modules with the matching module IDs and a 30-day completion deadline.

  4. #Send Direct Message to the employee with: list of assigned modules, total estimated time, deadline, LearnUpon link.

  5. schedule_action wakes at day 7, 14, 21, 30, 60, 90:

  6. On completion:

  7. Quarterly: #Send Channel Message to #compliance with org-wide completion stats via #Run Query.

Mandatory Training Assignment

Playbooks

/

Mandatory Training Assignment

Mandatory Training Assignment

Created by

Console Team

Published

HR

Workday

Vanta

Trigger

Scheduled — every day at 10:00 AM America/Chicago (also triggered from HR-1 for new hires)

Instructions

  1. Determine which employees need assignment:

    • For new hires: passed in from HR-1.

    • For cadence-based: #Custom Workday Query Workers with last_training_completion < {{cadence}} (annual / biannual).

    • For role changes: from HR-6.

  2. For each employee:

    • #Lookup Users with includeManager and department.

    • Determine required modules based on role:

      • All employees → security awareness, harassment prevention, code of conduct, GDPR awareness.

      • Engineering → secure coding, OWASP top 10.

      • Finance → SOX awareness, anti-fraud.

      • Sales → MAP-compliant selling, customer data handling.

      • Managers → manager training, performance feedback, anti-harassment leader training.

  3. #Custom LearnUpon Assign Modules with the matching module IDs and a 30-day completion deadline.

  4. #Send Direct Message to the employee with: list of assigned modules, total estimated time, deadline, LearnUpon link.

  5. schedule_action wakes at day 7, 14, 21, 30, 60, 90:

  6. On completion:

  7. Quarterly: #Send Channel Message to #compliance with org-wide completion stats via #Run Query.

Milestone Moments

Playbooks

/

Milestone Moments

Milestone Moments

Created by

Console Team

Published

HR

Workday

Ramp

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Custom Workday Query Today's Anniversaries for tenure anniversaries today (1/3/5/10 year).

  2. #Custom Workday Query Today's Birthdays for birthdays today.

  3. #Custom Workday Query Today's Major Milestones for promotions, parental return, etc.

  4. For each anniversary:

    • #Lookup Users with includeManager.

    • Pick a personalized message template (1-year vs 5-year vs 10-year).

    • #Send Channel Message to #anniversaries with a celebration message including tenure, role evolution (if available from Workday history).

  5. For tenure milestones (1/3/5/10 year):

  6. #Send Direct Message to each manager nudging recognition: "{{report.name}} hits {{tenure}} years today — drop a note in {{team-channel}}?"

  7. For birthdays:

  8. For major milestones (e.g. parental return, promotion announcement):

  9. #Leave Internal Note for audit.

Milestone Moments

Playbooks

/

Milestone Moments

Milestone Moments

Created by

Console Team

Published

HR

Workday

Ramp

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Custom Workday Query Today's Anniversaries for tenure anniversaries today (1/3/5/10 year).

  2. #Custom Workday Query Today's Birthdays for birthdays today.

  3. #Custom Workday Query Today's Major Milestones for promotions, parental return, etc.

  4. For each anniversary:

    • #Lookup Users with includeManager.

    • Pick a personalized message template (1-year vs 5-year vs 10-year).

    • #Send Channel Message to #anniversaries with a celebration message including tenure, role evolution (if available from Workday history).

  5. For tenure milestones (1/3/5/10 year):

  6. #Send Direct Message to each manager nudging recognition: "{{report.name}} hits {{tenure}} years today — drop a note in {{team-channel}}?"

  7. For birthdays:

  8. For major milestones (e.g. parental return, promotion announcement):

  9. #Leave Internal Note for audit.

Milestone Moments

Playbooks

/

Milestone Moments

Milestone Moments

Created by

Console Team

Published

HR

Workday

Ramp

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Custom Workday Query Today's Anniversaries for tenure anniversaries today (1/3/5/10 year).

  2. #Custom Workday Query Today's Birthdays for birthdays today.

  3. #Custom Workday Query Today's Major Milestones for promotions, parental return, etc.

  4. For each anniversary:

    • #Lookup Users with includeManager.

    • Pick a personalized message template (1-year vs 5-year vs 10-year).

    • #Send Channel Message to #anniversaries with a celebration message including tenure, role evolution (if available from Workday history).

  5. For tenure milestones (1/3/5/10 year):

  6. #Send Direct Message to each manager nudging recognition: "{{report.name}} hits {{tenure}} years today — drop a note in {{team-channel}}?"

  7. For birthdays:

  8. For major milestones (e.g. parental return, promotion announcement):

  9. #Leave Internal Note for audit.

Month-End Close Coordination

Playbooks

/

Month-End Close Coordination

Month-End Close Coordination

Created by

Console Team

Published

Finance

Linear

Trigger

Scheduled — 3 business days before month end at 8:00 AM America/Chicago

Instructions

  1. $Custom Get Close Checklist for standard items by team (rev cutoff, accruals, JEs, bank rec, AP cutoff, AR cutoff, sub rollforward, intercompany rec, tax accruals).

  2. For each item:

  3. Day -3:

    • DM each owner with items + deadlines.

    • #Send Channel Message to #finance-close with kickoff + pinned status board.

  4. Day -3 through +5:

  5. Daily status at EOD: completed / in-progress / blockers / due-tomorrow.

  6. Day +5 (target close):

  7. Post-close:

  8. #Leave Internal Note.

Month-End Close Coordination

Playbooks

/

Month-End Close Coordination

Month-End Close Coordination

Created by

Console Team

Published

Finance

Linear

Trigger

Scheduled — 3 business days before month end at 8:00 AM America/Chicago

Instructions

  1. $Custom Get Close Checklist for standard items by team (rev cutoff, accruals, JEs, bank rec, AP cutoff, AR cutoff, sub rollforward, intercompany rec, tax accruals).

  2. For each item:

  3. Day -3:

    • DM each owner with items + deadlines.

    • #Send Channel Message to #finance-close with kickoff + pinned status board.

  4. Day -3 through +5:

  5. Daily status at EOD: completed / in-progress / blockers / due-tomorrow.

  6. Day +5 (target close):

  7. Post-close:

  8. #Leave Internal Note.

Month-End Close Coordination

Playbooks

/

Month-End Close Coordination

Month-End Close Coordination

Created by

Console Team

Published

Finance

Linear

Trigger

Scheduled — 3 business days before month end at 8:00 AM America/Chicago

Instructions

  1. $Custom Get Close Checklist for standard items by team (rev cutoff, accruals, JEs, bank rec, AP cutoff, AR cutoff, sub rollforward, intercompany rec, tax accruals).

  2. For each item:

  3. Day -3:

    • DM each owner with items + deadlines.

    • #Send Channel Message to #finance-close with kickoff + pinned status board.

  4. Day -3 through +5:

  5. Daily status at EOD: completed / in-progress / blockers / due-tomorrow.

  6. Day +5 (target close):

  7. Post-close:

  8. #Leave Internal Note.

Network Troubleshooting

Playbooks

/

Network Troubleshooting

Network Troubleshooting

Created by

Console Team

Published

IT

Okta

Kandji

Linear

+1

Trigger

Requester reports WiFi/VPN/connectivity issues ("VPN keeps dropping every 20 min", "can't reach internal DNS", "Berlin office connectivity slow").

Instructions

  1. #Lookup Users on the requester with includeManager to get location.

  2. #List Devices (Kandji) to identify their device(s).

  3. #Trigger Form to collect:

    • Symptom (drops / slow / can't connect / DNS / VPN)

    • Office or remote

    • When it started

    • Frequency

  4. Check upstream first:

  5. Check user-side:

  6. Attempt remediation:

    • VPN drops → custom Re-establish VPN Tunnel action.

    • DNS → #Create Kandji Custom Script to flush DNS cache and reset network interfaces.

    • Slow → run iperf script via Kandji and compare to baseline.

  7. Ask via #Send Direct Message if it's resolved after each remediation.

  8. If resolved → #Resolve Request.

  9. If unresolved or upstream issue: #Create Linear Issue in the networking project with the diagnostic bundle.

  10. #Send Channel Message to #network-ops for upstream issues.

  11. #Send Direct Message to the user with escalation and expected timeline.

  12. #Leave Internal Note with full diagnostic trail.

Network Troubleshooting

Playbooks

/

Network Troubleshooting

Network Troubleshooting

Created by

Console Team

Published

IT

Okta

Kandji

Linear

+1

Trigger

Requester reports WiFi/VPN/connectivity issues ("VPN keeps dropping every 20 min", "can't reach internal DNS", "Berlin office connectivity slow").

Instructions

  1. #Lookup Users on the requester with includeManager to get location.

  2. #List Devices (Kandji) to identify their device(s).

  3. #Trigger Form to collect:

    • Symptom (drops / slow / can't connect / DNS / VPN)

    • Office or remote

    • When it started

    • Frequency

  4. Check upstream first:

  5. Check user-side:

  6. Attempt remediation:

    • VPN drops → custom Re-establish VPN Tunnel action.

    • DNS → #Create Kandji Custom Script to flush DNS cache and reset network interfaces.

    • Slow → run iperf script via Kandji and compare to baseline.

  7. Ask via #Send Direct Message if it's resolved after each remediation.

  8. If resolved → #Resolve Request.

  9. If unresolved or upstream issue: #Create Linear Issue in the networking project with the diagnostic bundle.

  10. #Send Channel Message to #network-ops for upstream issues.

  11. #Send Direct Message to the user with escalation and expected timeline.

  12. #Leave Internal Note with full diagnostic trail.

Network Troubleshooting

Playbooks

/

Network Troubleshooting

Network Troubleshooting

Created by

Console Team

Published

IT

Okta

Kandji

Linear

+1

Trigger

Requester reports WiFi/VPN/connectivity issues ("VPN keeps dropping every 20 min", "can't reach internal DNS", "Berlin office connectivity slow").

Instructions

  1. #Lookup Users on the requester with includeManager to get location.

  2. #List Devices (Kandji) to identify their device(s).

  3. #Trigger Form to collect:

    • Symptom (drops / slow / can't connect / DNS / VPN)

    • Office or remote

    • When it started

    • Frequency

  4. Check upstream first:

  5. Check user-side:

  6. Attempt remediation:

    • VPN drops → custom Re-establish VPN Tunnel action.

    • DNS → #Create Kandji Custom Script to flush DNS cache and reset network interfaces.

    • Slow → run iperf script via Kandji and compare to baseline.

  7. Ask via #Send Direct Message if it's resolved after each remediation.

  8. If resolved → #Resolve Request.

  9. If unresolved or upstream issue: #Create Linear Issue in the networking project with the diagnostic bundle.

  10. #Send Channel Message to #network-ops for upstream issues.

  11. #Send Direct Message to the user with escalation and expected timeline.

  12. #Leave Internal Note with full diagnostic trail.

New Cost Center & GL Setup

Playbooks

/

New Cost Center & GL Setup

New Cost Center & GL Setup

Created by

Console Team

Published

Finance

Workday

Ramp

NetSuite

+3

Trigger

Requester asks for new cost center or GL account.

Instructions

  1. #Trigger Form for type, name + code, parent rollup, owner, budget allocation, purpose, effective date.

  2. #Lookup Users on requester + owner.

  3. Validate naming:

  4. Check duplicates:

  5. #Request Approval from controller.

  6. For new cost center with budget: also CFO.

  7. On approval:

  8. Downstream:

  9. #Send Direct Message to requester with code; DM owner with responsibilities.

  10. #Send Channel Message to #finance-ops.

  11. #Leave Internal Note.

  12. #Resolve Request.

New Cost Center & GL Setup

Playbooks

/

New Cost Center & GL Setup

New Cost Center & GL Setup

Created by

Console Team

Published

Finance

Workday

Ramp

NetSuite

+3

Trigger

Requester asks for new cost center or GL account.

Instructions

  1. #Trigger Form for type, name + code, parent rollup, owner, budget allocation, purpose, effective date.

  2. #Lookup Users on requester + owner.

  3. Validate naming:

  4. Check duplicates:

  5. #Request Approval from controller.

  6. For new cost center with budget: also CFO.

  7. On approval:

  8. Downstream:

  9. #Send Direct Message to requester with code; DM owner with responsibilities.

  10. #Send Channel Message to #finance-ops.

  11. #Leave Internal Note.

  12. #Resolve Request.

New Cost Center & GL Setup

Playbooks

/

New Cost Center & GL Setup

New Cost Center & GL Setup

Created by

Console Team

Published

Finance

Workday

Ramp

NetSuite

+3

Trigger

Requester asks for new cost center or GL account.

Instructions

  1. #Trigger Form for type, name + code, parent rollup, owner, budget allocation, purpose, effective date.

  2. #Lookup Users on requester + owner.

  3. Validate naming:

  4. Check duplicates:

  5. #Request Approval from controller.

  6. For new cost center with budget: also CFO.

  7. On approval:

  8. Downstream:

  9. #Send Direct Message to requester with code; DM owner with responsibilities.

  10. #Send Channel Message to #finance-ops.

  11. #Leave Internal Note.

  12. #Resolve Request.

New Device Order

Playbooks

/

New Device Order

New Device Order

Created by

Console Team

Published

IT

Kandji

Apple Business Manager

+2

Trigger

User requests a new or replacement laptop, monitor, or peripheral.

Instructions

  1. #Lookup Users on the requester with includeManager and includeGroups to get role, department, location.

  2. #Trigger Form to collect:

    • Device type (laptop / monitor / accessory)

    • Reason (new hire / refresh / replacement / additional)

    • Specific model preference

    • Shipping address (default to address on file)

    • Needed-by date

  3. #List Devices (Kandji) to check existing assigned devices and age.

  4. Validate against role's approved spec:

  5. Determine approval tier:

    • <$2k → manager approval only.

    • $2k–$5k → manager + finance approval.

    • >$5k → manager + finance + VP approval.

  6. #Request Approval chained per tier.

  7. On approval, place the order:

  8. Capture the tracking number from the order response.

  9. schedule_action wake daily until delivered to:

  10. On delivery confirmation:

  11. #Leave Internal Note capturing model, price, approvers, tracking.

  12. #Resolve Request on delivery + setup confirmation.

New Device Order

Playbooks

/

New Device Order

New Device Order

Created by

Console Team

Published

IT

Kandji

Apple Business Manager

+2

Trigger

User requests a new or replacement laptop, monitor, or peripheral.

Instructions

  1. #Lookup Users on the requester with includeManager and includeGroups to get role, department, location.

  2. #Trigger Form to collect:

    • Device type (laptop / monitor / accessory)

    • Reason (new hire / refresh / replacement / additional)

    • Specific model preference

    • Shipping address (default to address on file)

    • Needed-by date

  3. #List Devices (Kandji) to check existing assigned devices and age.

  4. Validate against role's approved spec:

  5. Determine approval tier:

    • <$2k → manager approval only.

    • $2k–$5k → manager + finance approval.

    • >$5k → manager + finance + VP approval.

  6. #Request Approval chained per tier.

  7. On approval, place the order:

  8. Capture the tracking number from the order response.

  9. schedule_action wake daily until delivered to:

  10. On delivery confirmation:

  11. #Leave Internal Note capturing model, price, approvers, tracking.

  12. #Resolve Request on delivery + setup confirmation.

New Device Order

Playbooks

/

New Device Order

New Device Order

Created by

Console Team

Published

IT

Kandji

Apple Business Manager

+2

Trigger

User requests a new or replacement laptop, monitor, or peripheral.

Instructions

  1. #Lookup Users on the requester with includeManager and includeGroups to get role, department, location.

  2. #Trigger Form to collect:

    • Device type (laptop / monitor / accessory)

    • Reason (new hire / refresh / replacement / additional)

    • Specific model preference

    • Shipping address (default to address on file)

    • Needed-by date

  3. #List Devices (Kandji) to check existing assigned devices and age.

  4. Validate against role's approved spec:

  5. Determine approval tier:

    • <$2k → manager approval only.

    • $2k–$5k → manager + finance approval.

    • >$5k → manager + finance + VP approval.

  6. #Request Approval chained per tier.

  7. On approval, place the order:

  8. Capture the tracking number from the order response.

  9. schedule_action wake daily until delivered to:

  10. On delivery confirmation:

  11. #Leave Internal Note capturing model, price, approvers, tracking.

  12. #Resolve Request on delivery + setup confirmation.

New Hire Onboarding

Playbooks

/

New Hire Onboarding

New Hire Onboarding

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+1

Trigger

Webhook — Workday/HiBob/Rippling worker.hired Variables: $employee.email, $employee.firstName, $employee.lastName, $employee.preferredName, $employee.startDate, $employee.managerEmail, $employee.team, $employee.location, $employee.title, $employee.personalEmail

Instructions

  1. #Lookup Users to resolve the manager record from $employee.managerEmail.

  2. Determine the buddy:

    • #Search Graph the HR ingest for active team members on $employee.team with tenure >6 months.

    • Pick one not already buddying for someone else; capture buddy email.

  3. Pre-day-1 (fires immediately on webhook):

    • #Send Email to $employee.personalEmail with the welcome packet: handbook link, benefits enrollment link, day-1 logistics, dress code, what-to-bring, parking/transit info, manager intro.

    • Attach the team intro doc and the location-specific office welcome PDF.

  4. Day-1 calendar (fires 3 business days before $employee.startDate):

  5. Slack onboarding (fires on $employee.startDate at 9:00 AM local):

    • #Add Users To Channel for #welcome, #all-hands, #{{team}}, and #{{location}}-office.

    • #Send Channel Message to #welcome introducing the new hire with their preferred name, title, team, fun fact (collected via pre-start form if available), and a "say hi" prompt.

  6. Team channel intro:

  7. Manager + buddy nudge:

    • #Send Direct Message to the manager: pre-start checklist (set up 1:1 cadence, prep first-week agenda, intro to key collaborators).

    • #Send Direct Message to the buddy: their role (informal questions, lunch on day 2, check-in at end of week 1).

  8. schedule_action wake at end of day 1 to confirm with the new hire via #Send Direct Message: "How did day 1 go? Anything blocking you?"

  9. #Leave Internal Note capturing manager, buddy, calendar event IDs

New Hire Onboarding

Playbooks

/

New Hire Onboarding

New Hire Onboarding

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+1

Trigger

Webhook — Workday/HiBob/Rippling worker.hired Variables: $employee.email, $employee.firstName, $employee.lastName, $employee.preferredName, $employee.startDate, $employee.managerEmail, $employee.team, $employee.location, $employee.title, $employee.personalEmail

Instructions

  1. #Lookup Users to resolve the manager record from $employee.managerEmail.

  2. Determine the buddy:

    • #Search Graph the HR ingest for active team members on $employee.team with tenure >6 months.

    • Pick one not already buddying for someone else; capture buddy email.

  3. Pre-day-1 (fires immediately on webhook):

    • #Send Email to $employee.personalEmail with the welcome packet: handbook link, benefits enrollment link, day-1 logistics, dress code, what-to-bring, parking/transit info, manager intro.

    • Attach the team intro doc and the location-specific office welcome PDF.

  4. Day-1 calendar (fires 3 business days before $employee.startDate):

  5. Slack onboarding (fires on $employee.startDate at 9:00 AM local):

    • #Add Users To Channel for #welcome, #all-hands, #{{team}}, and #{{location}}-office.

    • #Send Channel Message to #welcome introducing the new hire with their preferred name, title, team, fun fact (collected via pre-start form if available), and a "say hi" prompt.

  6. Team channel intro:

  7. Manager + buddy nudge:

    • #Send Direct Message to the manager: pre-start checklist (set up 1:1 cadence, prep first-week agenda, intro to key collaborators).

    • #Send Direct Message to the buddy: their role (informal questions, lunch on day 2, check-in at end of week 1).

  8. schedule_action wake at end of day 1 to confirm with the new hire via #Send Direct Message: "How did day 1 go? Anything blocking you?"

  9. #Leave Internal Note capturing manager, buddy, calendar event IDs

New Hire Onboarding

Playbooks

/

New Hire Onboarding

New Hire Onboarding

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+1

Trigger

Webhook — Workday/HiBob/Rippling worker.hired Variables: $employee.email, $employee.firstName, $employee.lastName, $employee.preferredName, $employee.startDate, $employee.managerEmail, $employee.team, $employee.location, $employee.title, $employee.personalEmail

Instructions

  1. #Lookup Users to resolve the manager record from $employee.managerEmail.

  2. Determine the buddy:

    • #Search Graph the HR ingest for active team members on $employee.team with tenure >6 months.

    • Pick one not already buddying for someone else; capture buddy email.

  3. Pre-day-1 (fires immediately on webhook):

    • #Send Email to $employee.personalEmail with the welcome packet: handbook link, benefits enrollment link, day-1 logistics, dress code, what-to-bring, parking/transit info, manager intro.

    • Attach the team intro doc and the location-specific office welcome PDF.

  4. Day-1 calendar (fires 3 business days before $employee.startDate):

  5. Slack onboarding (fires on $employee.startDate at 9:00 AM local):

    • #Add Users To Channel for #welcome, #all-hands, #{{team}}, and #{{location}}-office.

    • #Send Channel Message to #welcome introducing the new hire with their preferred name, title, team, fun fact (collected via pre-start form if available), and a "say hi" prompt.

  6. Team channel intro:

  7. Manager + buddy nudge:

    • #Send Direct Message to the manager: pre-start checklist (set up 1:1 cadence, prep first-week agenda, intro to key collaborators).

    • #Send Direct Message to the buddy: their role (informal questions, lunch on day 2, check-in at end of week 1).

  8. schedule_action wake at end of day 1 to confirm with the new hire via #Send Direct Message: "How did day 1 go? Anything blocking you?"

  9. #Leave Internal Note capturing manager, buddy, calendar event IDs

New Hire Provisioning

Playbooks

/

New Hire Provisioning

New Hire Provisioning

Created by

Console Team

Published

IT

Okta

Google Calendar

Slack

+5

Trigger

Webhook — Workday/HiBob/Rippling worker.hired Variables: $employee.email, $employee.firstName, $employee.lastName, $employee.role, $employee.department, $employee.startDate, $employee.managerEmail, $employee.location, $employee.shippingAddress

Instructions

  1. Use #Lookup Users to resolve the manager record from $employee.managerEmail.

  2. Determine the provisioning bundle based on $employee.department:

    • Engineering → GitHub, Datadog, AWS sandbox

    • Sales → Salesforce, Gong, Outreach, Sales Nav

    • All → Okta, Google Workspace, Slack

  3. Use #Create Okta User (Staged) with the email, first/last name, department, and manager.

  4. Use #Activate Okta User to activate the account and send the activation email.

  5. For each baseline group, call #Add to Group (Okta): all-employees, the department group, and the location group.

  6. Use #Add to Group (Google) for all@, {{department}}@, and {{location}}@.

  7. If $employee.department == "Engineering": #Invite User to Org (GitHub), #Add User to Team for the right team, #Invite User to Datadog, and grant AWS sandbox via #AWS IAM - List Attached User Policies + custom IAM attach.

  8. If $employee.department == "Sales": invite to Salesforce, Gong, Outreach, Sales Nav (custom actions).

  9. Use #Kandji Assign ADE Device User to pre-assign a device to $employee.email and ship to $employee.shippingAddress.

  10. Use #List Google Calendar Events to find the manager's calendar, then create a day-1 intro event and a buddy lunch via Google Calendar.

  11. Use #Invite to Channel to add the user to #welcome, #all-hands, and their team channel.

  12. Use schedule_action to wake on Monday 9am $employee.location time to post a welcome thread in the team channel via #Send Channel Message.

New Hire Provisioning

Playbooks

/

New Hire Provisioning

New Hire Provisioning

Created by

Console Team

Published

IT

Okta

Google Calendar

Slack

+5

Trigger

Webhook — Workday/HiBob/Rippling worker.hired Variables: $employee.email, $employee.firstName, $employee.lastName, $employee.role, $employee.department, $employee.startDate, $employee.managerEmail, $employee.location, $employee.shippingAddress

Instructions

  1. Use #Lookup Users to resolve the manager record from $employee.managerEmail.

  2. Determine the provisioning bundle based on $employee.department:

    • Engineering → GitHub, Datadog, AWS sandbox

    • Sales → Salesforce, Gong, Outreach, Sales Nav

    • All → Okta, Google Workspace, Slack

  3. Use #Create Okta User (Staged) with the email, first/last name, department, and manager.

  4. Use #Activate Okta User to activate the account and send the activation email.

  5. For each baseline group, call #Add to Group (Okta): all-employees, the department group, and the location group.

  6. Use #Add to Group (Google) for all@, {{department}}@, and {{location}}@.

  7. If $employee.department == "Engineering": #Invite User to Org (GitHub), #Add User to Team for the right team, #Invite User to Datadog, and grant AWS sandbox via #AWS IAM - List Attached User Policies + custom IAM attach.

  8. If $employee.department == "Sales": invite to Salesforce, Gong, Outreach, Sales Nav (custom actions).

  9. Use #Kandji Assign ADE Device User to pre-assign a device to $employee.email and ship to $employee.shippingAddress.

  10. Use #List Google Calendar Events to find the manager's calendar, then create a day-1 intro event and a buddy lunch via Google Calendar.

  11. Use #Invite to Channel to add the user to #welcome, #all-hands, and their team channel.

  12. Use schedule_action to wake on Monday 9am $employee.location time to post a welcome thread in the team channel via #Send Channel Message.

New Hire Provisioning

Playbooks

/

New Hire Provisioning

New Hire Provisioning

Created by

Console Team

Published

IT

Okta

Google Calendar

Slack

+5

Trigger

Webhook — Workday/HiBob/Rippling worker.hired Variables: $employee.email, $employee.firstName, $employee.lastName, $employee.role, $employee.department, $employee.startDate, $employee.managerEmail, $employee.location, $employee.shippingAddress

Instructions

  1. Use #Lookup Users to resolve the manager record from $employee.managerEmail.

  2. Determine the provisioning bundle based on $employee.department:

    • Engineering → GitHub, Datadog, AWS sandbox

    • Sales → Salesforce, Gong, Outreach, Sales Nav

    • All → Okta, Google Workspace, Slack

  3. Use #Create Okta User (Staged) with the email, first/last name, department, and manager.

  4. Use #Activate Okta User to activate the account and send the activation email.

  5. For each baseline group, call #Add to Group (Okta): all-employees, the department group, and the location group.

  6. Use #Add to Group (Google) for all@, {{department}}@, and {{location}}@.

  7. If $employee.department == "Engineering": #Invite User to Org (GitHub), #Add User to Team for the right team, #Invite User to Datadog, and grant AWS sandbox via #AWS IAM - List Attached User Policies + custom IAM attach.

  8. If $employee.department == "Sales": invite to Salesforce, Gong, Outreach, Sales Nav (custom actions).

  9. Use #Kandji Assign ADE Device User to pre-assign a device to $employee.email and ship to $employee.shippingAddress.

  10. Use #List Google Calendar Events to find the manager's calendar, then create a day-1 intro event and a buddy lunch via Google Calendar.

  11. Use #Invite to Channel to add the user to #welcome, #all-hands, and their team channel.

  12. Use schedule_action to wake on Monday 9am $employee.location time to post a welcome thread in the team channel via #Send Channel Message.

New Sales Hire Onboarding

Playbooks

/

New Sales Hire Onboarding

New Sales Hire Onboarding

Created by

Console Team

Published

RevOps

Okta

Google Calendar

Google Sheet

+6

Trigger

Webhook — HRIS worker.hired with department = Sales Variables: $employee.email, $employee.startDate, $employee.role, $employee.managerEmail, $employee.location, $employee.team

Instructions

  1. #Lookup Users on $employee.email with includeManager after IT-1 provisioning has created the Okta user.

  2. CRM provisioning:

  3. Engagement tools:

  4. Quota and territory:

  5. Communications:

  6. Financial:

  7. Sales enablement:

  8. Calendar setup:

    • #Custom Google Calendar Create Event series for:

      • Day 1: sales manager 1:1.

      • Day 3: SDR/AE buddy shadowing.

      • Day 5: SE shadow.

      • Day 7: CSM intro session.

      • Week 2: deal review observation.

      • Week 4: first roleplay session.

  9. Books and curriculum:

    • #Send Email with: sales playbook link, ICP definition doc, competitive battle cards, pricing doc, demo script, product training videos.

  10. Ramp metrics:

    • schedule_action wake at end of week 1, 2, 4 to send a "how's it going?" pulse.

    • On each wake: #Send Direct Message to new hire + manager with a brief check-in form.

  11. Manager prep:

    • #Send Direct Message to manager: ramp expectations, first-30/60/90 milestones, role-specific coaching tips.

  12. Welcome:

  13. #Leave Internal Note capturing all provisioning + onboarding artifacts.

New Sales Hire Onboarding

Playbooks

/

New Sales Hire Onboarding

New Sales Hire Onboarding

Created by

Console Team

Published

RevOps

Okta

Google Calendar

Google Sheet

+6

Trigger

Webhook — HRIS worker.hired with department = Sales Variables: $employee.email, $employee.startDate, $employee.role, $employee.managerEmail, $employee.location, $employee.team

Instructions

  1. #Lookup Users on $employee.email with includeManager after IT-1 provisioning has created the Okta user.

  2. CRM provisioning:

  3. Engagement tools:

  4. Quota and territory:

  5. Communications:

  6. Financial:

  7. Sales enablement:

  8. Calendar setup:

    • #Custom Google Calendar Create Event series for:

      • Day 1: sales manager 1:1.

      • Day 3: SDR/AE buddy shadowing.

      • Day 5: SE shadow.

      • Day 7: CSM intro session.

      • Week 2: deal review observation.

      • Week 4: first roleplay session.

  9. Books and curriculum:

    • #Send Email with: sales playbook link, ICP definition doc, competitive battle cards, pricing doc, demo script, product training videos.

  10. Ramp metrics:

    • schedule_action wake at end of week 1, 2, 4 to send a "how's it going?" pulse.

    • On each wake: #Send Direct Message to new hire + manager with a brief check-in form.

  11. Manager prep:

    • #Send Direct Message to manager: ramp expectations, first-30/60/90 milestones, role-specific coaching tips.

  12. Welcome:

  13. #Leave Internal Note capturing all provisioning + onboarding artifacts.

New Sales Hire Onboarding

Playbooks

/

New Sales Hire Onboarding

New Sales Hire Onboarding

Created by

Console Team

Published

RevOps

Okta

Google Calendar

Google Sheet

+6

Trigger

Webhook — HRIS worker.hired with department = Sales Variables: $employee.email, $employee.startDate, $employee.role, $employee.managerEmail, $employee.location, $employee.team

Instructions

  1. #Lookup Users on $employee.email with includeManager after IT-1 provisioning has created the Okta user.

  2. CRM provisioning:

  3. Engagement tools:

  4. Quota and territory:

  5. Communications:

  6. Financial:

  7. Sales enablement:

  8. Calendar setup:

    • #Custom Google Calendar Create Event series for:

      • Day 1: sales manager 1:1.

      • Day 3: SDR/AE buddy shadowing.

      • Day 5: SE shadow.

      • Day 7: CSM intro session.

      • Week 2: deal review observation.

      • Week 4: first roleplay session.

  9. Books and curriculum:

    • #Send Email with: sales playbook link, ICP definition doc, competitive battle cards, pricing doc, demo script, product training videos.

  10. Ramp metrics:

    • schedule_action wake at end of week 1, 2, 4 to send a "how's it going?" pulse.

    • On each wake: #Send Direct Message to new hire + manager with a brief check-in form.

  11. Manager prep:

    • #Send Direct Message to manager: ramp expectations, first-30/60/90 milestones, role-specific coaching tips.

  12. Welcome:

  13. #Leave Internal Note capturing all provisioning + onboarding artifacts.

New-Hire Handoff

Playbooks

/

New-Hire Handoff

New-Hire Handoff

Created by

Console Team

Published

HR

Workday

Greenhouse

Ashby

Trigger

Webhook — candidate.hired from Greenhouse/Ashby Variables: $application.id, $candidate.id, $candidate.email, $application.jobId, $application.offerSignedAt

Instructions

  1. #Get Application Details from Ashby (or Greenhouse equivalent) with $application.id.

  2. #Get Candidate Details from Ashby with $candidate.id for full record.

  3. #Custom Ashby Get Offer Letter to retrieve the signed offer PDF.

  4. Map fields from ATS to HRIS schema:

    • Personal info (name, email, phone, address)

    • Role (title, department, level, manager)

    • Comp (base salary, bonus, equity)

    • Start date

    • Location (office / remote)

    • Employment type (FT/PT/contract)

  5. Validate the mapping:

    • Manager email exists in Workday via custom Workday Lookup Worker.

    • Title matches a valid job profile via custom Workday Get Job Profile.

    • Comp falls within band via custom Workday Get Comp Band.

  6. If validation fails → #Send Channel Message to #hrbp with the issue; do not create the Workday record yet.

  7. On valid mapping:

  8. Trigger downstream:

    • Fire HR-1: New Hire Onboarding (people side) via custom Run Playbook action with the new worker payload.

    • Fire IT-1: New Hire Provisioning via custom Run Playbook action.

  9. #Send Direct Message to the hiring manager confirming the handoff and the start date.

  10. #Send Channel Message to #hr-ops with the new hire summary.

  11. #Leave Internal Note capturing the source application ID, Workday worker ID, downstream playbooks fired.

New-Hire Handoff

Playbooks

/

New-Hire Handoff

New-Hire Handoff

Created by

Console Team

Published

HR

Workday

Greenhouse

Ashby

Trigger

Webhook — candidate.hired from Greenhouse/Ashby Variables: $application.id, $candidate.id, $candidate.email, $application.jobId, $application.offerSignedAt

Instructions

  1. #Get Application Details from Ashby (or Greenhouse equivalent) with $application.id.

  2. #Get Candidate Details from Ashby with $candidate.id for full record.

  3. #Custom Ashby Get Offer Letter to retrieve the signed offer PDF.

  4. Map fields from ATS to HRIS schema:

    • Personal info (name, email, phone, address)

    • Role (title, department, level, manager)

    • Comp (base salary, bonus, equity)

    • Start date

    • Location (office / remote)

    • Employment type (FT/PT/contract)

  5. Validate the mapping:

    • Manager email exists in Workday via custom Workday Lookup Worker.

    • Title matches a valid job profile via custom Workday Get Job Profile.

    • Comp falls within band via custom Workday Get Comp Band.

  6. If validation fails → #Send Channel Message to #hrbp with the issue; do not create the Workday record yet.

  7. On valid mapping:

  8. Trigger downstream:

    • Fire HR-1: New Hire Onboarding (people side) via custom Run Playbook action with the new worker payload.

    • Fire IT-1: New Hire Provisioning via custom Run Playbook action.

  9. #Send Direct Message to the hiring manager confirming the handoff and the start date.

  10. #Send Channel Message to #hr-ops with the new hire summary.

  11. #Leave Internal Note capturing the source application ID, Workday worker ID, downstream playbooks fired.

New-Hire Handoff

Playbooks

/

New-Hire Handoff

New-Hire Handoff

Created by

Console Team

Published

HR

Workday

Greenhouse

Ashby

Trigger

Webhook — candidate.hired from Greenhouse/Ashby Variables: $application.id, $candidate.id, $candidate.email, $application.jobId, $application.offerSignedAt

Instructions

  1. #Get Application Details from Ashby (or Greenhouse equivalent) with $application.id.

  2. #Get Candidate Details from Ashby with $candidate.id for full record.

  3. #Custom Ashby Get Offer Letter to retrieve the signed offer PDF.

  4. Map fields from ATS to HRIS schema:

    • Personal info (name, email, phone, address)

    • Role (title, department, level, manager)

    • Comp (base salary, bonus, equity)

    • Start date

    • Location (office / remote)

    • Employment type (FT/PT/contract)

  5. Validate the mapping:

    • Manager email exists in Workday via custom Workday Lookup Worker.

    • Title matches a valid job profile via custom Workday Get Job Profile.

    • Comp falls within band via custom Workday Get Comp Band.

  6. If validation fails → #Send Channel Message to #hrbp with the issue; do not create the Workday record yet.

  7. On valid mapping:

  8. Trigger downstream:

    • Fire HR-1: New Hire Onboarding (people side) via custom Run Playbook action with the new worker payload.

    • Fire IT-1: New Hire Provisioning via custom Run Playbook action.

  9. #Send Direct Message to the hiring manager confirming the handoff and the start date.

  10. #Send Channel Message to #hr-ops with the new hire summary.

  11. #Leave Internal Note capturing the source application ID, Workday worker ID, downstream playbooks fired.

Non-Standard MSA & Redlines

Playbooks

/

Non-Standard MSA & Redlines

Non-Standard MSA & Redlines

Created by

Console Team

Published

RevOps

HubSpot

Gong

Ironclad

Trigger

AE needs a custom MSA or has redlines from prospect's legal.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • Type (full custom MSA / redlines on standard MSA / NDA / DPA / other).

    • Standard doc the redlines are against (if redlines).

    • Counterparty redline document attachment.

    • Priority (standard / urgent / blocker).

    • Specific terms in question (if known).

  2. #Lookup Users on the requester.

  3. #Hubspot Search Deals + #Get HubSpot Deal Details with Activity Timeline for deal context.

  4. Package the deal context:

    • ACV, term length, stage.

    • Champion + signer info from contacts.

    • Recent Gong call summaries.

    • Special considerations (sensitive industry, regulated data).

  5. Create the legal workflow:

    • #Custom Ironclad Create Workflow with:

      • Workflow template (Custom MSA / Redlines / NDA / DPA).

      • Counterparty details.

      • Deal context attached.

      • Counterparty document attached.

      • Priority flag.

    • Capture the Ironclad workflow ID.

  6. Notify legal:

    • #Send Direct Message to the legal counsel assigned by Ironclad.

    • Include: deal context summary, redline doc, priority, AE contact.

  7. AE confirmation:

  8. Poll status:

  9. For redline rounds:

  10. On final signature:

  11. #Send Channel Message to #deal-legal-log for tracking.

  12. #Leave Internal Note with workflow ID and outcome.

  13. #Resolve Request on signature.

Non-Standard MSA & Redlines

Playbooks

/

Non-Standard MSA & Redlines

Non-Standard MSA & Redlines

Created by

Console Team

Published

RevOps

HubSpot

Gong

Ironclad

Trigger

AE needs a custom MSA or has redlines from prospect's legal.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • Type (full custom MSA / redlines on standard MSA / NDA / DPA / other).

    • Standard doc the redlines are against (if redlines).

    • Counterparty redline document attachment.

    • Priority (standard / urgent / blocker).

    • Specific terms in question (if known).

  2. #Lookup Users on the requester.

  3. #Hubspot Search Deals + #Get HubSpot Deal Details with Activity Timeline for deal context.

  4. Package the deal context:

    • ACV, term length, stage.

    • Champion + signer info from contacts.

    • Recent Gong call summaries.

    • Special considerations (sensitive industry, regulated data).

  5. Create the legal workflow:

    • #Custom Ironclad Create Workflow with:

      • Workflow template (Custom MSA / Redlines / NDA / DPA).

      • Counterparty details.

      • Deal context attached.

      • Counterparty document attached.

      • Priority flag.

    • Capture the Ironclad workflow ID.

  6. Notify legal:

    • #Send Direct Message to the legal counsel assigned by Ironclad.

    • Include: deal context summary, redline doc, priority, AE contact.

  7. AE confirmation:

  8. Poll status:

  9. For redline rounds:

  10. On final signature:

  11. #Send Channel Message to #deal-legal-log for tracking.

  12. #Leave Internal Note with workflow ID and outcome.

  13. #Resolve Request on signature.

Non-Standard MSA & Redlines

Playbooks

/

Non-Standard MSA & Redlines

Non-Standard MSA & Redlines

Created by

Console Team

Published

RevOps

HubSpot

Gong

Ironclad

Trigger

AE needs a custom MSA or has redlines from prospect's legal.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • Type (full custom MSA / redlines on standard MSA / NDA / DPA / other).

    • Standard doc the redlines are against (if redlines).

    • Counterparty redline document attachment.

    • Priority (standard / urgent / blocker).

    • Specific terms in question (if known).

  2. #Lookup Users on the requester.

  3. #Hubspot Search Deals + #Get HubSpot Deal Details with Activity Timeline for deal context.

  4. Package the deal context:

    • ACV, term length, stage.

    • Champion + signer info from contacts.

    • Recent Gong call summaries.

    • Special considerations (sensitive industry, regulated data).

  5. Create the legal workflow:

    • #Custom Ironclad Create Workflow with:

      • Workflow template (Custom MSA / Redlines / NDA / DPA).

      • Counterparty details.

      • Deal context attached.

      • Counterparty document attached.

      • Priority flag.

    • Capture the Ironclad workflow ID.

  6. Notify legal:

    • #Send Direct Message to the legal counsel assigned by Ironclad.

    • Include: deal context summary, redline doc, priority, AE contact.

  7. AE confirmation:

  8. Poll status:

  9. For redline rounds:

  10. On final signature:

  11. #Send Channel Message to #deal-legal-log for tracking.

  12. #Leave Internal Note with workflow ID and outcome.

  13. #Resolve Request on signature.

Notion KB Q&A

Playbooks

/

Notion KB Q&A

Notion KB Q&A

Created by

Console Team

Published

IT

Notion

Trigger

Requester asks a how-to / policy / process / "what's our..." question likely answered in the internal KB.

Instructions

  1. #Lookup Users on the requester to get their location (for multi-region routing) and department.

  2. #Search Knowledge Base with the user's question as the query.

  3. If results returned: take the top 1–3 hits.

  4. For multi-region content: detect region tags on the articles. If the article has region-specific variants (US / EU / APAC), pick the one matching the requester's location. If no match, surface all variants with labels.

  5. #Expand Knowledge Base Article on the top hit if more depth is needed.

  6. If no relevant KB hit, escalate:

  7. Compose the answer in #Send Direct Message:

    • Direct answer first

    • Quoted source paragraph

    • Source link to the Notion page

  8. Ask if the answer resolved their question via a follow-up message.

  9. On confirm → #Resolve Request.

  10. On "no" or follow-up question → loop back to step 2, or #Escalate Request to a human.

Notion KB Q&A

Playbooks

/

Notion KB Q&A

Notion KB Q&A

Created by

Console Team

Published

IT

Notion

Trigger

Requester asks a how-to / policy / process / "what's our..." question likely answered in the internal KB.

Instructions

  1. #Lookup Users on the requester to get their location (for multi-region routing) and department.

  2. #Search Knowledge Base with the user's question as the query.

  3. If results returned: take the top 1–3 hits.

  4. For multi-region content: detect region tags on the articles. If the article has region-specific variants (US / EU / APAC), pick the one matching the requester's location. If no match, surface all variants with labels.

  5. #Expand Knowledge Base Article on the top hit if more depth is needed.

  6. If no relevant KB hit, escalate:

  7. Compose the answer in #Send Direct Message:

    • Direct answer first

    • Quoted source paragraph

    • Source link to the Notion page

  8. Ask if the answer resolved their question via a follow-up message.

  9. On confirm → #Resolve Request.

  10. On "no" or follow-up question → loop back to step 2, or #Escalate Request to a human.

Notion KB Q&A

Playbooks

/

Notion KB Q&A

Notion KB Q&A

Created by

Console Team

Published

IT

Notion

Trigger

Requester asks a how-to / policy / process / "what's our..." question likely answered in the internal KB.

Instructions

  1. #Lookup Users on the requester to get their location (for multi-region routing) and department.

  2. #Search Knowledge Base with the user's question as the query.

  3. If results returned: take the top 1–3 hits.

  4. For multi-region content: detect region tags on the articles. If the article has region-specific variants (US / EU / APAC), pick the one matching the requester's location. If no match, surface all variants with labels.

  5. #Expand Knowledge Base Article on the top hit if more depth is needed.

  6. If no relevant KB hit, escalate:

  7. Compose the answer in #Send Direct Message:

    • Direct answer first

    • Quoted source paragraph

    • Source link to the Notion page

  8. Ask if the answer resolved their question via a follow-up message.

  9. On confirm → #Resolve Request.

  10. On "no" or follow-up question → loop back to step 2, or #Escalate Request to a human.

Okta Password / MFA Reset

Playbooks

/

Okta Password / MFA Reset

Okta Password / MFA Reset

Created by

Console Team

Published

IT

Okta

Trigger

Requester reports being locked out, lost MFA device (YubiKey, phone, Authenticator), needs a password reset, or needs a factor reset.

Instructions

  1. #Search Okta User by Email for the requester to confirm the account exists and get the user ID.

  2. #Search Okta System Log Custom for user.account.reset_password and user.mfa.factor.reset events in the last 30 days for this user.

  3. #List User Factors to see current enrollments.

  4. Risk score the request based on:

    • 3+ resets in last 30 days → High

    • Login from new country or unusual IP in last 24h → High

    • Standard request from known device/location → Low

    • Recent suspicious activity in Okta log → Medium

  5. Identity verification per risk:

    • Low → ask 2 security questions inline (custom action to check answers against profile).

    • Medium → #Request Approval from the requester's manager (configured with requestersManager) confirming they spoke to the user.

    • High → #Prompt for Handoff to a security team member for live video ID verification.

  6. If verification fails or is denied: #Send Direct Message to the requester explaining next steps, #Send Channel Message to #sec-alerts, and #Resolve Request. Stop.

  7. Execute the reset based on the issue type:

  8. #Send Direct Message to the requester with confirmation and next-step instructions.

  9. If risk was High OR pattern-flag triggered (3+ resets): #Send Channel Message to #sec-alerts with the user, the reason, and the action taken.

  10. #Leave Internal Note on the request capturing risk score, verification method, and action taken.

  11. #Resolve Request.

Okta Password / MFA Reset

Playbooks

/

Okta Password / MFA Reset

Okta Password / MFA Reset

Created by

Console Team

Published

IT

Okta

Trigger

Requester reports being locked out, lost MFA device (YubiKey, phone, Authenticator), needs a password reset, or needs a factor reset.

Instructions

  1. #Search Okta User by Email for the requester to confirm the account exists and get the user ID.

  2. #Search Okta System Log Custom for user.account.reset_password and user.mfa.factor.reset events in the last 30 days for this user.

  3. #List User Factors to see current enrollments.

  4. Risk score the request based on:

    • 3+ resets in last 30 days → High

    • Login from new country or unusual IP in last 24h → High

    • Standard request from known device/location → Low

    • Recent suspicious activity in Okta log → Medium

  5. Identity verification per risk:

    • Low → ask 2 security questions inline (custom action to check answers against profile).

    • Medium → #Request Approval from the requester's manager (configured with requestersManager) confirming they spoke to the user.

    • High → #Prompt for Handoff to a security team member for live video ID verification.

  6. If verification fails or is denied: #Send Direct Message to the requester explaining next steps, #Send Channel Message to #sec-alerts, and #Resolve Request. Stop.

  7. Execute the reset based on the issue type:

  8. #Send Direct Message to the requester with confirmation and next-step instructions.

  9. If risk was High OR pattern-flag triggered (3+ resets): #Send Channel Message to #sec-alerts with the user, the reason, and the action taken.

  10. #Leave Internal Note on the request capturing risk score, verification method, and action taken.

  11. #Resolve Request.

Okta Password / MFA Reset

Playbooks

/

Okta Password / MFA Reset

Okta Password / MFA Reset

Created by

Console Team

Published

IT

Okta

Trigger

Requester reports being locked out, lost MFA device (YubiKey, phone, Authenticator), needs a password reset, or needs a factor reset.

Instructions

  1. #Search Okta User by Email for the requester to confirm the account exists and get the user ID.

  2. #Search Okta System Log Custom for user.account.reset_password and user.mfa.factor.reset events in the last 30 days for this user.

  3. #List User Factors to see current enrollments.

  4. Risk score the request based on:

    • 3+ resets in last 30 days → High

    • Login from new country or unusual IP in last 24h → High

    • Standard request from known device/location → Low

    • Recent suspicious activity in Okta log → Medium

  5. Identity verification per risk:

    • Low → ask 2 security questions inline (custom action to check answers against profile).

    • Medium → #Request Approval from the requester's manager (configured with requestersManager) confirming they spoke to the user.

    • High → #Prompt for Handoff to a security team member for live video ID verification.

  6. If verification fails or is denied: #Send Direct Message to the requester explaining next steps, #Send Channel Message to #sec-alerts, and #Resolve Request. Stop.

  7. Execute the reset based on the issue type:

  8. #Send Direct Message to the requester with confirmation and next-step instructions.

  9. If risk was High OR pattern-flag triggered (3+ resets): #Send Channel Message to #sec-alerts with the user, the reason, and the action taken.

  10. #Leave Internal Note on the request capturing risk score, verification method, and action taken.

  11. #Resolve Request.

Onboarding Stall Detection

Playbooks

/

Onboarding Stall Detection

Onboarding Stall Detection

Created by

Console Team

Published

HR

Okta

Google

Slack

+1

Trigger

Scheduled — every day at 10:00 AM America/Chicago

Instructions

  1. #Custom Workday Query Hires for employees at exactly day 5 from their start date.

  2. For each:

  3. Check core tool activation:

  4. Determine stall status:

    • Activated all three → no action.

    • Missing one or more → flag as stalled.

  5. For stalled hires:

    • #Send Direct Message to HRBP and manager: "{{employee.name}} hasn't activated {{missing tools}} by day 5. Want me to follow up with them or escalate?"

    • Include a #Trigger Form with options: "I'll reach out" / "Console reach out" / "Escalate to HRBP" / "Dismiss (known reason)".

  6. On response:

    • I'll reach out → no further action; HRBP/manager handles.

    • Console reach out → #Send Direct Message to the new hire on the manager's behalf: "Hey, just checking in on your first week. Anything blocking your setup? I noticed you haven't logged into {{tool}} yet."

    • Escalate to HRBP → #Send Channel Message to #hrbp-alerts.

    • Dismiss → log reason and exit.

  7. schedule_action wake at day 7 to re-check activation if "Console reach out" was chosen.

  8. On wake: if still stalled, escalate to HRBP regardless.

  9. #Leave Internal Note capturing the stall pattern and resolution.

Onboarding Stall Detection

Playbooks

/

Onboarding Stall Detection

Onboarding Stall Detection

Created by

Console Team

Published

HR

Okta

Google

Slack

+1

Trigger

Scheduled — every day at 10:00 AM America/Chicago

Instructions

  1. #Custom Workday Query Hires for employees at exactly day 5 from their start date.

  2. For each:

  3. Check core tool activation:

  4. Determine stall status:

    • Activated all three → no action.

    • Missing one or more → flag as stalled.

  5. For stalled hires:

    • #Send Direct Message to HRBP and manager: "{{employee.name}} hasn't activated {{missing tools}} by day 5. Want me to follow up with them or escalate?"

    • Include a #Trigger Form with options: "I'll reach out" / "Console reach out" / "Escalate to HRBP" / "Dismiss (known reason)".

  6. On response:

    • I'll reach out → no further action; HRBP/manager handles.

    • Console reach out → #Send Direct Message to the new hire on the manager's behalf: "Hey, just checking in on your first week. Anything blocking your setup? I noticed you haven't logged into {{tool}} yet."

    • Escalate to HRBP → #Send Channel Message to #hrbp-alerts.

    • Dismiss → log reason and exit.

  7. schedule_action wake at day 7 to re-check activation if "Console reach out" was chosen.

  8. On wake: if still stalled, escalate to HRBP regardless.

  9. #Leave Internal Note capturing the stall pattern and resolution.

Onboarding Stall Detection

Playbooks

/

Onboarding Stall Detection

Onboarding Stall Detection

Created by

Console Team

Published

HR

Okta

Google

Slack

+1

Trigger

Scheduled — every day at 10:00 AM America/Chicago

Instructions

  1. #Custom Workday Query Hires for employees at exactly day 5 from their start date.

  2. For each:

  3. Check core tool activation:

  4. Determine stall status:

    • Activated all three → no action.

    • Missing one or more → flag as stalled.

  5. For stalled hires:

    • #Send Direct Message to HRBP and manager: "{{employee.name}} hasn't activated {{missing tools}} by day 5. Want me to follow up with them or escalate?"

    • Include a #Trigger Form with options: "I'll reach out" / "Console reach out" / "Escalate to HRBP" / "Dismiss (known reason)".

  6. On response:

    • I'll reach out → no further action; HRBP/manager handles.

    • Console reach out → #Send Direct Message to the new hire on the manager's behalf: "Hey, just checking in on your first week. Anything blocking your setup? I noticed you haven't logged into {{tool}} yet."

    • Escalate to HRBP → #Send Channel Message to #hrbp-alerts.

    • Dismiss → log reason and exit.

  7. schedule_action wake at day 7 to re-check activation if "Console reach out" was chosen.

  8. On wake: if still stalled, escalate to HRBP regardless.

  9. #Leave Internal Note capturing the stall pattern and resolution.

Open Enrollment & Benefits Changes

Playbooks

/

Open Enrollment & Benefits Changes

Open Enrollment & Benefits Changes

Created by

Console Team

Published

HR

Workday

Gusto

Justworks

Trigger

Scheduled — Annual open enrollment window (typically November 1 kickoff, weekly reminders, closes November 30)

Instructions

  1. On kickoff date:

  2. For each eligible employee:

  3. schedule_action wakes at week 1, 2, 3 (3 reminders) for non-completers:

  4. Final week (3 days before close):

  5. After close:

  6. #Send Channel Message to #people post-close summary: enrollment rate, plan distribution, common changes.

  7. #Leave Internal Note in an internal tracking issue with the cohort completion data.

Open Enrollment & Benefits Changes

Playbooks

/

Open Enrollment & Benefits Changes

Open Enrollment & Benefits Changes

Created by

Console Team

Published

HR

Workday

Gusto

Justworks

Trigger

Scheduled — Annual open enrollment window (typically November 1 kickoff, weekly reminders, closes November 30)

Instructions

  1. On kickoff date:

  2. For each eligible employee:

  3. schedule_action wakes at week 1, 2, 3 (3 reminders) for non-completers:

  4. Final week (3 days before close):

  5. After close:

  6. #Send Channel Message to #people post-close summary: enrollment rate, plan distribution, common changes.

  7. #Leave Internal Note in an internal tracking issue with the cohort completion data.

Open Enrollment & Benefits Changes

Playbooks

/

Open Enrollment & Benefits Changes

Open Enrollment & Benefits Changes

Created by

Console Team

Published

HR

Workday

Gusto

Justworks

Trigger

Scheduled — Annual open enrollment window (typically November 1 kickoff, weekly reminders, closes November 30)

Instructions

  1. On kickoff date:

  2. For each eligible employee:

  3. schedule_action wakes at week 1, 2, 3 (3 reminders) for non-completers:

  4. Final week (3 days before close):

  5. After close:

  6. #Send Channel Message to #people post-close summary: enrollment rate, plan distribution, common changes.

  7. #Leave Internal Note in an internal tracking issue with the cohort completion data.

Outage Detection & Bulk Tagging

Playbooks

/

Outage Detection & Bulk Tagging

Outage Detection & Bulk Tagging

Created by

Console Team

Published

IT

Okta

Slack

GitHub

Trigger

Detection — PagerDuty webhook for major SaaS dependency (Slack, Okta, Google, GitHub) OR scheduled status-page poll every 5 minutes.

Instructions

  1. On trigger, identify the affected service from the alert payload.

  2. #Web Research the vendor's status page to confirm and get expected resolution time.

  3. If unconfirmed → wait 5 minutes and re-check; do not alert on noise.

  4. On confirmation:

  5. #Search Requests for open requests in the last 2 hours mentioning the affected service.

  6. For each matching request:

    • #Leave Internal Note tagging it as related to the outage.

    • Update the category to outage-{{service}} via custom action.

    • #Send Direct Message to the requester: "This looks related to an active {{service}} outage. We'll update you when resolved."

  7. schedule_action wake every 15 minutes to:

  8. On confirmed resolution:

  9. #Create Linear Issue post-outage for a retro doc with duration, impact, tagged-request count.

Outage Detection & Bulk Tagging

Playbooks

/

Outage Detection & Bulk Tagging

Outage Detection & Bulk Tagging

Created by

Console Team

Published

IT

Okta

Slack

GitHub

Trigger

Detection — PagerDuty webhook for major SaaS dependency (Slack, Okta, Google, GitHub) OR scheduled status-page poll every 5 minutes.

Instructions

  1. On trigger, identify the affected service from the alert payload.

  2. #Web Research the vendor's status page to confirm and get expected resolution time.

  3. If unconfirmed → wait 5 minutes and re-check; do not alert on noise.

  4. On confirmation:

  5. #Search Requests for open requests in the last 2 hours mentioning the affected service.

  6. For each matching request:

    • #Leave Internal Note tagging it as related to the outage.

    • Update the category to outage-{{service}} via custom action.

    • #Send Direct Message to the requester: "This looks related to an active {{service}} outage. We'll update you when resolved."

  7. schedule_action wake every 15 minutes to:

  8. On confirmed resolution:

  9. #Create Linear Issue post-outage for a retro doc with duration, impact, tagged-request count.

Outage Detection & Bulk Tagging

Playbooks

/

Outage Detection & Bulk Tagging

Outage Detection & Bulk Tagging

Created by

Console Team

Published

IT

Okta

Slack

GitHub

Trigger

Detection — PagerDuty webhook for major SaaS dependency (Slack, Okta, Google, GitHub) OR scheduled status-page poll every 5 minutes.

Instructions

  1. On trigger, identify the affected service from the alert payload.

  2. #Web Research the vendor's status page to confirm and get expected resolution time.

  3. If unconfirmed → wait 5 minutes and re-check; do not alert on noise.

  4. On confirmation:

  5. #Search Requests for open requests in the last 2 hours mentioning the affected service.

  6. For each matching request:

    • #Leave Internal Note tagging it as related to the outage.

    • Update the category to outage-{{service}} via custom action.

    • #Send Direct Message to the requester: "This looks related to an active {{service}} outage. We'll update you when resolved."

  7. schedule_action wake every 15 minutes to:

  8. On confirmed resolution:

  9. #Create Linear Issue post-outage for a retro doc with duration, impact, tagged-request count.

Parental Leave Intake

Playbooks

/

Parental Leave Intake

Parental Leave Intake

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+3

Trigger

Requester announces upcoming parental leave (birth / adoption / foster).

Instructions

  1. #Trigger Form to collect:

    1. Leave type (birth-mother / birth-partner / adoption / foster)

    2. Expected leave start date (or birth/placement date)

    3. Expected duration (auto-suggest based on policy + tenure)

    4. Whether they'll use FMLA (US) / STD / company top-up

    5. Manager email

    6. Backup contact info during leave (personal email)

  2. #Lookup Users on the requester with includeManager.

  3. #Custom Workday Get Parental Leave Policy to surface entitlement based on tenure and location.

  4. #Custom Workday Get PTO Balance to factor in any pre-leave PTO they want to use.

  5. Generate paperwork:

  6. Coordinate manager handoff:

  7. Pre-leave check-in:

    • schedule_action wake 14 days before leave start to #Send Direct Message to requester: "Two weeks until leave starts. Anything we still need to wrap up?"

  8. During leave:

  9. Return-from-leave 1:1:

  10. Coordinate benefits:

  11. #Send Direct Message to the requester confirming everything is set up.

  12. #Leave Internal Note capturing dates, paperwork status, manager handoff confirmation.

  13. #Resolve Request.

Parental Leave Intake

Playbooks

/

Parental Leave Intake

Parental Leave Intake

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+3

Trigger

Requester announces upcoming parental leave (birth / adoption / foster).

Instructions

  1. #Trigger Form to collect:

    1. Leave type (birth-mother / birth-partner / adoption / foster)

    2. Expected leave start date (or birth/placement date)

    3. Expected duration (auto-suggest based on policy + tenure)

    4. Whether they'll use FMLA (US) / STD / company top-up

    5. Manager email

    6. Backup contact info during leave (personal email)

  2. #Lookup Users on the requester with includeManager.

  3. #Custom Workday Get Parental Leave Policy to surface entitlement based on tenure and location.

  4. #Custom Workday Get PTO Balance to factor in any pre-leave PTO they want to use.

  5. Generate paperwork:

  6. Coordinate manager handoff:

  7. Pre-leave check-in:

    • schedule_action wake 14 days before leave start to #Send Direct Message to requester: "Two weeks until leave starts. Anything we still need to wrap up?"

  8. During leave:

  9. Return-from-leave 1:1:

  10. Coordinate benefits:

  11. #Send Direct Message to the requester confirming everything is set up.

  12. #Leave Internal Note capturing dates, paperwork status, manager handoff confirmation.

  13. #Resolve Request.

Parental Leave Intake

Playbooks

/

Parental Leave Intake

Parental Leave Intake

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+3

Trigger

Requester announces upcoming parental leave (birth / adoption / foster).

Instructions

  1. #Trigger Form to collect:

    1. Leave type (birth-mother / birth-partner / adoption / foster)

    2. Expected leave start date (or birth/placement date)

    3. Expected duration (auto-suggest based on policy + tenure)

    4. Whether they'll use FMLA (US) / STD / company top-up

    5. Manager email

    6. Backup contact info during leave (personal email)

  2. #Lookup Users on the requester with includeManager.

  3. #Custom Workday Get Parental Leave Policy to surface entitlement based on tenure and location.

  4. #Custom Workday Get PTO Balance to factor in any pre-leave PTO they want to use.

  5. Generate paperwork:

  6. Coordinate manager handoff:

  7. Pre-leave check-in:

    • schedule_action wake 14 days before leave start to #Send Direct Message to requester: "Two weeks until leave starts. Anything we still need to wrap up?"

  8. During leave:

  9. Return-from-leave 1:1:

  10. Coordinate benefits:

  11. #Send Direct Message to the requester confirming everything is set up.

  12. #Leave Internal Note capturing dates, paperwork status, manager handoff confirmation.

  13. #Resolve Request.

Performance & Feedback Routing

Playbooks

/

Performance & Feedback Routing

Performance & Feedback Routing

Created by

Console Team

Published

HR

Lattice

+2

Trigger

Requester submits review feedback, peer feedback, praise, or asks for peer reviewers.

Instructions

  1. Parse submission type:

    1. Review submission (for a current cycle)

    2. Peer feedback (unstructured / between cycles)

    3. Praise / kudos

    4. Request for peer reviewers

    5. 360 feedback submission

  2. #Lookup Users on the requester and the target user being reviewed.

  3. Branch on submission type:

  4. For all paths: schedule_action wakes at cycle deadlines (e.g. 7 days, 3 days, 1 day before) to remind stragglers via #Send Direct Message if their submissions are incomplete.

  5. #Send Direct Message to the requester confirming receipt and any next steps.

  6. #Leave Internal Note capturing submission type, target, action taken.

  7. #Resolve Request.

Performance & Feedback Routing

Playbooks

/

Performance & Feedback Routing

Performance & Feedback Routing

Created by

Console Team

Published

HR

Lattice

+2

Trigger

Requester submits review feedback, peer feedback, praise, or asks for peer reviewers.

Instructions

  1. Parse submission type:

    1. Review submission (for a current cycle)

    2. Peer feedback (unstructured / between cycles)

    3. Praise / kudos

    4. Request for peer reviewers

    5. 360 feedback submission

  2. #Lookup Users on the requester and the target user being reviewed.

  3. Branch on submission type:

  4. For all paths: schedule_action wakes at cycle deadlines (e.g. 7 days, 3 days, 1 day before) to remind stragglers via #Send Direct Message if their submissions are incomplete.

  5. #Send Direct Message to the requester confirming receipt and any next steps.

  6. #Leave Internal Note capturing submission type, target, action taken.

  7. #Resolve Request.

Performance & Feedback Routing

Playbooks

/

Performance & Feedback Routing

Performance & Feedback Routing

Created by

Console Team

Published

HR

Lattice

+2

Trigger

Requester submits review feedback, peer feedback, praise, or asks for peer reviewers.

Instructions

  1. Parse submission type:

    1. Review submission (for a current cycle)

    2. Peer feedback (unstructured / between cycles)

    3. Praise / kudos

    4. Request for peer reviewers

    5. 360 feedback submission

  2. #Lookup Users on the requester and the target user being reviewed.

  3. Branch on submission type:

  4. For all paths: schedule_action wakes at cycle deadlines (e.g. 7 days, 3 days, 1 day before) to remind stragglers via #Send Direct Message if their submissions are incomplete.

  5. #Send Direct Message to the requester confirming receipt and any next steps.

  6. #Leave Internal Note capturing submission type, target, action taken.

  7. #Resolve Request.

Performance Review Cycle Kickoff

Playbooks

/

Performance Review Cycle Kickoff

Performance Review Cycle Kickoff

Created by

Console Team

Published

HR

Google Calendar

Lattice

Workday

Trigger

Scheduled — on cycle start date (e.g. Q1 cycle on Jan 5, Q3 on Jul 5)

Instructions

  1. #Custom Lattice Create Cycle with cycle name, start date, end date, review components.

  2. #Custom Workday Query All Workers with active status to get the population.

  3. For each employee:

  4. Set deadlines:

  5. #Send Channel Message to #all-hands announcing cycle kickoff with overview and deadlines.

  6. #Send Direct Message to each employee with: their assignments, deadlines, link to Lattice.

  7. #Send Direct Message to each manager with: their direct reports' reviews, calibration schedule, peer-review prompts.

  8. schedule_action wakes at 14, 7, 3, 1 days before each deadline:

    • On each wake, custom Lattice Get Incomplete Reviews for the deadline window.

    • #Send Direct Message to each non-submitter with increasing urgency.

  9. At each deadline:

  10. #Send Channel Message to #hrbp post-cycle stats with completion rate via #Run Query.

  11. #Leave Internal Note capturing cycle config and key dates.

Performance Review Cycle Kickoff

Playbooks

/

Performance Review Cycle Kickoff

Performance Review Cycle Kickoff

Created by

Console Team

Published

HR

Google Calendar

Lattice

Workday

Trigger

Scheduled — on cycle start date (e.g. Q1 cycle on Jan 5, Q3 on Jul 5)

Instructions

  1. #Custom Lattice Create Cycle with cycle name, start date, end date, review components.

  2. #Custom Workday Query All Workers with active status to get the population.

  3. For each employee:

  4. Set deadlines:

  5. #Send Channel Message to #all-hands announcing cycle kickoff with overview and deadlines.

  6. #Send Direct Message to each employee with: their assignments, deadlines, link to Lattice.

  7. #Send Direct Message to each manager with: their direct reports' reviews, calibration schedule, peer-review prompts.

  8. schedule_action wakes at 14, 7, 3, 1 days before each deadline:

    • On each wake, custom Lattice Get Incomplete Reviews for the deadline window.

    • #Send Direct Message to each non-submitter with increasing urgency.

  9. At each deadline:

  10. #Send Channel Message to #hrbp post-cycle stats with completion rate via #Run Query.

  11. #Leave Internal Note capturing cycle config and key dates.

Performance Review Cycle Kickoff

Playbooks

/

Performance Review Cycle Kickoff

Performance Review Cycle Kickoff

Created by

Console Team

Published

HR

Google Calendar

Lattice

Workday

Trigger

Scheduled — on cycle start date (e.g. Q1 cycle on Jan 5, Q3 on Jul 5)

Instructions

  1. #Custom Lattice Create Cycle with cycle name, start date, end date, review components.

  2. #Custom Workday Query All Workers with active status to get the population.

  3. For each employee:

  4. Set deadlines:

  5. #Send Channel Message to #all-hands announcing cycle kickoff with overview and deadlines.

  6. #Send Direct Message to each employee with: their assignments, deadlines, link to Lattice.

  7. #Send Direct Message to each manager with: their direct reports' reviews, calibration schedule, peer-review prompts.

  8. schedule_action wakes at 14, 7, 3, 1 days before each deadline:

    • On each wake, custom Lattice Get Incomplete Reviews for the deadline window.

    • #Send Direct Message to each non-submitter with increasing urgency.

  9. At each deadline:

  10. #Send Channel Message to #hrbp post-cycle stats with completion rate via #Run Query.

  11. #Leave Internal Note capturing cycle config and key dates.

Phishing & Suspicious Email Triage

Playbooks

/

Phishing & Suspicious Email Triage

Phishing & Suspicious Email Triage

Created by

Console Team

Published

Security

Google

Slack

CrowdStrike

+4

Trigger

User reports a suspicious email via Slack, the report-phish button, or forwarding to phish@.

Instructions

  1. Parse the report:

    1. If forwarded as .eml: extract via custom Parse Email Headers.

    2. If Slack-reported: collect the email subject, sender, body screenshot, full headers if available.

  2. #Lookup Users on the reporter.

  3. #Trigger Form if details are incomplete to collect:

    • Full sender address

    • Subject line

    • Any links clicked? (yes/no)

    • Any attachments opened? (yes/no)

    • Any credentials entered? (yes/no)

  4. Indicator extraction:

  5. Enrichment:

  6. Verdict logic:

    • High-confidence malicious (multiple AV hits, known-bad domain, sandbox detection) → Malicious.

    • Suspicious but inconclusive → Suspicious, escalate to analyst.

    • Looks legit (known sender, clean indicators) → Benign.

  7. Branch on verdict:

  8. #Leave Internal Note capturing indicators, verdict, actions taken.

Phishing & Suspicious Email Triage

Playbooks

/

Phishing & Suspicious Email Triage

Phishing & Suspicious Email Triage

Created by

Console Team

Published

Security

Google

Slack

CrowdStrike

+4

Trigger

User reports a suspicious email via Slack, the report-phish button, or forwarding to phish@.

Instructions

  1. Parse the report:

    1. If forwarded as .eml: extract via custom Parse Email Headers.

    2. If Slack-reported: collect the email subject, sender, body screenshot, full headers if available.

  2. #Lookup Users on the reporter.

  3. #Trigger Form if details are incomplete to collect:

    • Full sender address

    • Subject line

    • Any links clicked? (yes/no)

    • Any attachments opened? (yes/no)

    • Any credentials entered? (yes/no)

  4. Indicator extraction:

  5. Enrichment:

  6. Verdict logic:

    • High-confidence malicious (multiple AV hits, known-bad domain, sandbox detection) → Malicious.

    • Suspicious but inconclusive → Suspicious, escalate to analyst.

    • Looks legit (known sender, clean indicators) → Benign.

  7. Branch on verdict:

  8. #Leave Internal Note capturing indicators, verdict, actions taken.

Phishing & Suspicious Email Triage

Playbooks

/

Phishing & Suspicious Email Triage

Phishing & Suspicious Email Triage

Created by

Console Team

Published

Security

Google

Slack

CrowdStrike

+4

Trigger

User reports a suspicious email via Slack, the report-phish button, or forwarding to phish@.

Instructions

  1. Parse the report:

    1. If forwarded as .eml: extract via custom Parse Email Headers.

    2. If Slack-reported: collect the email subject, sender, body screenshot, full headers if available.

  2. #Lookup Users on the reporter.

  3. #Trigger Form if details are incomplete to collect:

    • Full sender address

    • Subject line

    • Any links clicked? (yes/no)

    • Any attachments opened? (yes/no)

    • Any credentials entered? (yes/no)

  4. Indicator extraction:

  5. Enrichment:

  6. Verdict logic:

    • High-confidence malicious (multiple AV hits, known-bad domain, sandbox detection) → Malicious.

    • Suspicious but inconclusive → Suspicious, escalate to analyst.

    • Looks legit (known sender, clean indicators) → Benign.

  7. Branch on verdict:

  8. #Leave Internal Note capturing indicators, verdict, actions taken.

Pipeline & Deal Lookup

Playbooks

/

Pipeline & Deal Lookup

Pipeline & Deal Lookup

Created by

Console Team

Published

RevOps

Slack

HubSpot

Trigger

Requester asks for a pipeline view ("my deals stuck in proposal >30 days", "Q3 forecast", "closed-won this week", "deals in EMEA over $50k").

Instructions

  1. Parse the query:

    • Filter dimensions: owner / stage / close date / amount / region / vertical.

    • Aggregation: list / count / sum / forecast roll-up.

    • Time window.

  2. #Lookup Users on the requester to default owner filter to self unless asking about team.

  3. Translate to a CRM query:

  4. Apply post-query enrichment:

    • For each deal, optional #Get HubSpot Deal Details with Activity Timeline if the user asked for "what's the latest on...".

    • Calculate days-in-stage if stage-stuck query.

    • Calculate forecast roll-up sums if forecast query.

  5. Format output:

    • List queries → Slack table with: Deal name | Stage | Amount | Close date | Owner | Last activity.

    • Count queries → just the number + breakdown by stage.

    • Sum / forecast queries → totaled with breakdown.

  6. #Send Direct Message with the formatted result.

  7. Offer follow-up actions:

    • "Want me to ping the owners on these?" → fire Rev-20 flow for stale opps.

    • "Want this as a recurring digest?" → offer to set up a Rev-19 style scheduled report.

  8. #Leave Internal Note capturing the query.

  9. #Resolve Request.

Pipeline & Deal Lookup

Playbooks

/

Pipeline & Deal Lookup

Pipeline & Deal Lookup

Created by

Console Team

Published

RevOps

Slack

HubSpot

Trigger

Requester asks for a pipeline view ("my deals stuck in proposal >30 days", "Q3 forecast", "closed-won this week", "deals in EMEA over $50k").

Instructions

  1. Parse the query:

    • Filter dimensions: owner / stage / close date / amount / region / vertical.

    • Aggregation: list / count / sum / forecast roll-up.

    • Time window.

  2. #Lookup Users on the requester to default owner filter to self unless asking about team.

  3. Translate to a CRM query:

  4. Apply post-query enrichment:

    • For each deal, optional #Get HubSpot Deal Details with Activity Timeline if the user asked for "what's the latest on...".

    • Calculate days-in-stage if stage-stuck query.

    • Calculate forecast roll-up sums if forecast query.

  5. Format output:

    • List queries → Slack table with: Deal name | Stage | Amount | Close date | Owner | Last activity.

    • Count queries → just the number + breakdown by stage.

    • Sum / forecast queries → totaled with breakdown.

  6. #Send Direct Message with the formatted result.

  7. Offer follow-up actions:

    • "Want me to ping the owners on these?" → fire Rev-20 flow for stale opps.

    • "Want this as a recurring digest?" → offer to set up a Rev-19 style scheduled report.

  8. #Leave Internal Note capturing the query.

  9. #Resolve Request.

Pipeline & Deal Lookup

Playbooks

/

Pipeline & Deal Lookup

Pipeline & Deal Lookup

Created by

Console Team

Published

RevOps

Slack

HubSpot

Trigger

Requester asks for a pipeline view ("my deals stuck in proposal >30 days", "Q3 forecast", "closed-won this week", "deals in EMEA over $50k").

Instructions

  1. Parse the query:

    • Filter dimensions: owner / stage / close date / amount / region / vertical.

    • Aggregation: list / count / sum / forecast roll-up.

    • Time window.

  2. #Lookup Users on the requester to default owner filter to self unless asking about team.

  3. Translate to a CRM query:

  4. Apply post-query enrichment:

    • For each deal, optional #Get HubSpot Deal Details with Activity Timeline if the user asked for "what's the latest on...".

    • Calculate days-in-stage if stage-stuck query.

    • Calculate forecast roll-up sums if forecast query.

  5. Format output:

    • List queries → Slack table with: Deal name | Stage | Amount | Close date | Owner | Last activity.

    • Count queries → just the number + breakdown by stage.

    • Sum / forecast queries → totaled with breakdown.

  6. #Send Direct Message with the formatted result.

  7. Offer follow-up actions:

    • "Want me to ping the owners on these?" → fire Rev-20 flow for stale opps.

    • "Want this as a recurring digest?" → offer to set up a Rev-19 style scheduled report.

  8. #Leave Internal Note capturing the query.

  9. #Resolve Request.

PO & Invoice Status Lookup

Playbooks

/

PO & Invoice Status Lookup

PO & Invoice Status Lookup

Created by

Console Team

Published

Finance

NetSuite

Bill

Coupa

+1

Trigger

Requester asks for PO/invoice/contract status.

Instructions

  1. Parse identifier and system (Coupa / Ariba / NetSuite / Bill.com).

  2. #Lookup Users with includeGroups.

  3. Permission check: requester is PO owner, cost-center owner, finance, or executive.

  4. Search across systems in parallel:

  5. Compile response: current stage, current approver + queue time, amount + vendor + cost center, PO/invoice linkage, ETA based on historical times, direct link.

  6. Vague request ("status of all my POs") → #custom Coupa List My POs as table.

  7. #Send Direct Message with the formatted result.

  8. Offer follow-ups: ping approver, expedite.

  9. #Leave Internal Note.

  10. #Resolve Request.

PO & Invoice Status Lookup

Playbooks

/

PO & Invoice Status Lookup

PO & Invoice Status Lookup

Created by

Console Team

Published

Finance

NetSuite

Bill

Coupa

+1

Trigger

Requester asks for PO/invoice/contract status.

Instructions

  1. Parse identifier and system (Coupa / Ariba / NetSuite / Bill.com).

  2. #Lookup Users with includeGroups.

  3. Permission check: requester is PO owner, cost-center owner, finance, or executive.

  4. Search across systems in parallel:

  5. Compile response: current stage, current approver + queue time, amount + vendor + cost center, PO/invoice linkage, ETA based on historical times, direct link.

  6. Vague request ("status of all my POs") → #custom Coupa List My POs as table.

  7. #Send Direct Message with the formatted result.

  8. Offer follow-ups: ping approver, expedite.

  9. #Leave Internal Note.

  10. #Resolve Request.

PO & Invoice Status Lookup

Playbooks

/

PO & Invoice Status Lookup

PO & Invoice Status Lookup

Created by

Console Team

Published

Finance

NetSuite

Bill

Coupa

+1

Trigger

Requester asks for PO/invoice/contract status.

Instructions

  1. Parse identifier and system (Coupa / Ariba / NetSuite / Bill.com).

  2. #Lookup Users with includeGroups.

  3. Permission check: requester is PO owner, cost-center owner, finance, or executive.

  4. Search across systems in parallel:

  5. Compile response: current stage, current approver + queue time, amount + vendor + cost center, PO/invoice linkage, ETA based on historical times, direct link.

  6. Vague request ("status of all my POs") → #custom Coupa List My POs as table.

  7. #Send Direct Message with the formatted result.

  8. Offer follow-ups: ping approver, expedite.

  9. #Leave Internal Note.

  10. #Resolve Request.

POC & Pilot Stand-Up

Playbooks

/

POC & Pilot Stand-Up

POC & Pilot Stand-Up

Created by

Console Team

Published

RevOps

Okta

Google Calendar

Google Docs

+3

Trigger

AE kicks off a POC or pilot.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • POC type (full / scoped / proof-of-value).

    • Duration (typical 14 / 30 / 60 days).

    • Success criteria (free text — what defines success).

    • Customer team contacts.

    • Internal SE/CSM assigned.

    • Data sensitivity (any customer data involved).

  2. #Lookup Users on AE, SE, CSM.

  3. Set up gates in sequence — POC cannot proceed until each clears:

  4. Gate 1: SOW signed

  5. Gate 2: Security review

    • If data sensitivity > Low → fire Sec-18 (Vendor Security Review) for customer access to our environment.

    • #Lookup Policies for the relevant access policies.

    • Wait for security sign-off.

  6. Gate 3: Provisioning

  7. Gate 4: Success criteria captured

  8. Gate 5: Kickoff scheduled

  9. After all gates clear:

  10. Mid-POC checkpoints:

    • schedule_action wakes at 25%, 50%, 75% of POC duration.

    • On each wake, #Send Direct Message to SE asking for status + customer engagement signals.

  11. POC close:

  12. #Leave Internal Note capturing all gates and outcomes.

POC & Pilot Stand-Up

Playbooks

/

POC & Pilot Stand-Up

POC & Pilot Stand-Up

Created by

Console Team

Published

RevOps

Okta

Google Calendar

Google Docs

+3

Trigger

AE kicks off a POC or pilot.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • POC type (full / scoped / proof-of-value).

    • Duration (typical 14 / 30 / 60 days).

    • Success criteria (free text — what defines success).

    • Customer team contacts.

    • Internal SE/CSM assigned.

    • Data sensitivity (any customer data involved).

  2. #Lookup Users on AE, SE, CSM.

  3. Set up gates in sequence — POC cannot proceed until each clears:

  4. Gate 1: SOW signed

  5. Gate 2: Security review

    • If data sensitivity > Low → fire Sec-18 (Vendor Security Review) for customer access to our environment.

    • #Lookup Policies for the relevant access policies.

    • Wait for security sign-off.

  6. Gate 3: Provisioning

  7. Gate 4: Success criteria captured

  8. Gate 5: Kickoff scheduled

  9. After all gates clear:

  10. Mid-POC checkpoints:

    • schedule_action wakes at 25%, 50%, 75% of POC duration.

    • On each wake, #Send Direct Message to SE asking for status + customer engagement signals.

  11. POC close:

  12. #Leave Internal Note capturing all gates and outcomes.

POC & Pilot Stand-Up

Playbooks

/

POC & Pilot Stand-Up

POC & Pilot Stand-Up

Created by

Console Team

Published

RevOps

Okta

Google Calendar

Google Docs

+3

Trigger

AE kicks off a POC or pilot.

Instructions

  1. #Trigger Form to collect:

    • Deal name/ID.

    • POC type (full / scoped / proof-of-value).

    • Duration (typical 14 / 30 / 60 days).

    • Success criteria (free text — what defines success).

    • Customer team contacts.

    • Internal SE/CSM assigned.

    • Data sensitivity (any customer data involved).

  2. #Lookup Users on AE, SE, CSM.

  3. Set up gates in sequence — POC cannot proceed until each clears:

  4. Gate 1: SOW signed

  5. Gate 2: Security review

    • If data sensitivity > Low → fire Sec-18 (Vendor Security Review) for customer access to our environment.

    • #Lookup Policies for the relevant access policies.

    • Wait for security sign-off.

  6. Gate 3: Provisioning

  7. Gate 4: Success criteria captured

  8. Gate 5: Kickoff scheduled

  9. After all gates clear:

  10. Mid-POC checkpoints:

    • schedule_action wakes at 25%, 50%, 75% of POC duration.

    • On each wake, #Send Direct Message to SE asking for status + customer engagement signals.

  11. POC close:

  12. #Leave Internal Note capturing all gates and outcomes.

Privacy / Data Deletion

Playbooks

/

Privacy / Data Deletion

Privacy / Data Deletion

Created by

Console Team

Published

Security

Okta

Google Workspace Admin

Snowflake

+6

Trigger

Requester submits a Data Subject Request (DSR) — internal user, customer, or external request via privacy@.

Instructions

  1. #Trigger Form to collect:

    • Request type (Access / Portability / Deletion / Rectification / Opt-out)

    • Subject email or identifier

    • Subject relationship (customer / employee / prospect / unknown)

    • Verification method (email confirmation / govt ID / customer auth)

    • Regulatory basis (GDPR / CCPA / other)

    • SLA window (auto-calculated: GDPR = 30 days, CCPA = 45 days)

  2. Verify the requester is authorized:

    • For employee-initiated → require their direct email match.

    • For customer → #custom Send Verification Email + verify response.

    • For attorney/legal rep → require power of attorney upload + legal review.

  3. #Lookup Users on the subject email (employee case).

  4. #Request Approval from the Data Protection Officer (DPO) for high-impact requests (deletion of active customer, employee records).

  5. Locate the subject across all systems:

  6. Build a comprehensive data inventory:

    • System / data type / record count / oldest record / newest record.

  7. Branch on request type:

  8. Generate completion certificate:

  9. #Send Email to subject confirming completion.

  10. #Custom Vanta Upload DSR Evidence for compliance audit trail.

  11. schedule_action wake at SLA deadline minus 7 days to check unfinished items.

  12. On wake: if any items remain, #Send Channel Message to #privacy-ops and DPO.

  13. #Leave Internal Note capturing data inventory and completion.

  14. #Resolve Request.

Privacy / Data Deletion

Playbooks

/

Privacy / Data Deletion

Privacy / Data Deletion

Created by

Console Team

Published

Security

Okta

Google Workspace Admin

Snowflake

+6

Trigger

Requester submits a Data Subject Request (DSR) — internal user, customer, or external request via privacy@.

Instructions

  1. #Trigger Form to collect:

    • Request type (Access / Portability / Deletion / Rectification / Opt-out)

    • Subject email or identifier

    • Subject relationship (customer / employee / prospect / unknown)

    • Verification method (email confirmation / govt ID / customer auth)

    • Regulatory basis (GDPR / CCPA / other)

    • SLA window (auto-calculated: GDPR = 30 days, CCPA = 45 days)

  2. Verify the requester is authorized:

    • For employee-initiated → require their direct email match.

    • For customer → #custom Send Verification Email + verify response.

    • For attorney/legal rep → require power of attorney upload + legal review.

  3. #Lookup Users on the subject email (employee case).

  4. #Request Approval from the Data Protection Officer (DPO) for high-impact requests (deletion of active customer, employee records).

  5. Locate the subject across all systems:

  6. Build a comprehensive data inventory:

    • System / data type / record count / oldest record / newest record.

  7. Branch on request type:

  8. Generate completion certificate:

  9. #Send Email to subject confirming completion.

  10. #Custom Vanta Upload DSR Evidence for compliance audit trail.

  11. schedule_action wake at SLA deadline minus 7 days to check unfinished items.

  12. On wake: if any items remain, #Send Channel Message to #privacy-ops and DPO.

  13. #Leave Internal Note capturing data inventory and completion.

  14. #Resolve Request.

Privacy / Data Deletion

Playbooks

/

Privacy / Data Deletion

Privacy / Data Deletion

Created by

Console Team

Published

Security

Okta

Google Workspace Admin

Snowflake

+6

Trigger

Requester submits a Data Subject Request (DSR) — internal user, customer, or external request via privacy@.

Instructions

  1. #Trigger Form to collect:

    • Request type (Access / Portability / Deletion / Rectification / Opt-out)

    • Subject email or identifier

    • Subject relationship (customer / employee / prospect / unknown)

    • Verification method (email confirmation / govt ID / customer auth)

    • Regulatory basis (GDPR / CCPA / other)

    • SLA window (auto-calculated: GDPR = 30 days, CCPA = 45 days)

  2. Verify the requester is authorized:

    • For employee-initiated → require their direct email match.

    • For customer → #custom Send Verification Email + verify response.

    • For attorney/legal rep → require power of attorney upload + legal review.

  3. #Lookup Users on the subject email (employee case).

  4. #Request Approval from the Data Protection Officer (DPO) for high-impact requests (deletion of active customer, employee records).

  5. Locate the subject across all systems:

  6. Build a comprehensive data inventory:

    • System / data type / record count / oldest record / newest record.

  7. Branch on request type:

  8. Generate completion certificate:

  9. #Send Email to subject confirming completion.

  10. #Custom Vanta Upload DSR Evidence for compliance audit trail.

  11. schedule_action wake at SLA deadline minus 7 days to check unfinished items.

  12. On wake: if any items remain, #Send Channel Message to #privacy-ops and DPO.

  13. #Leave Internal Note capturing data inventory and completion.

  14. #Resolve Request.

Proactive Device Health

Playbooks

/

Proactive Device Health

Proactive Device Health

Created by

Console Team

Published

IT

Kandji

Linear

Trigger

Detection — scheduled scan every 6 hours Conditions: Device matches: crash count ≥3 in 7 days, OR disk usage ≥90%, OR OS version more than 2 releases behind.

Instructions

  1. #List Devices (Kandji) with all enrolled devices.

  2. For each device, #Get Device Details and #Get Device Parameters to pull telemetry.

  3. Filter to devices matching any trigger condition.

  4. For each matching device:

    • #Lookup Users on device.assignedUserEmail to get the owner.

    • Skip if the user is on PTO/leave (check HR ingest) or if the same device was already pinged in the last 7 days.

  5. #Send Direct Message to the user: "Saw your laptop's been struggling — looks like {{issue summary}}. Want me to run the fix?" with #Trigger Form containing "Run fix" / "Schedule for later" / "Not now".

  6. schedule_action wake at 24 hours to check the form response.

  7. On wake, branch on response:

  8. schedule_action wake at 48 hours after the fix to verify resolution via re-checking telemetry.

  9. If still failing or user declined: #Create Linear Issue in the IT project assigned to a human technician.

  10. #Send Direct Message to the user confirming the outcome.

  11. #Leave Internal Note capturing the diagnosis and action.

Proactive Device Health

Playbooks

/

Proactive Device Health

Proactive Device Health

Created by

Console Team

Published

IT

Kandji

Linear

Trigger

Detection — scheduled scan every 6 hours Conditions: Device matches: crash count ≥3 in 7 days, OR disk usage ≥90%, OR OS version more than 2 releases behind.

Instructions

  1. #List Devices (Kandji) with all enrolled devices.

  2. For each device, #Get Device Details and #Get Device Parameters to pull telemetry.

  3. Filter to devices matching any trigger condition.

  4. For each matching device:

    • #Lookup Users on device.assignedUserEmail to get the owner.

    • Skip if the user is on PTO/leave (check HR ingest) or if the same device was already pinged in the last 7 days.

  5. #Send Direct Message to the user: "Saw your laptop's been struggling — looks like {{issue summary}}. Want me to run the fix?" with #Trigger Form containing "Run fix" / "Schedule for later" / "Not now".

  6. schedule_action wake at 24 hours to check the form response.

  7. On wake, branch on response:

  8. schedule_action wake at 48 hours after the fix to verify resolution via re-checking telemetry.

  9. If still failing or user declined: #Create Linear Issue in the IT project assigned to a human technician.

  10. #Send Direct Message to the user confirming the outcome.

  11. #Leave Internal Note capturing the diagnosis and action.

Proactive Device Health

Playbooks

/

Proactive Device Health

Proactive Device Health

Created by

Console Team

Published

IT

Kandji

Linear

Trigger

Detection — scheduled scan every 6 hours Conditions: Device matches: crash count ≥3 in 7 days, OR disk usage ≥90%, OR OS version more than 2 releases behind.

Instructions

  1. #List Devices (Kandji) with all enrolled devices.

  2. For each device, #Get Device Details and #Get Device Parameters to pull telemetry.

  3. Filter to devices matching any trigger condition.

  4. For each matching device:

    • #Lookup Users on device.assignedUserEmail to get the owner.

    • Skip if the user is on PTO/leave (check HR ingest) or if the same device was already pinged in the last 7 days.

  5. #Send Direct Message to the user: "Saw your laptop's been struggling — looks like {{issue summary}}. Want me to run the fix?" with #Trigger Form containing "Run fix" / "Schedule for later" / "Not now".

  6. schedule_action wake at 24 hours to check the form response.

  7. On wake, branch on response:

  8. schedule_action wake at 48 hours after the fix to verify resolution via re-checking telemetry.

  9. If still failing or user declined: #Create Linear Issue in the IT project assigned to a human technician.

  10. #Send Direct Message to the user confirming the outcome.

  11. #Leave Internal Note capturing the diagnosis and action.

Public Exposure Monitoring

Playbooks

/

Public Exposure Monitoring

Public Exposure Monitoring

Created by

Console Team

Published

Security

AWS

GitHub

Vanta

+2

Trigger

Detection — scheduled scan every 4 hours + GitHub secret-scanning webhook

Instructions

  1. Multi-source scan in parallel:

  2. For each finding, classify severity:

    • Leaked secret (API key, token, password) → P0.

    • Public S3 with data → P1.

    • Unexpected exposed port → P2.

    • Outdated TLS / weak config → P3.

  3. Resolve the owning team:

  4. For each finding:

  5. schedule_action wakes per finding at SLA windows:

    • P0 → 4h, 8h, 24h.

    • P1 → 24h, 72h, 7d.

    • P2 → 7d, 30d.

    • P3 → 30d, 90d.

  6. On wakes, #custom Get Finding Status to check remediation.

  7. If unremediated past SLA: #Send Channel Message escalating to the team's skip-level and #security-leads.

  8. #Custom Vanta Log Exposure Finding for compliance.

  9. Weekly summary to #security via #Send Channel Message.

  10. #Leave Internal Note per finding.

Public Exposure Monitoring

Playbooks

/

Public Exposure Monitoring

Public Exposure Monitoring

Created by

Console Team

Published

Security

AWS

GitHub

Vanta

+2

Trigger

Detection — scheduled scan every 4 hours + GitHub secret-scanning webhook

Instructions

  1. Multi-source scan in parallel:

  2. For each finding, classify severity:

    • Leaked secret (API key, token, password) → P0.

    • Public S3 with data → P1.

    • Unexpected exposed port → P2.

    • Outdated TLS / weak config → P3.

  3. Resolve the owning team:

  4. For each finding:

  5. schedule_action wakes per finding at SLA windows:

    • P0 → 4h, 8h, 24h.

    • P1 → 24h, 72h, 7d.

    • P2 → 7d, 30d.

    • P3 → 30d, 90d.

  6. On wakes, #custom Get Finding Status to check remediation.

  7. If unremediated past SLA: #Send Channel Message escalating to the team's skip-level and #security-leads.

  8. #Custom Vanta Log Exposure Finding for compliance.

  9. Weekly summary to #security via #Send Channel Message.

  10. #Leave Internal Note per finding.

Public Exposure Monitoring

Playbooks

/

Public Exposure Monitoring

Public Exposure Monitoring

Created by

Console Team

Published

Security

AWS

GitHub

Vanta

+2

Trigger

Detection — scheduled scan every 4 hours + GitHub secret-scanning webhook

Instructions

  1. Multi-source scan in parallel:

  2. For each finding, classify severity:

    • Leaked secret (API key, token, password) → P0.

    • Public S3 with data → P1.

    • Unexpected exposed port → P2.

    • Outdated TLS / weak config → P3.

  3. Resolve the owning team:

  4. For each finding:

  5. schedule_action wakes per finding at SLA windows:

    • P0 → 4h, 8h, 24h.

    • P1 → 24h, 72h, 7d.

    • P2 → 7d, 30d.

    • P3 → 30d, 90d.

  6. On wakes, #custom Get Finding Status to check remediation.

  7. If unremediated past SLA: #Send Channel Message escalating to the team's skip-level and #security-leads.

  8. #Custom Vanta Log Exposure Finding for compliance.

  9. Weekly summary to #security via #Send Channel Message.

  10. #Leave Internal Note per finding.

Receipt Match & Policy Compliance

Playbooks

/

Receipt Match & Policy Compliance

Receipt Match & Policy Compliance

Created by

Console Team

Published

Finance

Ramp

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. Pull recent transactions:

  2. For each transaction:

  3. Branch by days:

    • Day 3: first reminder.

    • Day 7: second + manager escalation.

    • Day 14: route to finance + policy flag.

  4. Missing-receipt transactions:

  5. With-receipt transactions:

  6. Aggregate metrics per cardholder.

  7. Weekly summary:

  8. #Leave Internal Note in daily tracking issue.

Receipt Match & Policy Compliance

Playbooks

/

Receipt Match & Policy Compliance

Receipt Match & Policy Compliance

Created by

Console Team

Published

Finance

Ramp

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. Pull recent transactions:

  2. For each transaction:

  3. Branch by days:

    • Day 3: first reminder.

    • Day 7: second + manager escalation.

    • Day 14: route to finance + policy flag.

  4. Missing-receipt transactions:

  5. With-receipt transactions:

  6. Aggregate metrics per cardholder.

  7. Weekly summary:

  8. #Leave Internal Note in daily tracking issue.

Receipt Match & Policy Compliance

Playbooks

/

Receipt Match & Policy Compliance

Receipt Match & Policy Compliance

Created by

Console Team

Published

Finance

Ramp

Trigger

Scheduled — every day at 9:00 AM America/Chicago

Instructions

  1. Pull recent transactions:

  2. For each transaction:

  3. Branch by days:

    • Day 3: first reminder.

    • Day 7: second + manager escalation.

    • Day 14: route to finance + policy flag.

  4. Missing-receipt transactions:

  5. With-receipt transactions:

  6. Aggregate metrics per cardholder.

  7. Weekly summary:

  8. #Leave Internal Note in daily tracking issue.

Reimbursement Intake

Playbooks

/

Reimbursement Intake

Reimbursement Intake

Created by

Console Team

Published

Finance

Workday

Ramp

Bill

Trigger

Requester submits reimbursement.

Instructions

  1. #Trigger Form for category, amount, dates, receipt, justification, payment method.

  2. #Lookup Users with includeManager.

  3. Policy validation:

  4. Routing:

    • Auto-approve under threshold per category.

    • Manager approval otherwise.

    • Finance approval over $500 or any flag.

  5. #Request Approval.

  6. On approval:

  7. #Send Direct Message with status, payment date, method, YTD balance.

  8. #Leave Internal Note.

  9. #Resolve Request.

Reimbursement Intake

Playbooks

/

Reimbursement Intake

Reimbursement Intake

Created by

Console Team

Published

Finance

Workday

Ramp

Bill

Trigger

Requester submits reimbursement.

Instructions

  1. #Trigger Form for category, amount, dates, receipt, justification, payment method.

  2. #Lookup Users with includeManager.

  3. Policy validation:

  4. Routing:

    • Auto-approve under threshold per category.

    • Manager approval otherwise.

    • Finance approval over $500 or any flag.

  5. #Request Approval.

  6. On approval:

  7. #Send Direct Message with status, payment date, method, YTD balance.

  8. #Leave Internal Note.

  9. #Resolve Request.

Reimbursement Intake

Playbooks

/

Reimbursement Intake

Reimbursement Intake

Created by

Console Team

Published

Finance

Workday

Ramp

Bill

Trigger

Requester submits reimbursement.

Instructions

  1. #Trigger Form for category, amount, dates, receipt, justification, payment method.

  2. #Lookup Users with includeManager.

  3. Policy validation:

  4. Routing:

    • Auto-approve under threshold per category.

    • Manager approval otherwise.

    • Finance approval over $500 or any flag.

  5. #Request Approval.

  6. On approval:

  7. #Send Direct Message with status, payment date, method, YTD balance.

  8. #Leave Internal Note.

  9. #Resolve Request.

Renewal Pipeline Review

Playbooks

/

Renewal Pipeline Review

Renewal Pipeline Review

Created by

Console Team

Published

RevOps

HubSpot

DocuSign

NetSuite

+2

Trigger

Scheduled — every day at 7:00 AM America/Chicago

Instructions

  1. #Search HubSpot Deals by Close Date Range for deals (or contracts) with renewalDate at exactly 90, 60, 30 days out.

  2. Or #custom NetSuite Get Subscriptions Renewing.

  3. For each renewal:

  4. Compute renewal risk score:

    • Health score weight (Gainsight).

    • Usage trend (declining / flat / growing).

    • Support burden (high ticket volume = risk).

    • Champion stability (no champion change = positive).

    • Engagement (recent QBRs / EBR cadence).

  5. Bucket renewals:

    • At-risk (low score, declining usage, no champion) → escalate.

    • Standard (healthy) → standard renewal process.

    • Expansion-ready (high usage, expanding team) → upsell motion.

  6. #Send Direct Message to CSM + AE per renewal with the full package:

    • Renewal date.

    • Risk score + breakdown.

    • Usage trend chart.

    • Last QBR summary.

    • Suggested action (renewal play / expansion play / save play).

  7. For at-risk renewals (90-day):

  8. For expansion-ready (90-day):

  9. At 60-day mark:

  10. At 30-day mark:

  11. On signature:

  12. On non-renewal:

    • Trigger Rev-14 (closed-lost cascade) with lossType = churn.

  13. #Leave Internal Note with renewal review per customer.

Renewal Pipeline Review

Playbooks

/

Renewal Pipeline Review

Renewal Pipeline Review

Created by

Console Team

Published

RevOps

HubSpot

DocuSign

NetSuite

+2

Trigger

Scheduled — every day at 7:00 AM America/Chicago

Instructions

  1. #Search HubSpot Deals by Close Date Range for deals (or contracts) with renewalDate at exactly 90, 60, 30 days out.

  2. Or #custom NetSuite Get Subscriptions Renewing.

  3. For each renewal:

  4. Compute renewal risk score:

    • Health score weight (Gainsight).

    • Usage trend (declining / flat / growing).

    • Support burden (high ticket volume = risk).

    • Champion stability (no champion change = positive).

    • Engagement (recent QBRs / EBR cadence).

  5. Bucket renewals:

    • At-risk (low score, declining usage, no champion) → escalate.

    • Standard (healthy) → standard renewal process.

    • Expansion-ready (high usage, expanding team) → upsell motion.

  6. #Send Direct Message to CSM + AE per renewal with the full package:

    • Renewal date.

    • Risk score + breakdown.

    • Usage trend chart.

    • Last QBR summary.

    • Suggested action (renewal play / expansion play / save play).

  7. For at-risk renewals (90-day):

  8. For expansion-ready (90-day):

  9. At 60-day mark:

  10. At 30-day mark:

  11. On signature:

  12. On non-renewal:

    • Trigger Rev-14 (closed-lost cascade) with lossType = churn.

  13. #Leave Internal Note with renewal review per customer.

Renewal Pipeline Review

Playbooks

/

Renewal Pipeline Review

Renewal Pipeline Review

Created by

Console Team

Published

RevOps

HubSpot

DocuSign

NetSuite

+2

Trigger

Scheduled — every day at 7:00 AM America/Chicago

Instructions

  1. #Search HubSpot Deals by Close Date Range for deals (or contracts) with renewalDate at exactly 90, 60, 30 days out.

  2. Or #custom NetSuite Get Subscriptions Renewing.

  3. For each renewal:

  4. Compute renewal risk score:

    • Health score weight (Gainsight).

    • Usage trend (declining / flat / growing).

    • Support burden (high ticket volume = risk).

    • Champion stability (no champion change = positive).

    • Engagement (recent QBRs / EBR cadence).

  5. Bucket renewals:

    • At-risk (low score, declining usage, no champion) → escalate.

    • Standard (healthy) → standard renewal process.

    • Expansion-ready (high usage, expanding team) → upsell motion.

  6. #Send Direct Message to CSM + AE per renewal with the full package:

    • Renewal date.

    • Risk score + breakdown.

    • Usage trend chart.

    • Last QBR summary.

    • Suggested action (renewal play / expansion play / save play).

  7. For at-risk renewals (90-day):

  8. For expansion-ready (90-day):

  9. At 60-day mark:

  10. At 30-day mark:

  11. On signature:

  12. On non-renewal:

    • Trigger Rev-14 (closed-lost cascade) with lossType = churn.

  13. #Leave Internal Note with renewal review per customer.

Restricted-Country Access Control

Playbooks

/

Restricted-Country Access Control

Restricted-Country Access Control

Created by

Console Team

Published

Security

Okta

Vanta

+1

Trigger

Detection — scheduled Okta system log poll every 5 minutes

Instructions

  1. #Custom Get Restricted Country List from the security policy (e.g. OFAC list + internal exclusions).

  2. #Search Okta System Log Custom with filter for eventType eq "user.session.start" AND client.geographicalContext.country in restricted-list for the last 5 minutes.

  3. For each matching login:

  4. #Send Direct Message to the user immediately:

    • "We detected a login from {{country}} at {{time}} from IP {{ip}}. Was this you?"

    • #Trigger Form with options: "Yes, I'm traveling" / "Yes, VPN" / "No, not me".

  5. schedule_action wake at 30 minutes for response.

  6. Branch on response:

  7. #Custom Vanta Log Restricted Country Event with the full audit trail.

  8. #Leave Internal Note capturing detection, response, action.

Restricted-Country Access Control

Playbooks

/

Restricted-Country Access Control

Restricted-Country Access Control

Created by

Console Team

Published

Security

Okta

Vanta

+1

Trigger

Detection — scheduled Okta system log poll every 5 minutes

Instructions

  1. #Custom Get Restricted Country List from the security policy (e.g. OFAC list + internal exclusions).

  2. #Search Okta System Log Custom with filter for eventType eq "user.session.start" AND client.geographicalContext.country in restricted-list for the last 5 minutes.

  3. For each matching login:

  4. #Send Direct Message to the user immediately:

    • "We detected a login from {{country}} at {{time}} from IP {{ip}}. Was this you?"

    • #Trigger Form with options: "Yes, I'm traveling" / "Yes, VPN" / "No, not me".

  5. schedule_action wake at 30 minutes for response.

  6. Branch on response:

  7. #Custom Vanta Log Restricted Country Event with the full audit trail.

  8. #Leave Internal Note capturing detection, response, action.

Restricted-Country Access Control

Playbooks

/

Restricted-Country Access Control

Restricted-Country Access Control

Created by

Console Team

Published

Security

Okta

Vanta

+1

Trigger

Detection — scheduled Okta system log poll every 5 minutes

Instructions

  1. #Custom Get Restricted Country List from the security policy (e.g. OFAC list + internal exclusions).

  2. #Search Okta System Log Custom with filter for eventType eq "user.session.start" AND client.geographicalContext.country in restricted-list for the last 5 minutes.

  3. For each matching login:

  4. #Send Direct Message to the user immediately:

    • "We detected a login from {{country}} at {{time}} from IP {{ip}}. Was this you?"

    • #Trigger Form with options: "Yes, I'm traveling" / "Yes, VPN" / "No, not me".

  5. schedule_action wake at 30 minutes for response.

  6. Branch on response:

  7. #Custom Vanta Log Restricted Country Event with the full audit trail.

  8. #Leave Internal Note capturing detection, response, action.

RMA & Repair

Playbooks

/

RMA & Repair

RMA & Repair

Created by

Console Team

Published

IT

Kandji

Apple Business Manager

+3

Trigger

User reports a device needing repair ("laptop won't power on", "screen cracked", "keyboard sticking", "battery swelling").

Instructions

  1. #Lookup Users on the requester.

  2. #List Devices (Kandji) filtered by assignedUserEmail.

  3. #Trigger Form to collect:

    • Which device

    • Symptom description

    • Severity (can't work at all / partial use / cosmetic)

    • Whether they need a loaner immediately

  4. #Get Device Details to confirm device, serial number, purchase date, warranty status.

  5. Determine RMA path based on vendor:

  6. Capture the RMA case number and shipping label.

  7. If user needs a loaner (severity = can't work):

  8. #Send Direct Message to the user with RMA case, shipping label, loaner tracking, send-in instructions, expected turnaround.

  9. schedule_action daily wake to:

  10. On repair completion + return:

  11. #Leave Internal Note capturing RMA case, loaner ID, dates.

  12. #Resolve Request after loaner return.

RMA & Repair

Playbooks

/

RMA & Repair

RMA & Repair

Created by

Console Team

Published

IT

Kandji

Apple Business Manager

+3

Trigger

User reports a device needing repair ("laptop won't power on", "screen cracked", "keyboard sticking", "battery swelling").

Instructions

  1. #Lookup Users on the requester.

  2. #List Devices (Kandji) filtered by assignedUserEmail.

  3. #Trigger Form to collect:

    • Which device

    • Symptom description

    • Severity (can't work at all / partial use / cosmetic)

    • Whether they need a loaner immediately

  4. #Get Device Details to confirm device, serial number, purchase date, warranty status.

  5. Determine RMA path based on vendor:

  6. Capture the RMA case number and shipping label.

  7. If user needs a loaner (severity = can't work):

  8. #Send Direct Message to the user with RMA case, shipping label, loaner tracking, send-in instructions, expected turnaround.

  9. schedule_action daily wake to:

  10. On repair completion + return:

  11. #Leave Internal Note capturing RMA case, loaner ID, dates.

  12. #Resolve Request after loaner return.

RMA & Repair

Playbooks

/

RMA & Repair

RMA & Repair

Created by

Console Team

Published

IT

Kandji

Apple Business Manager

+3

Trigger

User reports a device needing repair ("laptop won't power on", "screen cracked", "keyboard sticking", "battery swelling").

Instructions

  1. #Lookup Users on the requester.

  2. #List Devices (Kandji) filtered by assignedUserEmail.

  3. #Trigger Form to collect:

    • Which device

    • Symptom description

    • Severity (can't work at all / partial use / cosmetic)

    • Whether they need a loaner immediately

  4. #Get Device Details to confirm device, serial number, purchase date, warranty status.

  5. Determine RMA path based on vendor:

  6. Capture the RMA case number and shipping label.

  7. If user needs a loaner (severity = can't work):

  8. #Send Direct Message to the user with RMA case, shipping label, loaner tracking, send-in instructions, expected turnaround.

  9. schedule_action daily wake to:

  10. On repair completion + return:

  11. #Leave Internal Note capturing RMA case, loaner ID, dates.

  12. #Resolve Request after loaner return.

Role & Manager Changes

Playbooks

/

Role & Manager Changes

Role & Manager Changes

Created by

Console Team

Published

HR

Okta

Slack

Workday

Trigger

Internal transfer, promotion, reporting line change, or department change.

Instructions

  1. #Trigger Form to collect:

    • Employee being changed

    • New role / title

    • New manager

    • New department / team

    • Effective date

    • Comp change (yes/no, new amount, new band)

    • Justification

  2. #Lookup Users on the affected employee with includeManager and includeGroups.

  3. #Lookup Users on the requester (assume manager initiating) to validate authority.

  4. #Lookup Users on the new manager to confirm valid Okta record.

  5. Approval chain:

  6. On full approval, execute changes on effective date (use schedule_action if effective date is in the future):

  7. #Add Users To Channel for the new team's Slack channels; #Remove User From Channel for old team channels (with grace period of 30 days for handoff).

  8. #Send Direct Message to the employee confirming all changes.

  9. #Send Direct Message to both old and new managers explaining the transition.

  10. #Send Channel Message to #org-changes announcing the move.

  11. #Leave Internal Note capturing all changes and approval trail.

  12. #Resolve Request.

Role & Manager Changes

Playbooks

/

Role & Manager Changes

Role & Manager Changes

Created by

Console Team

Published

HR

Okta

Slack

Workday

Trigger

Internal transfer, promotion, reporting line change, or department change.

Instructions

  1. #Trigger Form to collect:

    • Employee being changed

    • New role / title

    • New manager

    • New department / team

    • Effective date

    • Comp change (yes/no, new amount, new band)

    • Justification

  2. #Lookup Users on the affected employee with includeManager and includeGroups.

  3. #Lookup Users on the requester (assume manager initiating) to validate authority.

  4. #Lookup Users on the new manager to confirm valid Okta record.

  5. Approval chain:

  6. On full approval, execute changes on effective date (use schedule_action if effective date is in the future):

  7. #Add Users To Channel for the new team's Slack channels; #Remove User From Channel for old team channels (with grace period of 30 days for handoff).

  8. #Send Direct Message to the employee confirming all changes.

  9. #Send Direct Message to both old and new managers explaining the transition.

  10. #Send Channel Message to #org-changes announcing the move.

  11. #Leave Internal Note capturing all changes and approval trail.

  12. #Resolve Request.

Role & Manager Changes

Playbooks

/

Role & Manager Changes

Role & Manager Changes

Created by

Console Team

Published

HR

Okta

Slack

Workday

Trigger

Internal transfer, promotion, reporting line change, or department change.

Instructions

  1. #Trigger Form to collect:

    • Employee being changed

    • New role / title

    • New manager

    • New department / team

    • Effective date

    • Comp change (yes/no, new amount, new band)

    • Justification

  2. #Lookup Users on the affected employee with includeManager and includeGroups.

  3. #Lookup Users on the requester (assume manager initiating) to validate authority.

  4. #Lookup Users on the new manager to confirm valid Okta record.

  5. Approval chain:

  6. On full approval, execute changes on effective date (use schedule_action if effective date is in the future):

  7. #Add Users To Channel for the new team's Slack channels; #Remove User From Channel for old team channels (with grace period of 30 days for handoff).

  8. #Send Direct Message to the employee confirming all changes.

  9. #Send Direct Message to both old and new managers explaining the transition.

  10. #Send Channel Message to #org-changes announcing the move.

  11. #Leave Internal Note capturing all changes and approval trail.

  12. #Resolve Request.

Sales Policy Q&A

Playbooks

/

Sales Policy Q&A

Sales Policy Q&A

Created by

Console Team

Published

RevOps

Trigger

Requester asks a sales policy / process question ("discount threshold", "ICP definition", "MDF eligibility", "deal desk process", "deal registration rules").

Instructions

  1. #Lookup Users on the requester to determine role (AE / SDR / manager).

  2. #Search Knowledge Base with the user's question.

  3. For multi-region or role-specific policies, filter by requester's role + region.

  4. #Expand Knowledge Base Article on the top hit for deeper context.

  5. Compose the answer:

    • Direct answer first (e.g. "Discounts up to 10% require no approval, 10-20% require manager, >20% require deal desk.").

    • Relevant exceptions or special cases.

    • Quoted source paragraph.

    • Source link to the KB doc.

  6. #Send Direct Message with the formatted answer.

  7. Offer follow-up:

    • "Want me to start the deal desk request?" → if they have a discount over threshold, fire Rev-8.

    • "Want to see related policies?" → list other policy docs.

  8. If no relevant KB hit, #Prompt for Handoff to RevOps.

  9. #Leave Internal Note capturing query + resolution.

  10. #Resolve Request.

Sales Policy Q&A

Playbooks

/

Sales Policy Q&A

Sales Policy Q&A

Created by

Console Team

Published

RevOps

Trigger

Requester asks a sales policy / process question ("discount threshold", "ICP definition", "MDF eligibility", "deal desk process", "deal registration rules").

Instructions

  1. #Lookup Users on the requester to determine role (AE / SDR / manager).

  2. #Search Knowledge Base with the user's question.

  3. For multi-region or role-specific policies, filter by requester's role + region.

  4. #Expand Knowledge Base Article on the top hit for deeper context.

  5. Compose the answer:

    • Direct answer first (e.g. "Discounts up to 10% require no approval, 10-20% require manager, >20% require deal desk.").

    • Relevant exceptions or special cases.

    • Quoted source paragraph.

    • Source link to the KB doc.

  6. #Send Direct Message with the formatted answer.

  7. Offer follow-up:

    • "Want me to start the deal desk request?" → if they have a discount over threshold, fire Rev-8.

    • "Want to see related policies?" → list other policy docs.

  8. If no relevant KB hit, #Prompt for Handoff to RevOps.

  9. #Leave Internal Note capturing query + resolution.

  10. #Resolve Request.

Sales Policy Q&A

Playbooks

/

Sales Policy Q&A

Sales Policy Q&A

Created by

Console Team

Published

RevOps

Trigger

Requester asks a sales policy / process question ("discount threshold", "ICP definition", "MDF eligibility", "deal desk process", "deal registration rules").

Instructions

  1. #Lookup Users on the requester to determine role (AE / SDR / manager).

  2. #Search Knowledge Base with the user's question.

  3. For multi-region or role-specific policies, filter by requester's role + region.

  4. #Expand Knowledge Base Article on the top hit for deeper context.

  5. Compose the answer:

    • Direct answer first (e.g. "Discounts up to 10% require no approval, 10-20% require manager, >20% require deal desk.").

    • Relevant exceptions or special cases.

    • Quoted source paragraph.

    • Source link to the KB doc.

  6. #Send Direct Message with the formatted answer.

  7. Offer follow-up:

    • "Want me to start the deal desk request?" → if they have a discount over threshold, fire Rev-8.

    • "Want to see related policies?" → list other policy docs.

  8. If no relevant KB hit, #Prompt for Handoff to RevOps.

  9. #Leave Internal Note capturing query + resolution.

  10. #Resolve Request.

SDR → AE Handoff

Playbooks

/

SDR → AE Handoff

SDR → AE Handoff

Created by

Console Team

Published

RevOps

Google Calendar

HubSpot

Outreach

+1

Trigger

Webhook — meeting held + marked qualified (in CRM or via SDR action) Variables: $meeting.id, $meeting.dealId, $meeting.sdrId, $meeting.outcome

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for the deal.

  2. #Lookup Users on the SDR and the proposed AE (from territory rules or specified in handoff).

  3. #Trigger Form to SDR to capture handoff notes:

    • BANT (Budget, Authority, Need, Timeline) — each field.

    • Key talking points from the meeting.

    • Specific next steps agreed.

    • Anything to be aware of.

    • Recommended AE (auto-suggest from territory).

  4. Package the full context:

  5. Validate AE assignment:

  6. Transfer the deal:

  7. Notify the AE:

    • #Send Direct Message with: deal link, BANT summary, meeting recording, full contact context, prior emails, suggested next steps, calendar slot link for the next meeting.

  8. Schedule the AE's first touch:

  9. SDR confirmation:

  10. SLA enforcement:

    • schedule_action wake at 24h to confirm AE has touched the deal.

    • On wake: if no activity, #Send Direct Message to AE + manager.

  11. #Send Channel Message to #sdr-ae-handoffs logging the handoff.

  12. #Leave Internal Note with full handoff trail.

SDR → AE Handoff

Playbooks

/

SDR → AE Handoff

SDR → AE Handoff

Created by

Console Team

Published

RevOps

Google Calendar

HubSpot

Outreach

+1

Trigger

Webhook — meeting held + marked qualified (in CRM or via SDR action) Variables: $meeting.id, $meeting.dealId, $meeting.sdrId, $meeting.outcome

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for the deal.

  2. #Lookup Users on the SDR and the proposed AE (from territory rules or specified in handoff).

  3. #Trigger Form to SDR to capture handoff notes:

    • BANT (Budget, Authority, Need, Timeline) — each field.

    • Key talking points from the meeting.

    • Specific next steps agreed.

    • Anything to be aware of.

    • Recommended AE (auto-suggest from territory).

  4. Package the full context:

  5. Validate AE assignment:

  6. Transfer the deal:

  7. Notify the AE:

    • #Send Direct Message with: deal link, BANT summary, meeting recording, full contact context, prior emails, suggested next steps, calendar slot link for the next meeting.

  8. Schedule the AE's first touch:

  9. SDR confirmation:

  10. SLA enforcement:

    • schedule_action wake at 24h to confirm AE has touched the deal.

    • On wake: if no activity, #Send Direct Message to AE + manager.

  11. #Send Channel Message to #sdr-ae-handoffs logging the handoff.

  12. #Leave Internal Note with full handoff trail.

SDR → AE Handoff

Playbooks

/

SDR → AE Handoff

SDR → AE Handoff

Created by

Console Team

Published

RevOps

Google Calendar

HubSpot

Outreach

+1

Trigger

Webhook — meeting held + marked qualified (in CRM or via SDR action) Variables: $meeting.id, $meeting.dealId, $meeting.sdrId, $meeting.outcome

Instructions

  1. #Get HubSpot Deal Details with Activity Timeline for the deal.

  2. #Lookup Users on the SDR and the proposed AE (from territory rules or specified in handoff).

  3. #Trigger Form to SDR to capture handoff notes:

    • BANT (Budget, Authority, Need, Timeline) — each field.

    • Key talking points from the meeting.

    • Specific next steps agreed.

    • Anything to be aware of.

    • Recommended AE (auto-suggest from territory).

  4. Package the full context:

  5. Validate AE assignment:

  6. Transfer the deal:

  7. Notify the AE:

    • #Send Direct Message with: deal link, BANT summary, meeting recording, full contact context, prior emails, suggested next steps, calendar slot link for the next meeting.

  8. Schedule the AE's first touch:

  9. SDR confirmation:

  10. SLA enforcement:

    • schedule_action wake at 24h to confirm AE has touched the deal.

    • On wake: if no activity, #Send Direct Message to AE + manager.

  11. #Send Channel Message to #sdr-ae-handoffs logging the handoff.

  12. #Leave Internal Note with full handoff trail.

Secret & API Key Rotation

Playbooks

/

Secret & API Key Rotation

Secret & API Key Rotation

Created by

Console Team

Published

Security

Slack

1Password

AWS

+2

Trigger

Scheduled — every day at 6:00 AM America/Chicago

Instructions

  1. Pull secrets inventory:

  2. For each secret, compute age and expiry:

    • Use lastRotated field if available, else createdAt.

    • Apply policy: 90-day rotation for prod, 180-day for non-prod, 365-day for read-only API keys.

  3. Categorize by urgency:

    • Expired (past rotation date) → P0.

    • 30 days from rotation → P1, send first reminder.

    • 14 days from rotation → P2, second reminder.

    • 7 days from rotation → P3, final reminder.

  4. For each secret, #custom Get Secret Owner via:

    • Item tags / metadata.

    • Vault path → service mapping.

    • GitHub repo → CODEOWNERS.

  5. For each owner, group their pending rotations.

  6. #Send Direct Message with the list, urgency, and:

    • For rotatable-by-Console: offer "Rotate now" button via #Trigger Form.

    • For manual: link to runbook + provider rotation steps.

  7. On "Rotate now":

    • Fire custom API Token Rotation action for that specific secret type (e.g. rotate AWS access key, regenerate Slack bot token).

    • Update the secret in the vault.

    • #Send Direct Message confirming, with the new secret stored in the original vault location.

  8. schedule_action wakes at the expiry date to verify rotation occurred.

  9. On wake, if not rotated:

  10. #Custom Vanta Log Secret Rotation for compliance.

  11. Weekly: #Send Channel Message to #security with rotation stats.

  12. #Leave Internal Note capturing rotation activity.

Secret & API Key Rotation

Playbooks

/

Secret & API Key Rotation

Secret & API Key Rotation

Created by

Console Team

Published

Security

Slack

1Password

AWS

+2

Trigger

Scheduled — every day at 6:00 AM America/Chicago

Instructions

  1. Pull secrets inventory:

  2. For each secret, compute age and expiry:

    • Use lastRotated field if available, else createdAt.

    • Apply policy: 90-day rotation for prod, 180-day for non-prod, 365-day for read-only API keys.

  3. Categorize by urgency:

    • Expired (past rotation date) → P0.

    • 30 days from rotation → P1, send first reminder.

    • 14 days from rotation → P2, second reminder.

    • 7 days from rotation → P3, final reminder.

  4. For each secret, #custom Get Secret Owner via:

    • Item tags / metadata.

    • Vault path → service mapping.

    • GitHub repo → CODEOWNERS.

  5. For each owner, group their pending rotations.

  6. #Send Direct Message with the list, urgency, and:

    • For rotatable-by-Console: offer "Rotate now" button via #Trigger Form.

    • For manual: link to runbook + provider rotation steps.

  7. On "Rotate now":

    • Fire custom API Token Rotation action for that specific secret type (e.g. rotate AWS access key, regenerate Slack bot token).

    • Update the secret in the vault.

    • #Send Direct Message confirming, with the new secret stored in the original vault location.

  8. schedule_action wakes at the expiry date to verify rotation occurred.

  9. On wake, if not rotated:

  10. #Custom Vanta Log Secret Rotation for compliance.

  11. Weekly: #Send Channel Message to #security with rotation stats.

  12. #Leave Internal Note capturing rotation activity.

Secret & API Key Rotation

Playbooks

/

Secret & API Key Rotation

Secret & API Key Rotation

Created by

Console Team

Published

Security

Slack

1Password

AWS

+2

Trigger

Scheduled — every day at 6:00 AM America/Chicago

Instructions

  1. Pull secrets inventory:

  2. For each secret, compute age and expiry:

    • Use lastRotated field if available, else createdAt.

    • Apply policy: 90-day rotation for prod, 180-day for non-prod, 365-day for read-only API keys.

  3. Categorize by urgency:

    • Expired (past rotation date) → P0.

    • 30 days from rotation → P1, send first reminder.

    • 14 days from rotation → P2, second reminder.

    • 7 days from rotation → P3, final reminder.

  4. For each secret, #custom Get Secret Owner via:

    • Item tags / metadata.

    • Vault path → service mapping.

    • GitHub repo → CODEOWNERS.

  5. For each owner, group their pending rotations.

  6. #Send Direct Message with the list, urgency, and:

    • For rotatable-by-Console: offer "Rotate now" button via #Trigger Form.

    • For manual: link to runbook + provider rotation steps.

  7. On "Rotate now":

    • Fire custom API Token Rotation action for that specific secret type (e.g. rotate AWS access key, regenerate Slack bot token).

    • Update the secret in the vault.

    • #Send Direct Message confirming, with the new secret stored in the original vault location.

  8. schedule_action wakes at the expiry date to verify rotation occurred.

  9. On wake, if not rotated:

  10. #Custom Vanta Log Secret Rotation for compliance.

  11. Weekly: #Send Channel Message to #security with rotation stats.

  12. #Leave Internal Note capturing rotation activity.

Security Alert Triage & Context

Playbooks

/

Security Alert Triage & Context

Security Alert Triage & Context

Created by

Console Team

Published

Security

Okta

Kandji

CrowdStrike

+4

Trigger

Integration Webhook — CrowdStrike alert (also SentinelOne, SIEM if connected) Variables: $alert.id, $alert.severity, $alert.deviceId, $alert.userEmail, $alert.detectionTime, $alert.indicators

Instructions

  1. Filter by severity:

    • Low → just log to #soc-low-priority and exit.

    • Medium / High / Critical → continue enrichment.

  2. Device context:

  3. User context:

  4. Activity context:

  5. Indicator enrichment:

  6. Assemble the enriched alert payload:

    • User: name, title, department, manager, recent logins, recent activity.

    • Device: hostname, OS, compliance state, owner, other recent alerts.

    • Indicators: verdicts from threat intel.

    • Suggested action based on rules (e.g. "User on PIP + suspicious file = high concern").

  7. #Send Channel Message to #soc-triage with the enriched alert as a structured message + thread for analyst notes.

  8. Severity-based routing:

    • Critical → custom PagerDuty Page the on-call security engineer.

    • High → #Send Direct Message to security on-call.

    • Medium → leave in #soc-triage for next-shift triage.

  9. If indicators have high-confidence malicious verdicts → fire Sec-5: Incident Response Orchestration for auto-containment.

  10. #Leave Internal Note in the alert's tracking issue capturing enrichment data.

Security Alert Triage & Context

Playbooks

/

Security Alert Triage & Context

Security Alert Triage & Context

Created by

Console Team

Published

Security

Okta

Kandji

CrowdStrike

+4

Trigger

Integration Webhook — CrowdStrike alert (also SentinelOne, SIEM if connected) Variables: $alert.id, $alert.severity, $alert.deviceId, $alert.userEmail, $alert.detectionTime, $alert.indicators

Instructions

  1. Filter by severity:

    • Low → just log to #soc-low-priority and exit.

    • Medium / High / Critical → continue enrichment.

  2. Device context:

  3. User context:

  4. Activity context:

  5. Indicator enrichment:

  6. Assemble the enriched alert payload:

    • User: name, title, department, manager, recent logins, recent activity.

    • Device: hostname, OS, compliance state, owner, other recent alerts.

    • Indicators: verdicts from threat intel.

    • Suggested action based on rules (e.g. "User on PIP + suspicious file = high concern").

  7. #Send Channel Message to #soc-triage with the enriched alert as a structured message + thread for analyst notes.

  8. Severity-based routing:

    • Critical → custom PagerDuty Page the on-call security engineer.

    • High → #Send Direct Message to security on-call.

    • Medium → leave in #soc-triage for next-shift triage.

  9. If indicators have high-confidence malicious verdicts → fire Sec-5: Incident Response Orchestration for auto-containment.

  10. #Leave Internal Note in the alert's tracking issue capturing enrichment data.

Security Alert Triage & Context

Playbooks

/

Security Alert Triage & Context

Security Alert Triage & Context

Created by

Console Team

Published

Security

Okta

Kandji

CrowdStrike

+4

Trigger

Integration Webhook — CrowdStrike alert (also SentinelOne, SIEM if connected) Variables: $alert.id, $alert.severity, $alert.deviceId, $alert.userEmail, $alert.detectionTime, $alert.indicators

Instructions

  1. Filter by severity:

    • Low → just log to #soc-low-priority and exit.

    • Medium / High / Critical → continue enrichment.

  2. Device context:

  3. User context:

  4. Activity context:

  5. Indicator enrichment:

  6. Assemble the enriched alert payload:

    • User: name, title, department, manager, recent logins, recent activity.

    • Device: hostname, OS, compliance state, owner, other recent alerts.

    • Indicators: verdicts from threat intel.

    • Suggested action based on rules (e.g. "User on PIP + suspicious file = high concern").

  7. #Send Channel Message to #soc-triage with the enriched alert as a structured message + thread for analyst notes.

  8. Severity-based routing:

    • Critical → custom PagerDuty Page the on-call security engineer.

    • High → #Send Direct Message to security on-call.

    • Medium → leave in #soc-triage for next-shift triage.

  9. If indicators have high-confidence malicious verdicts → fire Sec-5: Incident Response Orchestration for auto-containment.

  10. #Leave Internal Note in the alert's tracking issue capturing enrichment data.

Security Exception Handling

Playbooks

/

Security Exception Handling

Security Exception Handling

Created by

Console Team

Published

Security

Vanta

Trigger

Requester asks to bypass a security policy ("I need root SSH on a prod box", "exception to MFA on this kiosk", "allow this admin to keep their password instead of FIDO2").

Instructions

  1. #Trigger Form to collect:

    • Policy being bypassed (dropdown of named policies)

    • Justification (free text, min 100 chars)

    • Duration requested (max 30 days, max 90 days, max 1 year)

    • Compensating controls being put in place

    • Risk acknowledgment (checkbox)

    • Business owner sign-off (email)

  2. #Lookup Users on the requester.

  3. Pull policy context:

  4. Assess compensating controls:

  5. Route for approval:

    • #Request Approval from security lead.

    • For business-critical policies (MFA, encryption, sensitive-data access): #Request Approval from CISO or delegate.

    • #Request Approval from the business owner named in the form.

  6. On approval:

  7. #Send Direct Message to the requester with: exception scope, expiry, compensating controls, what they must NOT do.

  8. #Send Channel Message to #security-exceptions with the granted exception.

  9. schedule_action wakes at 30/60/90% of duration for reminder:

    • "Your exception {{name}} expires in {{X}} days. Need to renew or let it expire?"

  10. At expiry:

  11. If renewal requested before expiry, loop back to step 5 (skip form if same parameters).

  12. #Leave Internal Note capturing exception scope, controls, expiry.

  13. #Resolve Request.

Security Exception Handling

Playbooks

/

Security Exception Handling

Security Exception Handling

Created by

Console Team

Published

Security

Vanta

Trigger

Requester asks to bypass a security policy ("I need root SSH on a prod box", "exception to MFA on this kiosk", "allow this admin to keep their password instead of FIDO2").

Instructions

  1. #Trigger Form to collect:

    • Policy being bypassed (dropdown of named policies)

    • Justification (free text, min 100 chars)

    • Duration requested (max 30 days, max 90 days, max 1 year)

    • Compensating controls being put in place

    • Risk acknowledgment (checkbox)

    • Business owner sign-off (email)

  2. #Lookup Users on the requester.

  3. Pull policy context:

  4. Assess compensating controls:

  5. Route for approval:

    • #Request Approval from security lead.

    • For business-critical policies (MFA, encryption, sensitive-data access): #Request Approval from CISO or delegate.

    • #Request Approval from the business owner named in the form.

  6. On approval:

  7. #Send Direct Message to the requester with: exception scope, expiry, compensating controls, what they must NOT do.

  8. #Send Channel Message to #security-exceptions with the granted exception.

  9. schedule_action wakes at 30/60/90% of duration for reminder:

    • "Your exception {{name}} expires in {{X}} days. Need to renew or let it expire?"

  10. At expiry:

  11. If renewal requested before expiry, loop back to step 5 (skip form if same parameters).

  12. #Leave Internal Note capturing exception scope, controls, expiry.

  13. #Resolve Request.

Security Exception Handling

Playbooks

/

Security Exception Handling

Security Exception Handling

Created by

Console Team

Published

Security

Vanta

Trigger

Requester asks to bypass a security policy ("I need root SSH on a prod box", "exception to MFA on this kiosk", "allow this admin to keep their password instead of FIDO2").

Instructions

  1. #Trigger Form to collect:

    • Policy being bypassed (dropdown of named policies)

    • Justification (free text, min 100 chars)

    • Duration requested (max 30 days, max 90 days, max 1 year)

    • Compensating controls being put in place

    • Risk acknowledgment (checkbox)

    • Business owner sign-off (email)

  2. #Lookup Users on the requester.

  3. Pull policy context:

  4. Assess compensating controls:

  5. Route for approval:

    • #Request Approval from security lead.

    • For business-critical policies (MFA, encryption, sensitive-data access): #Request Approval from CISO or delegate.

    • #Request Approval from the business owner named in the form.

  6. On approval:

  7. #Send Direct Message to the requester with: exception scope, expiry, compensating controls, what they must NOT do.

  8. #Send Channel Message to #security-exceptions with the granted exception.

  9. schedule_action wakes at 30/60/90% of duration for reminder:

    • "Your exception {{name}} expires in {{X}} days. Need to renew or let it expire?"

  10. At expiry:

  11. If renewal requested before expiry, loop back to step 5 (skip form if same parameters).

  12. #Leave Internal Note capturing exception scope, controls, expiry.

  13. #Resolve Request.

Slack Channel & Group Management

Playbooks

/

Slack Channel & Group Management

Slack Channel & Group Management

Created by

Console Team

Published

IT

Okta

Slack

Trigger

Requester asks to create, archive, modify visibility, or manage membership of a Slack channel or usergroup.

Instructions

  1. Pull all data sources in parallel:

    1. #List Devices (Kandji) for enrolled devices.

    2. #Custom Intune List Devices for Windows enrolled devices.

    3. #Custom Jira Assets Query for the asset register.

    4. #Search Graph for the HR roster from the HR ingest.

  2. Build a unified view by serial number and assigned user.

  3. Compute mismatches:

    • Lost-not-recovered: marked lost in any system but still active elsewhere.

    • Retired-but-active: marked retired in asset register but checking in to Kandji/Intune.

    • Employee-without-device: active employee in HR but no device assigned.

    • Device-without-owner: active device but unassigned or owner is offboarded.

    • Owner-mismatch: different owner in Kandji vs Jira Assets.

  4. For each mismatch:

    • Determine the asset owner (IT team member responsible).

    • #Send Direct Message to the asset owner with the mismatch, proposed fix, and a #Trigger Form to approve / modify / dismiss.

  5. schedule_action wake at 7 days for each mismatch to check resolution.

  6. On wake: if mismatch still exists, #Create Linear Issue for IT to resolve.

  7. After full daily reconciliation:

  8. Quarterly run also produces a Linear summary issue with trend data via #Run Query.

Slack Channel & Group Management

Playbooks

/

Slack Channel & Group Management

Slack Channel & Group Management

Created by

Console Team

Published

IT

Okta

Slack

Trigger

Requester asks to create, archive, modify visibility, or manage membership of a Slack channel or usergroup.

Instructions

  1. Pull all data sources in parallel:

    1. #List Devices (Kandji) for enrolled devices.

    2. #Custom Intune List Devices for Windows enrolled devices.

    3. #Custom Jira Assets Query for the asset register.

    4. #Search Graph for the HR roster from the HR ingest.

  2. Build a unified view by serial number and assigned user.

  3. Compute mismatches:

    • Lost-not-recovered: marked lost in any system but still active elsewhere.

    • Retired-but-active: marked retired in asset register but checking in to Kandji/Intune.

    • Employee-without-device: active employee in HR but no device assigned.

    • Device-without-owner: active device but unassigned or owner is offboarded.

    • Owner-mismatch: different owner in Kandji vs Jira Assets.

  4. For each mismatch:

    • Determine the asset owner (IT team member responsible).

    • #Send Direct Message to the asset owner with the mismatch, proposed fix, and a #Trigger Form to approve / modify / dismiss.

  5. schedule_action wake at 7 days for each mismatch to check resolution.

  6. On wake: if mismatch still exists, #Create Linear Issue for IT to resolve.

  7. After full daily reconciliation:

  8. Quarterly run also produces a Linear summary issue with trend data via #Run Query.

Slack Channel & Group Management

Playbooks

/

Slack Channel & Group Management

Slack Channel & Group Management

Created by

Console Team

Published

IT

Okta

Slack

Trigger

Requester asks to create, archive, modify visibility, or manage membership of a Slack channel or usergroup.

Instructions

  1. Pull all data sources in parallel:

    1. #List Devices (Kandji) for enrolled devices.

    2. #Custom Intune List Devices for Windows enrolled devices.

    3. #Custom Jira Assets Query for the asset register.

    4. #Search Graph for the HR roster from the HR ingest.

  2. Build a unified view by serial number and assigned user.

  3. Compute mismatches:

    • Lost-not-recovered: marked lost in any system but still active elsewhere.

    • Retired-but-active: marked retired in asset register but checking in to Kandji/Intune.

    • Employee-without-device: active employee in HR but no device assigned.

    • Device-without-owner: active device but unassigned or owner is offboarded.

    • Owner-mismatch: different owner in Kandji vs Jira Assets.

  4. For each mismatch:

    • Determine the asset owner (IT team member responsible).

    • #Send Direct Message to the asset owner with the mismatch, proposed fix, and a #Trigger Form to approve / modify / dismiss.

  5. schedule_action wake at 7 days for each mismatch to check resolution.

  6. On wake: if mismatch still exists, #Create Linear Issue for IT to resolve.

  7. After full daily reconciliation:

  8. Quarterly run also produces a Linear summary issue with trend data via #Run Query.

SOC2 / Vanta Evidence Collection

Playbooks

/

SOC2 / Vanta Evidence Collection

SOC2 / Vanta Evidence Collection

Created by

Console Team

Published

Security

AWS

GitHub

Vanta

+2

Trigger

Scheduled — every 1st of the month at 7:00 AM America/Chicago

Instructions

  1. Identify required evidence:

    • #Custom Vanta List Required Evidence for the current audit window.

    • Categorize: access reviews, training completion, vuln scans, incident logs, change management, vendor reviews, backups.

  2. Pull each evidence category in parallel:

  3. For each evidence package:

    • Validate completeness (e.g. all in-scope users reviewed in UAR, all critical incidents have post-mortems).

    • Identify gaps.

  4. Upload evidence:

  5. For gaps:

  6. schedule_action wakes weekly until gaps closed.

  7. Generate compliance health report:

  8. Annual audit prep:

    • 60 days before audit: ramp evidence checks to weekly.

    • 30 days before audit: daily; custom Pre-Audit Walkthrough Schedule.

  9. #Leave Internal Note per evidence upload

SOC2 / Vanta Evidence Collection

Playbooks

/

SOC2 / Vanta Evidence Collection

SOC2 / Vanta Evidence Collection

Created by

Console Team

Published

Security

AWS

GitHub

Vanta

+2

Trigger

Scheduled — every 1st of the month at 7:00 AM America/Chicago

Instructions

  1. Identify required evidence:

    • #Custom Vanta List Required Evidence for the current audit window.

    • Categorize: access reviews, training completion, vuln scans, incident logs, change management, vendor reviews, backups.

  2. Pull each evidence category in parallel:

  3. For each evidence package:

    • Validate completeness (e.g. all in-scope users reviewed in UAR, all critical incidents have post-mortems).

    • Identify gaps.

  4. Upload evidence:

  5. For gaps:

  6. schedule_action wakes weekly until gaps closed.

  7. Generate compliance health report:

  8. Annual audit prep:

    • 60 days before audit: ramp evidence checks to weekly.

    • 30 days before audit: daily; custom Pre-Audit Walkthrough Schedule.

  9. #Leave Internal Note per evidence upload

SOC2 / Vanta Evidence Collection

Playbooks

/

SOC2 / Vanta Evidence Collection

SOC2 / Vanta Evidence Collection

Created by

Console Team

Published

Security

AWS

GitHub

Vanta

+2

Trigger

Scheduled — every 1st of the month at 7:00 AM America/Chicago

Instructions

  1. Identify required evidence:

    • #Custom Vanta List Required Evidence for the current audit window.

    • Categorize: access reviews, training completion, vuln scans, incident logs, change management, vendor reviews, backups.

  2. Pull each evidence category in parallel:

  3. For each evidence package:

    • Validate completeness (e.g. all in-scope users reviewed in UAR, all critical incidents have post-mortems).

    • Identify gaps.

  4. Upload evidence:

  5. For gaps:

  6. schedule_action wakes weekly until gaps closed.

  7. Generate compliance health report:

  8. Annual audit prep:

    • 60 days before audit: ramp evidence checks to weekly.

    • 30 days before audit: daily; custom Pre-Audit Walkthrough Schedule.

  9. #Leave Internal Note per evidence upload

Spend Monitoring Detection

Playbooks

/

Spend Monitoring Detection

Spend Monitoring Detection

Created by

Console Team

Published

Finance

Ramp

NetSuite

Trigger

Detection — scheduled scan every day at 6:00 AM America/Chicago

Instructions

  1. Pull spend:

  2. Compute baselines per employee / cost center / vendor / category.

  3. Detect anomalies:

    • Spike: today >3x trailing AND >$500.

    • New vendor: first transaction AND >$10k.

    • Unusual category: cost center with no history AND >$1k.

    • Late-night: card swipes midnight-5am local.

    • High-velocity: >10 transactions on same card in 1h.

    • Round-number suspicious: round numbers >$5k.

  4. For each flagged transaction:

  5. Routing:

    • High confidence (multiple signals): #Send Channel Message to #finance-anomaly + DM to cost-center owner + cardholder + finance lead.

    • Medium: DM cost-center owner with #Trigger Form for clarification.

    • Low: log for weekly batch.

  6. Potential fraud (late-night + high-velocity + round + new vendor):

  7. schedule_action wake at 24h for responses.

  8. Weekly summary to #finance with counts + resolution rate.

  9. #Leave Internal Note per anomaly.

Spend Monitoring Detection

Playbooks

/

Spend Monitoring Detection

Spend Monitoring Detection

Created by

Console Team

Published

Finance

Ramp

NetSuite

Trigger

Detection — scheduled scan every day at 6:00 AM America/Chicago

Instructions

  1. Pull spend:

  2. Compute baselines per employee / cost center / vendor / category.

  3. Detect anomalies:

    • Spike: today >3x trailing AND >$500.

    • New vendor: first transaction AND >$10k.

    • Unusual category: cost center with no history AND >$1k.

    • Late-night: card swipes midnight-5am local.

    • High-velocity: >10 transactions on same card in 1h.

    • Round-number suspicious: round numbers >$5k.

  4. For each flagged transaction:

  5. Routing:

    • High confidence (multiple signals): #Send Channel Message to #finance-anomaly + DM to cost-center owner + cardholder + finance lead.

    • Medium: DM cost-center owner with #Trigger Form for clarification.

    • Low: log for weekly batch.

  6. Potential fraud (late-night + high-velocity + round + new vendor):

  7. schedule_action wake at 24h for responses.

  8. Weekly summary to #finance with counts + resolution rate.

  9. #Leave Internal Note per anomaly.

Spend Monitoring Detection

Playbooks

/

Spend Monitoring Detection

Spend Monitoring Detection

Created by

Console Team

Published

Finance

Ramp

NetSuite

Trigger

Detection — scheduled scan every day at 6:00 AM America/Chicago

Instructions

  1. Pull spend:

  2. Compute baselines per employee / cost center / vendor / category.

  3. Detect anomalies:

    • Spike: today >3x trailing AND >$500.

    • New vendor: first transaction AND >$10k.

    • Unusual category: cost center with no history AND >$1k.

    • Late-night: card swipes midnight-5am local.

    • High-velocity: >10 transactions on same card in 1h.

    • Round-number suspicious: round numbers >$5k.

  4. For each flagged transaction:

  5. Routing:

    • High confidence (multiple signals): #Send Channel Message to #finance-anomaly + DM to cost-center owner + cardholder + finance lead.

    • Medium: DM cost-center owner with #Trigger Form for clarification.

    • Low: log for weekly batch.

  6. Potential fraud (late-night + high-velocity + round + new vendor):

  7. schedule_action wake at 24h for responses.

  8. Weekly summary to #finance with counts + resolution rate.

  9. #Leave Internal Note per anomaly.

Stale Opp Cleanup

Playbooks

/

Stale Opp Cleanup

Stale Opp Cleanup

Created by

Console Team

Published

RevOps

HubSpot

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Search HubSpot Deals by Stage Entry Date for deals untouched 30+ days in active stages (Proposal, Negotiation, Verbal Commit, etc.).

  2. For each stale deal:

    1. #Get HubSpot Deal Details with Activity Timeline to confirm staleness.

    2. #Custom Get Last Activity to find the most recent touchpoint.

    3. #Lookup Users on the deal owner.

  3. Skip exclusions:

    • Deals on hold with a holdUntilDate in future.

    • Deals tagged executive-deal (handled by leadership).

    • Deals with active legal/security review (Rev-9 or Sec-18 in motion).

  4. For each remaining stale deal:

    • #Send Direct Message to owner: "Deal {{name}} ({{amount}}) hasn't had activity in {{days}} days. What's the status?"

    • Include a #Trigger Form: "Still active — here's why" / "Moving to closed-lost" / "Push close date to {{date}}" / "Move stage to {{stage}}".

  5. schedule_action wake at 5 days for response.

  6. On response:

  7. On no response within 5 days:

    • #Send Direct Message to owner + manager with escalation.

    • schedule_action wake at 5 more days.

    • On second wake: custom HubSpot Update Stage to "Stale - Needs Review" (a special stage); #Send Channel Message to #revops-cleanup.

  8. Weekly summary:

  9. #Leave Internal Note per deal action.

Stale Opp Cleanup

Playbooks

/

Stale Opp Cleanup

Stale Opp Cleanup

Created by

Console Team

Published

RevOps

HubSpot

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Search HubSpot Deals by Stage Entry Date for deals untouched 30+ days in active stages (Proposal, Negotiation, Verbal Commit, etc.).

  2. For each stale deal:

    1. #Get HubSpot Deal Details with Activity Timeline to confirm staleness.

    2. #Custom Get Last Activity to find the most recent touchpoint.

    3. #Lookup Users on the deal owner.

  3. Skip exclusions:

    • Deals on hold with a holdUntilDate in future.

    • Deals tagged executive-deal (handled by leadership).

    • Deals with active legal/security review (Rev-9 or Sec-18 in motion).

  4. For each remaining stale deal:

    • #Send Direct Message to owner: "Deal {{name}} ({{amount}}) hasn't had activity in {{days}} days. What's the status?"

    • Include a #Trigger Form: "Still active — here's why" / "Moving to closed-lost" / "Push close date to {{date}}" / "Move stage to {{stage}}".

  5. schedule_action wake at 5 days for response.

  6. On response:

  7. On no response within 5 days:

    • #Send Direct Message to owner + manager with escalation.

    • schedule_action wake at 5 more days.

    • On second wake: custom HubSpot Update Stage to "Stale - Needs Review" (a special stage); #Send Channel Message to #revops-cleanup.

  8. Weekly summary:

  9. #Leave Internal Note per deal action.

Stale Opp Cleanup

Playbooks

/

Stale Opp Cleanup

Stale Opp Cleanup

Created by

Console Team

Published

RevOps

HubSpot

Trigger

Scheduled — every day at 8:00 AM America/Chicago

Instructions

  1. #Search HubSpot Deals by Stage Entry Date for deals untouched 30+ days in active stages (Proposal, Negotiation, Verbal Commit, etc.).

  2. For each stale deal:

    1. #Get HubSpot Deal Details with Activity Timeline to confirm staleness.

    2. #Custom Get Last Activity to find the most recent touchpoint.

    3. #Lookup Users on the deal owner.

  3. Skip exclusions:

    • Deals on hold with a holdUntilDate in future.

    • Deals tagged executive-deal (handled by leadership).

    • Deals with active legal/security review (Rev-9 or Sec-18 in motion).

  4. For each remaining stale deal:

    • #Send Direct Message to owner: "Deal {{name}} ({{amount}}) hasn't had activity in {{days}} days. What's the status?"

    • Include a #Trigger Form: "Still active — here's why" / "Moving to closed-lost" / "Push close date to {{date}}" / "Move stage to {{stage}}".

  5. schedule_action wake at 5 days for response.

  6. On response:

  7. On no response within 5 days:

    • #Send Direct Message to owner + manager with escalation.

    • schedule_action wake at 5 more days.

    • On second wake: custom HubSpot Update Stage to "Stale - Needs Review" (a special stage); #Send Channel Message to #revops-cleanup.

  8. Weekly summary:

  9. #Leave Internal Note per deal action.

T&E Policy Q&A

Playbooks

/

T&E Policy Q&A

T&E Policy Q&A

Created by

Console Team

Published

Finance

Trigger

Requester asks a T&E policy question.

Instructions

  1. #Lookup Users with location and department.

  2. #Search Knowledge Base for T&E policy.

  3. Apply requester context: per diem by city/country, department limits, tenure-based allowances.

  4. #Expand Knowledge Base Article on top hit.

  5. Compose answer: direct answer + quoted clause + source link + "borderline — want pre-approval?" offer.

  6. #Send Direct Message with answer.

  7. Offer follow-up: pre-approval → fire Fin-15 or custom pre-approval; submit expense → fire Fin-2.

  8. No policy match → #Prompt for Handoff to finance.

  9. #Leave Internal Note.

  10. #Resolve Request.

T&E Policy Q&A

Playbooks

/

T&E Policy Q&A

T&E Policy Q&A

Created by

Console Team

Published

Finance

Trigger

Requester asks a T&E policy question.

Instructions

  1. #Lookup Users with location and department.

  2. #Search Knowledge Base for T&E policy.

  3. Apply requester context: per diem by city/country, department limits, tenure-based allowances.

  4. #Expand Knowledge Base Article on top hit.

  5. Compose answer: direct answer + quoted clause + source link + "borderline — want pre-approval?" offer.

  6. #Send Direct Message with answer.

  7. Offer follow-up: pre-approval → fire Fin-15 or custom pre-approval; submit expense → fire Fin-2.

  8. No policy match → #Prompt for Handoff to finance.

  9. #Leave Internal Note.

  10. #Resolve Request.

T&E Policy Q&A

Playbooks

/

T&E Policy Q&A

T&E Policy Q&A

Created by

Console Team

Published

Finance

Trigger

Requester asks a T&E policy question.

Instructions

  1. #Lookup Users with location and department.

  2. #Search Knowledge Base for T&E policy.

  3. Apply requester context: per diem by city/country, department limits, tenure-based allowances.

  4. #Expand Knowledge Base Article on top hit.

  5. Compose answer: direct answer + quoted clause + source link + "borderline — want pre-approval?" offer.

  6. #Send Direct Message with answer.

  7. Offer follow-up: pre-approval → fire Fin-15 or custom pre-approval; submit expense → fire Fin-2.

  8. No policy match → #Prompt for Handoff to finance.

  9. #Leave Internal Note.

  10. #Resolve Request.

Territory & Account Reassignment

Playbooks

/

Territory & Account Reassignment

Territory & Account Reassignment

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Outreach

+1

Trigger

Rep departure, quarterly realignment, or single-account reassignment.

Instructions

  1. #Trigger Form to collect:

    1. Scope (single account / bulk transfer / rep departure / quarterly realignment).

    2. Source rep (or list).

    3. Target rep (or assignment rules).

    4. Accounts to transfer (specific list / filter / all from source).

    5. Effective date.

    6. Reason.

  2. #Lookup Users on requester, source rep, target rep.

  3. Build the transfer list:

  4. Validate the transfer:

    • For each account/deal: confirm target rep is eligible (right territory, capacity).

    • #Custom Check Rep Capacity to ensure target isn't overloaded.

    • For active opps in late stages (negotiation, contracts): require additional approval.

  5. Approval routing:

    • Single account → manager approval.

    • Bulk (>10 accounts) → manager + RevOps lead.

    • Rep departure / quarterly realignment → VP of Sales.

  6. #Request Approval chained per scope.

  7. On approval:

  8. Notify affected parties:

    • #Send Direct Message to source rep with: list transferred, customer-facing handoff messaging.

    • #Send Direct Message to target rep with: list received, customer context per account, top priorities.

    • For each customer/contact with an active deal in late stages: optionally draft a customer-facing handoff email via custom Generate Handoff Email for AE to send.

  9. #Send Channel Message to #revops-changes with the realignment summary.

  10. Audit logging:

  11. #Leave Internal Note capturing the full transfer.

  12. #Resolve Request.

Territory & Account Reassignment

Playbooks

/

Territory & Account Reassignment

Territory & Account Reassignment

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Outreach

+1

Trigger

Rep departure, quarterly realignment, or single-account reassignment.

Instructions

  1. #Trigger Form to collect:

    1. Scope (single account / bulk transfer / rep departure / quarterly realignment).

    2. Source rep (or list).

    3. Target rep (or assignment rules).

    4. Accounts to transfer (specific list / filter / all from source).

    5. Effective date.

    6. Reason.

  2. #Lookup Users on requester, source rep, target rep.

  3. Build the transfer list:

  4. Validate the transfer:

    • For each account/deal: confirm target rep is eligible (right territory, capacity).

    • #Custom Check Rep Capacity to ensure target isn't overloaded.

    • For active opps in late stages (negotiation, contracts): require additional approval.

  5. Approval routing:

    • Single account → manager approval.

    • Bulk (>10 accounts) → manager + RevOps lead.

    • Rep departure / quarterly realignment → VP of Sales.

  6. #Request Approval chained per scope.

  7. On approval:

  8. Notify affected parties:

    • #Send Direct Message to source rep with: list transferred, customer-facing handoff messaging.

    • #Send Direct Message to target rep with: list received, customer context per account, top priorities.

    • For each customer/contact with an active deal in late stages: optionally draft a customer-facing handoff email via custom Generate Handoff Email for AE to send.

  9. #Send Channel Message to #revops-changes with the realignment summary.

  10. Audit logging:

  11. #Leave Internal Note capturing the full transfer.

  12. #Resolve Request.

Territory & Account Reassignment

Playbooks

/

Territory & Account Reassignment

Territory & Account Reassignment

Created by

Console Team

Published

RevOps

HubSpot

Salesforce

Outreach

+1

Trigger

Rep departure, quarterly realignment, or single-account reassignment.

Instructions

  1. #Trigger Form to collect:

    1. Scope (single account / bulk transfer / rep departure / quarterly realignment).

    2. Source rep (or list).

    3. Target rep (or assignment rules).

    4. Accounts to transfer (specific list / filter / all from source).

    5. Effective date.

    6. Reason.

  2. #Lookup Users on requester, source rep, target rep.

  3. Build the transfer list:

  4. Validate the transfer:

    • For each account/deal: confirm target rep is eligible (right territory, capacity).

    • #Custom Check Rep Capacity to ensure target isn't overloaded.

    • For active opps in late stages (negotiation, contracts): require additional approval.

  5. Approval routing:

    • Single account → manager approval.

    • Bulk (>10 accounts) → manager + RevOps lead.

    • Rep departure / quarterly realignment → VP of Sales.

  6. #Request Approval chained per scope.

  7. On approval:

  8. Notify affected parties:

    • #Send Direct Message to source rep with: list transferred, customer-facing handoff messaging.

    • #Send Direct Message to target rep with: list received, customer context per account, top priorities.

    • For each customer/contact with an active deal in late stages: optionally draft a customer-facing handoff email via custom Generate Handoff Email for AE to send.

  9. #Send Channel Message to #revops-changes with the realignment summary.

  10. Audit logging:

  11. #Leave Internal Note capturing the full transfer.

  12. #Resolve Request.

Time Off & Leave Requests

Playbooks

/

Time Off & Leave Requests

Time Off & Leave Requests

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+2

Trigger

Requester asks for PTO, sick day, bereavement, jury duty, or other leave.

Instructions

  1. Parse start date, end date, leave type (PTO / sick / bereavement / jury / personal), and reason if provided.

  2. #Lookup Users on the requester with includeManager.

  3. #Custom Workday Get PTO Balance (or HiBob/UKG equivalent) for the requester, broken down by leave bucket.

  4. Validate the request:

  5. Branch on leave type:

    • PTO / personal → #Request Approval from manager.

    • Sick (≤3 days) → auto-approve, no approval needed.

    • Sick (>3 days) → auto-approve but custom Workday Trigger STD Eligibility Check.

    • Bereavement → auto-approve up to policy limit (e.g. 5 days); over that, manager approval.

    • Jury duty → auto-approve with proof-of-summons upload via #Trigger Form.

  6. On approval:

  7. #Send Direct Message to the requester confirming with dates, remaining balance, and out-of-office status.

  8. #Send Direct Message to the manager confirming the approved leave so they can plan coverage.

  9. If leave is >5 consecutive days, schedule_action wake 2 days before the user returns to send a "welcome back" prep with their unread Slack threads and the team's status updates.

  10. #Leave Internal Note capturing dates, type, approval path, balance impact.

  11. #Resolve Request.

Time Off & Leave Requests

Playbooks

/

Time Off & Leave Requests

Time Off & Leave Requests

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+2

Trigger

Requester asks for PTO, sick day, bereavement, jury duty, or other leave.

Instructions

  1. Parse start date, end date, leave type (PTO / sick / bereavement / jury / personal), and reason if provided.

  2. #Lookup Users on the requester with includeManager.

  3. #Custom Workday Get PTO Balance (or HiBob/UKG equivalent) for the requester, broken down by leave bucket.

  4. Validate the request:

  5. Branch on leave type:

    • PTO / personal → #Request Approval from manager.

    • Sick (≤3 days) → auto-approve, no approval needed.

    • Sick (>3 days) → auto-approve but custom Workday Trigger STD Eligibility Check.

    • Bereavement → auto-approve up to policy limit (e.g. 5 days); over that, manager approval.

    • Jury duty → auto-approve with proof-of-summons upload via #Trigger Form.

  6. On approval:

  7. #Send Direct Message to the requester confirming with dates, remaining balance, and out-of-office status.

  8. #Send Direct Message to the manager confirming the approved leave so they can plan coverage.

  9. If leave is >5 consecutive days, schedule_action wake 2 days before the user returns to send a "welcome back" prep with their unread Slack threads and the team's status updates.

  10. #Leave Internal Note capturing dates, type, approval path, balance impact.

  11. #Resolve Request.

Time Off & Leave Requests

Playbooks

/

Time Off & Leave Requests

Time Off & Leave Requests

Created by

Console Team

Published

HR

Google Calendar

Slack

Workday

+2

Trigger

Requester asks for PTO, sick day, bereavement, jury duty, or other leave.

Instructions

  1. Parse start date, end date, leave type (PTO / sick / bereavement / jury / personal), and reason if provided.

  2. #Lookup Users on the requester with includeManager.

  3. #Custom Workday Get PTO Balance (or HiBob/UKG equivalent) for the requester, broken down by leave bucket.

  4. Validate the request:

  5. Branch on leave type:

    • PTO / personal → #Request Approval from manager.

    • Sick (≤3 days) → auto-approve, no approval needed.

    • Sick (>3 days) → auto-approve but custom Workday Trigger STD Eligibility Check.

    • Bereavement → auto-approve up to policy limit (e.g. 5 days); over that, manager approval.

    • Jury duty → auto-approve with proof-of-summons upload via #Trigger Form.

  6. On approval:

  7. #Send Direct Message to the requester confirming with dates, remaining balance, and out-of-office status.

  8. #Send Direct Message to the manager confirming the approved leave so they can plan coverage.

  9. If leave is >5 consecutive days, schedule_action wake 2 days before the user returns to send a "welcome back" prep with their unread Slack threads and the team's status updates.

  10. #Leave Internal Note capturing dates, type, approval path, balance impact.

  11. #Resolve Request.

Tool Migration & Secure Deployment

Playbooks

/

Tool Migration & Secure Deployment

Tool Migration & Secure Deployment

Created by

Console Team

Published

Security

Kandji

Ramp

Vanta

+1

Trigger

Admin/security engineer kicks off a security tooling migration or rollout (IdP migration, EDR deployment, MFA enforcement, etc.).

Instructions

  1. #Trigger Form to collect:

    • Migration / rollout name

    • Source tool (if migration)

    • Target tool / config

    • Cohort definition (canary 10 users / 10% / department / all)

    • Rollback threshold (error rate %, complaint count)

    • Success criteria (metric thresholds)

    • Timeline (canary duration, ramp schedule)

  2. Pre-deployment posture check:

    1. #Custom Run Pre-Deployment Check that:

      • Confirms target tool is configured.

      • Confirms rollback procedure is documented.

      • Confirms monitoring is in place.

      • Confirms support team is briefed.

  3. If any check fails → #Send Direct Message to admin with failures; do not proceed.

  4. Stage 1: Canary cohort:

  5. schedule_action wake at 24h for canary monitoring:

  6. Decision gate after canary:

    • If error rate < threshold AND complaints < threshold → proceed to stage 2.

    • Else → #Send Direct Message to admin with metrics; pause for review.

  7. Stage 2: Ramp to next cohort (e.g. 25% → 50% → 100%):

    • For each ramp stage, repeat steps 3-5.

    • schedule_action wakes per stage duration (typically 3-7 days).

  8. Continuous monitoring during ramp:

  9. Rollback trigger (automatic):

    • If at any wake, error rate exceeds rollback threshold → fire custom Rollback Migration for all enrolled users.

    • #Send Channel Message to #security-critical with rollback initiated.

    • #Send Direct Message to admin with metrics and rollback confirmation.

  10. Completion:

  11. #Create Linear Issue in Security-Projects for the post-migration retro.

  12. #Leave Internal Note capturing cohort progression, metrics, decisions.

Tool Migration & Secure Deployment

Playbooks

/

Tool Migration & Secure Deployment

Tool Migration & Secure Deployment

Created by

Console Team

Published

Security

Kandji

Ramp

Vanta

+1

Trigger

Admin/security engineer kicks off a security tooling migration or rollout (IdP migration, EDR deployment, MFA enforcement, etc.).

Instructions

  1. #Trigger Form to collect:

    • Migration / rollout name

    • Source tool (if migration)

    • Target tool / config

    • Cohort definition (canary 10 users / 10% / department / all)

    • Rollback threshold (error rate %, complaint count)

    • Success criteria (metric thresholds)

    • Timeline (canary duration, ramp schedule)

  2. Pre-deployment posture check:

    1. #Custom Run Pre-Deployment Check that:

      • Confirms target tool is configured.

      • Confirms rollback procedure is documented.

      • Confirms monitoring is in place.

      • Confirms support team is briefed.

  3. If any check fails → #Send Direct Message to admin with failures; do not proceed.

  4. Stage 1: Canary cohort:

  5. schedule_action wake at 24h for canary monitoring:

  6. Decision gate after canary:

    • If error rate < threshold AND complaints < threshold → proceed to stage 2.

    • Else → #Send Direct Message to admin with metrics; pause for review.

  7. Stage 2: Ramp to next cohort (e.g. 25% → 50% → 100%):

    • For each ramp stage, repeat steps 3-5.

    • schedule_action wakes per stage duration (typically 3-7 days).

  8. Continuous monitoring during ramp:

  9. Rollback trigger (automatic):

    • If at any wake, error rate exceeds rollback threshold → fire custom Rollback Migration for all enrolled users.

    • #Send Channel Message to #security-critical with rollback initiated.

    • #Send Direct Message to admin with metrics and rollback confirmation.

  10. Completion:

  11. #Create Linear Issue in Security-Projects for the post-migration retro.

  12. #Leave Internal Note capturing cohort progression, metrics, decisions.

Tool Migration & Secure Deployment

Playbooks

/

Tool Migration & Secure Deployment

Tool Migration & Secure Deployment

Created by

Console Team

Published

Security

Kandji

Ramp

Vanta

+1

Trigger

Admin/security engineer kicks off a security tooling migration or rollout (IdP migration, EDR deployment, MFA enforcement, etc.).

Instructions

  1. #Trigger Form to collect:

    • Migration / rollout name

    • Source tool (if migration)

    • Target tool / config

    • Cohort definition (canary 10 users / 10% / department / all)

    • Rollback threshold (error rate %, complaint count)

    • Success criteria (metric thresholds)

    • Timeline (canary duration, ramp schedule)

  2. Pre-deployment posture check:

    1. #Custom Run Pre-Deployment Check that:

      • Confirms target tool is configured.

      • Confirms rollback procedure is documented.

      • Confirms monitoring is in place.

      • Confirms support team is briefed.

  3. If any check fails → #Send Direct Message to admin with failures; do not proceed.

  4. Stage 1: Canary cohort:

  5. schedule_action wake at 24h for canary monitoring:

  6. Decision gate after canary:

    • If error rate < threshold AND complaints < threshold → proceed to stage 2.

    • Else → #Send Direct Message to admin with metrics; pause for review.

  7. Stage 2: Ramp to next cohort (e.g. 25% → 50% → 100%):

    • For each ramp stage, repeat steps 3-5.

    • schedule_action wakes per stage duration (typically 3-7 days).

  8. Continuous monitoring during ramp:

  9. Rollback trigger (automatic):

    • If at any wake, error rate exceeds rollback threshold → fire custom Rollback Migration for all enrolled users.

    • #Send Channel Message to #security-critical with rollback initiated.

    • #Send Direct Message to admin with metrics and rollback confirmation.

  10. Completion:

  11. #Create Linear Issue in Security-Projects for the post-migration retro.

  12. #Leave Internal Note capturing cohort progression, metrics, decisions.

User Access Reviews (UAR)

Playbooks

/

User Access Reviews (UAR)

User Access Reviews (UAR)

Created by

Console Team

Published

Security

Okta

Vanta

Linear

Trigger

Scheduled — quarterly on the 1st of Jan/Apr/Jul/Oct at 6:00 AM America/Chicago

Instructions

  1. Determine the scope:

  2. For each in-scope app:

  3. Build the review matrix:

    • Group users by their direct manager.

    • For each manager, compile their team's access across all in-scope apps.

    • For each app, identify the app owner via custom Get App Owner.

  4. Send manager attestations:

    • For each manager, #Lookup Users with includeSlackId.

    • #Send Direct Message with a summary: "You have {{N}} reports with access to {{M}} in-scope apps. Please review and attest by {{deadline}}."

    • Include a #Trigger Form per report with rows for each app/entitlement: "Keep / Modify / Revoke".

  5. Send app-owner attestations:

  6. schedule_action wakes at 7, 10, 13 days for non-completers:

  7. At deadline + 1 day, execute revocations:

    • For each "Revoke" response: #Remove from Group (Okta) or call the app-specific revoke action.

    • For each unattested user (no response): #Send Direct Message to user warning of impending revocation; revoke at deadline + 7 days if still unattested.

  8. #Custom Vanta Upload Evidence with the full attestation log, decisions, and revocation timestamps.

  9. #Send Channel Message to #security with cycle summary: review rate, revoke count, app coverage.

  10. #Create Linear Issue in the Security-Audit project for the cycle's evidence package.

  11. #Leave Internal Note capturing cycle dates and stats.

User Access Reviews (UAR)

Playbooks

/

User Access Reviews (UAR)

User Access Reviews (UAR)

Created by

Console Team

Published

Security

Okta

Vanta

Linear

Trigger

Scheduled — quarterly on the 1st of Jan/Apr/Jul/Oct at 6:00 AM America/Chicago

Instructions

  1. Determine the scope:

  2. For each in-scope app:

  3. Build the review matrix:

    • Group users by their direct manager.

    • For each manager, compile their team's access across all in-scope apps.

    • For each app, identify the app owner via custom Get App Owner.

  4. Send manager attestations:

    • For each manager, #Lookup Users with includeSlackId.

    • #Send Direct Message with a summary: "You have {{N}} reports with access to {{M}} in-scope apps. Please review and attest by {{deadline}}."

    • Include a #Trigger Form per report with rows for each app/entitlement: "Keep / Modify / Revoke".

  5. Send app-owner attestations:

  6. schedule_action wakes at 7, 10, 13 days for non-completers:

  7. At deadline + 1 day, execute revocations:

    • For each "Revoke" response: #Remove from Group (Okta) or call the app-specific revoke action.

    • For each unattested user (no response): #Send Direct Message to user warning of impending revocation; revoke at deadline + 7 days if still unattested.

  8. #Custom Vanta Upload Evidence with the full attestation log, decisions, and revocation timestamps.

  9. #Send Channel Message to #security with cycle summary: review rate, revoke count, app coverage.

  10. #Create Linear Issue in the Security-Audit project for the cycle's evidence package.

  11. #Leave Internal Note capturing cycle dates and stats.

User Access Reviews (UAR)

Playbooks

/

User Access Reviews (UAR)

User Access Reviews (UAR)

Created by

Console Team

Published

Security

Okta

Vanta

Linear

Trigger

Scheduled — quarterly on the 1st of Jan/Apr/Jul/Oct at 6:00 AM America/Chicago

Instructions

  1. Determine the scope:

  2. For each in-scope app:

  3. Build the review matrix:

    • Group users by their direct manager.

    • For each manager, compile their team's access across all in-scope apps.

    • For each app, identify the app owner via custom Get App Owner.

  4. Send manager attestations:

    • For each manager, #Lookup Users with includeSlackId.

    • #Send Direct Message with a summary: "You have {{N}} reports with access to {{M}} in-scope apps. Please review and attest by {{deadline}}."

    • Include a #Trigger Form per report with rows for each app/entitlement: "Keep / Modify / Revoke".

  5. Send app-owner attestations:

  6. schedule_action wakes at 7, 10, 13 days for non-completers:

  7. At deadline + 1 day, execute revocations:

    • For each "Revoke" response: #Remove from Group (Okta) or call the app-specific revoke action.

    • For each unattested user (no response): #Send Direct Message to user warning of impending revocation; revoke at deadline + 7 days if still unattested.

  8. #Custom Vanta Upload Evidence with the full attestation log, decisions, and revocation timestamps.

  9. #Send Channel Message to #security with cycle summary: review rate, revoke count, app coverage.

  10. #Create Linear Issue in the Security-Audit project for the cycle's evidence package.

  11. #Leave Internal Note capturing cycle dates and stats.

Vendor Intake & Onboarding

Playbooks

/

Vendor Intake & Onboarding

Vendor Intake & Onboarding

Created by

Console Team

Published

Finance

DocuSign

NetSuite

Plain

+2

Trigger

Requester asks to onboard a new paid vendor.

Instructions

  1. #Trigger Form for vendor legal name + DBA, contact, service description, annual spend, payment terms, currency, cost center, data processing flag, DPA need.

  2. #Lookup Users with includeManager.

  3. Initial approvals:

  4. Tax docs:

  5. Security review:

  6. Legal review:

    • Fire Legal-7 Vendor Legal Review Intake.

    • If DPA needed → fire Legal-8 DPA Handling.

  7. Banking validation:

  8. Create vendor records:

  9. Approval workflows:

  10. Notify:

  11. #Leave Internal Note with all artifacts.

  12. #Resolve Request.

Vendor Intake & Onboarding

Playbooks

/

Vendor Intake & Onboarding

Vendor Intake & Onboarding

Created by

Console Team

Published

Finance

DocuSign

NetSuite

Plain

+2

Trigger

Requester asks to onboard a new paid vendor.

Instructions

  1. #Trigger Form for vendor legal name + DBA, contact, service description, annual spend, payment terms, currency, cost center, data processing flag, DPA need.

  2. #Lookup Users with includeManager.

  3. Initial approvals:

  4. Tax docs:

  5. Security review:

  6. Legal review:

    • Fire Legal-7 Vendor Legal Review Intake.

    • If DPA needed → fire Legal-8 DPA Handling.

  7. Banking validation:

  8. Create vendor records:

  9. Approval workflows:

  10. Notify:

  11. #Leave Internal Note with all artifacts.

  12. #Resolve Request.

Vendor Intake & Onboarding

Playbooks

/

Vendor Intake & Onboarding

Vendor Intake & Onboarding

Created by

Console Team

Published

Finance

DocuSign

NetSuite

Plain

+2

Trigger

Requester asks to onboard a new paid vendor.

Instructions

  1. #Trigger Form for vendor legal name + DBA, contact, service description, annual spend, payment terms, currency, cost center, data processing flag, DPA need.

  2. #Lookup Users with includeManager.

  3. Initial approvals:

  4. Tax docs:

  5. Security review:

  6. Legal review:

    • Fire Legal-7 Vendor Legal Review Intake.

    • If DPA needed → fire Legal-8 DPA Handling.

  7. Banking validation:

  8. Create vendor records:

  9. Approval workflows:

  10. Notify:

  11. #Leave Internal Note with all artifacts.

  12. #Resolve Request.

Vendor Risk + Payment Hold

Playbooks

/

Vendor Risk + Payment Hold

Vendor Risk + Payment Hold

Created by

Console Team

Published

Finance

Vanta

Linear

NetSuite

+2

Trigger

Detection — webhook from Vanta status change OR scheduled OFAC screen

Instructions

  1. Inputs: Vanta failing review, OFAC match, or legal contract-dispute flag.

  2. #Custom NetSuite Lookup Vendor.

  3. Hold scope:

    • Sanctions match → immediate full hold.

    • Security review fail → hold new payments.

    • Contract dispute → hold disputed invoices only.

  4. Place hold:

  5. Notify:

    • #Send Channel Message to #finance-vendor-holds.

    • DM AP team.

    • For each cost-center owner with active spend: DM with hold + alternatives.

  6. For OFAC:

  7. Resolution:

    • schedule_action wake daily to check.

    • On clearance: remove holds, DM AP + owners, channel log.

  8. During hold: incoming bills route to #finance-vendor-holds instead of normal approval.

  9. #Custom Vanta Log Vendor Hold Event.

  10. #Leave Internal Note.

Vendor Risk + Payment Hold

Playbooks

/

Vendor Risk + Payment Hold

Vendor Risk + Payment Hold

Created by

Console Team

Published

Finance

Vanta

Linear

NetSuite

+2

Trigger

Detection — webhook from Vanta status change OR scheduled OFAC screen

Instructions

  1. Inputs: Vanta failing review, OFAC match, or legal contract-dispute flag.

  2. #Custom NetSuite Lookup Vendor.

  3. Hold scope:

    • Sanctions match → immediate full hold.

    • Security review fail → hold new payments.

    • Contract dispute → hold disputed invoices only.

  4. Place hold:

  5. Notify:

    • #Send Channel Message to #finance-vendor-holds.

    • DM AP team.

    • For each cost-center owner with active spend: DM with hold + alternatives.

  6. For OFAC:

  7. Resolution:

    • schedule_action wake daily to check.

    • On clearance: remove holds, DM AP + owners, channel log.

  8. During hold: incoming bills route to #finance-vendor-holds instead of normal approval.

  9. #Custom Vanta Log Vendor Hold Event.

  10. #Leave Internal Note.

Vendor Risk + Payment Hold

Playbooks

/

Vendor Risk + Payment Hold

Vendor Risk + Payment Hold

Created by

Console Team

Published

Finance

Vanta

Linear

NetSuite

+2

Trigger

Detection — webhook from Vanta status change OR scheduled OFAC screen

Instructions

  1. Inputs: Vanta failing review, OFAC match, or legal contract-dispute flag.

  2. #Custom NetSuite Lookup Vendor.

  3. Hold scope:

    • Sanctions match → immediate full hold.

    • Security review fail → hold new payments.

    • Contract dispute → hold disputed invoices only.

  4. Place hold:

  5. Notify:

    • #Send Channel Message to #finance-vendor-holds.

    • DM AP team.

    • For each cost-center owner with active spend: DM with hold + alternatives.

  6. For OFAC:

  7. Resolution:

    • schedule_action wake daily to check.

    • On clearance: remove holds, DM AP + owners, channel log.

  8. During hold: incoming bills route to #finance-vendor-holds instead of normal approval.

  9. #Custom Vanta Log Vendor Hold Event.

  10. #Leave Internal Note.

Vendor Security Review

Playbooks

/

Vendor Security Review

Vendor Security Review

Created by

Console Team

Published

Security

Vanta

Linear

Trigger

IT or someone requests a new SaaS app/vendor.

Instructions

  1. #Trigger Form to collect:

    1. Vendor name

    2. Vendor URL

    3. Use case (what data, what users, what integration)

    4. Data sensitivity (none / PII / financial / customer-data / PHI / IP)

    5. Number of users

    6. Integration scope (SSO only / SCIM / API / data residency)

    7. Business owner / requester

  2. #Lookup Users on the requester.

  3. Pull vendor attestations:

  4. Tier the risk:

    • Low: no sensitive data, well-known vendor with SOC2 II, <50 users.

    • Medium: PII or financial, SOC2 II + DPA available.

    • High: customer-data, PHI, or IP; SOC2 II + DPA + security questionnaire + pen-test report required.

    • Critical: requires full vendor risk assessment + legal review + executive sign-off.

  5. Run the security questionnaire if needed:

  6. Route for approval:

    • Low → auto-approve with security info note.

    • Medium → #Request Approval from security engineer.

    • High → #Request Approval chained: security engineer → security lead → privacy/legal (if PII/PHI).

    • Critical → security lead → privacy → legal → CISO/CTO.

  7. On full approval:

  8. On denial:

  9. #Custom Vanta Log Vendor Review for compliance.

  10. #Leave Internal Note capturing risk tier, attestations, approval trail.

  11. #Resolve Request.

Vendor Security Review

Playbooks

/

Vendor Security Review

Vendor Security Review

Created by

Console Team

Published

Security

Vanta

Linear

Trigger

IT or someone requests a new SaaS app/vendor.

Instructions

  1. #Trigger Form to collect:

    1. Vendor name

    2. Vendor URL

    3. Use case (what data, what users, what integration)

    4. Data sensitivity (none / PII / financial / customer-data / PHI / IP)

    5. Number of users

    6. Integration scope (SSO only / SCIM / API / data residency)

    7. Business owner / requester

  2. #Lookup Users on the requester.

  3. Pull vendor attestations:

  4. Tier the risk:

    • Low: no sensitive data, well-known vendor with SOC2 II, <50 users.

    • Medium: PII or financial, SOC2 II + DPA available.

    • High: customer-data, PHI, or IP; SOC2 II + DPA + security questionnaire + pen-test report required.

    • Critical: requires full vendor risk assessment + legal review + executive sign-off.

  5. Run the security questionnaire if needed:

  6. Route for approval:

    • Low → auto-approve with security info note.

    • Medium → #Request Approval from security engineer.

    • High → #Request Approval chained: security engineer → security lead → privacy/legal (if PII/PHI).

    • Critical → security lead → privacy → legal → CISO/CTO.

  7. On full approval:

  8. On denial:

  9. #Custom Vanta Log Vendor Review for compliance.

  10. #Leave Internal Note capturing risk tier, attestations, approval trail.

  11. #Resolve Request.

Vendor Security Review

Playbooks

/

Vendor Security Review

Vendor Security Review

Created by

Console Team

Published

Security

Vanta

Linear

Trigger

IT or someone requests a new SaaS app/vendor.

Instructions

  1. #Trigger Form to collect:

    1. Vendor name

    2. Vendor URL

    3. Use case (what data, what users, what integration)

    4. Data sensitivity (none / PII / financial / customer-data / PHI / IP)

    5. Number of users

    6. Integration scope (SSO only / SCIM / API / data residency)

    7. Business owner / requester

  2. #Lookup Users on the requester.

  3. Pull vendor attestations:

  4. Tier the risk:

    • Low: no sensitive data, well-known vendor with SOC2 II, <50 users.

    • Medium: PII or financial, SOC2 II + DPA available.

    • High: customer-data, PHI, or IP; SOC2 II + DPA + security questionnaire + pen-test report required.

    • Critical: requires full vendor risk assessment + legal review + executive sign-off.

  5. Run the security questionnaire if needed:

  6. Route for approval:

    • Low → auto-approve with security info note.

    • Medium → #Request Approval from security engineer.

    • High → #Request Approval chained: security engineer → security lead → privacy/legal (if PII/PHI).

    • Critical → security lead → privacy → legal → CISO/CTO.

  7. On full approval:

  8. On denial:

  9. #Custom Vanta Log Vendor Review for compliance.

  10. #Leave Internal Note capturing risk tier, attestations, approval trail.

  11. #Resolve Request.

VIP Fast-Track

Playbooks

/

VIP Fast-Track

VIP Fast-Track

Created by

Console Team

Published

IT

Okta

PagerDuty

Trigger

Console Trigger — REQUEST_STARTED

Instructions

  1. #Lookup Users on the requester with includeGroups and includeManager.

  2. Determine VIP status — requester is VIP if any of:

    • In the vip Okta group (execs, board).

    • Title matches ^(CEO|CFO|CTO|COO|VP|SVP|Chief).

    • In active on-call rotation via #Get PagerDuty Oncall Users.

    • In customer-facing-active group (CSMs in an active meeting).

  3. If not VIP → exit without modification (let normal routing apply).

  4. If VIP:

  5. #Send Direct Message to the requester acknowledging fast-track and giving them the on-call engineer's name + ETA.

  6. #Leave Internal Note capturing VIP determination reason and on-call assignment.

  7. Continue handling the underlying request — do NOT resolve here; the on-call engineer takes over.

VIP Fast-Track

Playbooks

/

VIP Fast-Track

VIP Fast-Track

Created by

Console Team

Published

IT

Okta

PagerDuty

Trigger

Console Trigger — REQUEST_STARTED

Instructions

  1. #Lookup Users on the requester with includeGroups and includeManager.

  2. Determine VIP status — requester is VIP if any of:

    • In the vip Okta group (execs, board).

    • Title matches ^(CEO|CFO|CTO|COO|VP|SVP|Chief).

    • In active on-call rotation via #Get PagerDuty Oncall Users.

    • In customer-facing-active group (CSMs in an active meeting).

  3. If not VIP → exit without modification (let normal routing apply).

  4. If VIP:

  5. #Send Direct Message to the requester acknowledging fast-track and giving them the on-call engineer's name + ETA.

  6. #Leave Internal Note capturing VIP determination reason and on-call assignment.

  7. Continue handling the underlying request — do NOT resolve here; the on-call engineer takes over.

VIP Fast-Track

Playbooks

/

VIP Fast-Track

VIP Fast-Track

Created by

Console Team

Published

IT

Okta

PagerDuty

Trigger

Console Trigger — REQUEST_STARTED

Instructions

  1. #Lookup Users on the requester with includeGroups and includeManager.

  2. Determine VIP status — requester is VIP if any of:

    • In the vip Okta group (execs, board).

    • Title matches ^(CEO|CFO|CTO|COO|VP|SVP|Chief).

    • In active on-call rotation via #Get PagerDuty Oncall Users.

    • In customer-facing-active group (CSMs in an active meeting).

  3. If not VIP → exit without modification (let normal routing apply).

  4. If VIP:

  5. #Send Direct Message to the requester acknowledging fast-track and giving them the on-call engineer's name + ETA.

  6. #Leave Internal Note capturing VIP determination reason and on-call assignment.

  7. Continue handling the underlying request — do NOT resolve here; the on-call engineer takes over.

Vulnerability Assessment & Impact

Playbooks

/

Vulnerability Assessment & Impact

Vulnerability Assessment & Impact

Created by

Console Team

Published

Security

Kandji

CrowdStrike

AWS

+3

Trigger

Requester pastes a CVE ID or vulnerability description, or asks "what's our exposure to X?"

Instructions

  1. Parse the CVE ID or vuln description.

  2. If a CVE ID:

    • #Web Research the NVD page for CVE details (CVSS, affected products, fix versions).

  3. If a vuln description:

  4. #Trigger Form to collect (with smart defaults from the parse):

    • Confirmed CVE list

    • Affected products / versions

    • Severity threshold for action (Critical only / High+ / Medium+)

    • Scope (devices / cloud / SaaS / all)

  5. Run queries in parallel:

  6. Aggregate the exposed assets:

    • For each finding, capture: asset, owner (via custom Get Asset Owner), severity, reachability (internet-facing?), data-classification.

  7. Score by reachability:

    • Internet-facing + sensitive-data + critical-CVE → P0.

    • Internal-facing + critical-CVE → P1.

    • Internal-facing + high-CVE → P2.

    • Else → P3.

  8. Create remediation tickets:

    • Group by owning team.

    • For each team: #Create Linear Issue with: CVE summary, affected assets, severity, recommended fix, SLA (P0 = 24h, P1 = 7d, P2 = 30d).

    • #Send Direct Message to team lead with the issue link.

  9. Compose the impact report:

  10. schedule_action wake at the SLA windows (24h, 7d, 30d) to check remediation status.

  11. On wake: for unresolved P0/P1 issues, #Send Channel Message to #security-leads escalating.

  12. #Custom Vanta Log Vulnerability Response for compliance.

  13. #Leave Internal Note capturing the assessment.

Vulnerability Assessment & Impact

Playbooks

/

Vulnerability Assessment & Impact

Vulnerability Assessment & Impact

Created by

Console Team

Published

Security

Kandji

CrowdStrike

AWS

+3

Trigger

Requester pastes a CVE ID or vulnerability description, or asks "what's our exposure to X?"

Instructions

  1. Parse the CVE ID or vuln description.

  2. If a CVE ID:

    • #Web Research the NVD page for CVE details (CVSS, affected products, fix versions).

  3. If a vuln description:

  4. #Trigger Form to collect (with smart defaults from the parse):

    • Confirmed CVE list

    • Affected products / versions

    • Severity threshold for action (Critical only / High+ / Medium+)

    • Scope (devices / cloud / SaaS / all)

  5. Run queries in parallel:

  6. Aggregate the exposed assets:

    • For each finding, capture: asset, owner (via custom Get Asset Owner), severity, reachability (internet-facing?), data-classification.

  7. Score by reachability:

    • Internet-facing + sensitive-data + critical-CVE → P0.

    • Internal-facing + critical-CVE → P1.

    • Internal-facing + high-CVE → P2.

    • Else → P3.

  8. Create remediation tickets:

    • Group by owning team.

    • For each team: #Create Linear Issue with: CVE summary, affected assets, severity, recommended fix, SLA (P0 = 24h, P1 = 7d, P2 = 30d).

    • #Send Direct Message to team lead with the issue link.

  9. Compose the impact report:

  10. schedule_action wake at the SLA windows (24h, 7d, 30d) to check remediation status.

  11. On wake: for unresolved P0/P1 issues, #Send Channel Message to #security-leads escalating.

  12. #Custom Vanta Log Vulnerability Response for compliance.

  13. #Leave Internal Note capturing the assessment.

Vulnerability Assessment & Impact

Playbooks

/

Vulnerability Assessment & Impact

Vulnerability Assessment & Impact

Created by

Console Team

Published

Security

Kandji

CrowdStrike

AWS

+3

Trigger

Requester pastes a CVE ID or vulnerability description, or asks "what's our exposure to X?"

Instructions

  1. Parse the CVE ID or vuln description.

  2. If a CVE ID:

    • #Web Research the NVD page for CVE details (CVSS, affected products, fix versions).

  3. If a vuln description:

  4. #Trigger Form to collect (with smart defaults from the parse):

    • Confirmed CVE list

    • Affected products / versions

    • Severity threshold for action (Critical only / High+ / Medium+)

    • Scope (devices / cloud / SaaS / all)

  5. Run queries in parallel:

  6. Aggregate the exposed assets:

    • For each finding, capture: asset, owner (via custom Get Asset Owner), severity, reachability (internet-facing?), data-classification.

  7. Score by reachability:

    • Internet-facing + sensitive-data + critical-CVE → P0.

    • Internal-facing + critical-CVE → P1.

    • Internal-facing + high-CVE → P2.

    • Else → P3.

  8. Create remediation tickets:

    • Group by owning team.

    • For each team: #Create Linear Issue with: CVE summary, affected assets, severity, recommended fix, SLA (P0 = 24h, P1 = 7d, P2 = 30d).

    • #Send Direct Message to team lead with the issue link.

  9. Compose the impact report:

  10. schedule_action wake at the SLA windows (24h, 7d, 30d) to check remediation status.

  11. On wake: for unresolved P0/P1 issues, #Send Channel Message to #security-leads escalating.

  12. #Custom Vanta Log Vulnerability Response for compliance.

  13. #Leave Internal Note capturing the assessment.

Web-Sourced Troubleshooting

Playbooks

/

Web-Sourced Troubleshooting

Web-Sourced Troubleshooting

Created by

Console Team

Published

IT

Kandji

Trigger

Requester reports an issue with a vendor SaaS or OS ("Xcode failing on macOS 15", "Office keeps prompting for activation", "Chrome extension X not working").

Instructions

  1. #Lookup Users on the requester.

  2. #List Devices (Kandji) to get OS version and model.

  3. #Trigger Form to collect:

    • Application or service

    • Exact error message

    • When it started

    • What they've tried

  4. #Search Knowledge Base first for the symptom + application.

  5. If no KB hit or stale: #Web Research with a focused query like {{app}} {{error}} {{os_version}} targeting vendor docs.

  6. Synthesize the top fixes from web + KB into 3–5 steps.

  7. Walk the user through them in #Send Direct Message, asking "did that work?" after each.

  8. If a Kandji-side fix is needed: #Create Kandji Custom Script or custom Kandji Reinstall Library Item.

  9. On resolution → #Resolve Request and offer to save the fix back into a new KB article.

  10. If unresolved → #Escalate Request with the full diagnostic trail in #Leave Internal Note.

Web-Sourced Troubleshooting

Playbooks

/

Web-Sourced Troubleshooting

Web-Sourced Troubleshooting

Created by

Console Team

Published

IT

Kandji

Trigger

Requester reports an issue with a vendor SaaS or OS ("Xcode failing on macOS 15", "Office keeps prompting for activation", "Chrome extension X not working").

Instructions

  1. #Lookup Users on the requester.

  2. #List Devices (Kandji) to get OS version and model.

  3. #Trigger Form to collect:

    • Application or service

    • Exact error message

    • When it started

    • What they've tried

  4. #Search Knowledge Base first for the symptom + application.

  5. If no KB hit or stale: #Web Research with a focused query like {{app}} {{error}} {{os_version}} targeting vendor docs.

  6. Synthesize the top fixes from web + KB into 3–5 steps.

  7. Walk the user through them in #Send Direct Message, asking "did that work?" after each.

  8. If a Kandji-side fix is needed: #Create Kandji Custom Script or custom Kandji Reinstall Library Item.

  9. On resolution → #Resolve Request and offer to save the fix back into a new KB article.

  10. If unresolved → #Escalate Request with the full diagnostic trail in #Leave Internal Note.

Web-Sourced Troubleshooting

Playbooks

/

Web-Sourced Troubleshooting

Web-Sourced Troubleshooting

Created by

Console Team

Published

IT

Kandji

Trigger

Requester reports an issue with a vendor SaaS or OS ("Xcode failing on macOS 15", "Office keeps prompting for activation", "Chrome extension X not working").

Instructions

  1. #Lookup Users on the requester.

  2. #List Devices (Kandji) to get OS version and model.

  3. #Trigger Form to collect:

    • Application or service

    • Exact error message

    • When it started

    • What they've tried

  4. #Search Knowledge Base first for the symptom + application.

  5. If no KB hit or stale: #Web Research with a focused query like {{app}} {{error}} {{os_version}} targeting vendor docs.

  6. Synthesize the top fixes from web + KB into 3–5 steps.

  7. Walk the user through them in #Send Direct Message, asking "did that work?" after each.

  8. If a Kandji-side fix is needed: #Create Kandji Custom Script or custom Kandji Reinstall Library Item.

  9. On resolution → #Resolve Request and offer to save the fix back into a new KB article.

  10. If unresolved → #Escalate Request with the full diagnostic trail in #Leave Internal Note.

Weekly Finance Digest

Playbooks

/

Weekly Finance Digest

Weekly Finance Digest

Created by

Console Team

Published

Finance

Workday

Ramp

NetSuite

+2

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Pull in parallel:

  2. Compute callouts: cost centers over budget WTD, top 3 fastest-growing categories, customers overdue >$50k, vendors with renewal in 30 days.

  3. Compose digest with sections: spend snapshot, AR aging, top vendors, upcoming renewals, expense compliance, cash position.

  4. #Send Channel Message to #finance with full digest.

  5. #Send Channel Message to #finance-leads with leadership cuts.

  6. For each cost center over budget: DM the owner with their cut.

  7. #Custom Snapshot Finance Weekly for trend analysis.

  8. #Leave Internal Note

Weekly Finance Digest

Playbooks

/

Weekly Finance Digest

Weekly Finance Digest

Created by

Console Team

Published

Finance

Workday

Ramp

NetSuite

+2

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Pull in parallel:

  2. Compute callouts: cost centers over budget WTD, top 3 fastest-growing categories, customers overdue >$50k, vendors with renewal in 30 days.

  3. Compose digest with sections: spend snapshot, AR aging, top vendors, upcoming renewals, expense compliance, cash position.

  4. #Send Channel Message to #finance with full digest.

  5. #Send Channel Message to #finance-leads with leadership cuts.

  6. For each cost center over budget: DM the owner with their cut.

  7. #Custom Snapshot Finance Weekly for trend analysis.

  8. #Leave Internal Note

Weekly Finance Digest

Playbooks

/

Weekly Finance Digest

Weekly Finance Digest

Created by

Console Team

Published

Finance

Workday

Ramp

NetSuite

+2

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Pull in parallel:

  2. Compute callouts: cost centers over budget WTD, top 3 fastest-growing categories, customers overdue >$50k, vendors with renewal in 30 days.

  3. Compose digest with sections: spend snapshot, AR aging, top vendors, upcoming renewals, expense compliance, cash position.

  4. #Send Channel Message to #finance with full digest.

  5. #Send Channel Message to #finance-leads with leadership cuts.

  6. For each cost center over budget: DM the owner with their cut.

  7. #Custom Snapshot Finance Weekly for trend analysis.

  8. #Leave Internal Note

Weekly Forecast Roll-Up

Playbooks

/

Weekly Forecast Roll-Up

Weekly Forecast Roll-Up

Created by

Console Team

Published

RevOps

HubSpot

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Identify AEs in scope:

  2. For each AE, pull forecast data:

    • #Search Open HubSpot Deals by Owner with Forecast Category filtered to current quarter.

    • Bucket by: Commit / Best Case / Pipeline / Omitted.

    • Sum amounts per bucket.

  3. Compute team-level rollups:

    • By manager.

    • By region.

    • By segment.

  4. Run trend analysis:

    • #Run Query with REQUEST_COUNT measurement isn't quite right here — use custom Compare to Last Week action that diffs forecast vs last Monday.

    • Calculate: week-over-week delta, attainment vs quota, gap-to-quota.

  5. Identify missing inputs:

    • For each AE with no forecast updates in 7 days → flag.

    • For each AE with deals in current quarter missing close date / amount / stage → flag.

  6. Compose the digest:

    • Top of report: total commit, best case, pipeline, gap-to-quota.

    • By region/segment: same breakdown.

    • Top deals (>$X): list with status, last activity.

    • Flagged gaps: AEs missing inputs, deals missing fields.

    • Trend: WoW delta with sparkline (via #Run Query chart).

  7. #Send Channel Message to #revops with the full digest.

  8. #Send Channel Message to #sales-leadership with the leadership-level rollup (no individual flags).

  9. For each flagged AE:

  10. For managers:

  11. Save the snapshot:

  12. #Leave Internal Note in a weekly tracking issue.

Weekly Forecast Roll-Up

Playbooks

/

Weekly Forecast Roll-Up

Weekly Forecast Roll-Up

Created by

Console Team

Published

RevOps

HubSpot

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Identify AEs in scope:

  2. For each AE, pull forecast data:

    • #Search Open HubSpot Deals by Owner with Forecast Category filtered to current quarter.

    • Bucket by: Commit / Best Case / Pipeline / Omitted.

    • Sum amounts per bucket.

  3. Compute team-level rollups:

    • By manager.

    • By region.

    • By segment.

  4. Run trend analysis:

    • #Run Query with REQUEST_COUNT measurement isn't quite right here — use custom Compare to Last Week action that diffs forecast vs last Monday.

    • Calculate: week-over-week delta, attainment vs quota, gap-to-quota.

  5. Identify missing inputs:

    • For each AE with no forecast updates in 7 days → flag.

    • For each AE with deals in current quarter missing close date / amount / stage → flag.

  6. Compose the digest:

    • Top of report: total commit, best case, pipeline, gap-to-quota.

    • By region/segment: same breakdown.

    • Top deals (>$X): list with status, last activity.

    • Flagged gaps: AEs missing inputs, deals missing fields.

    • Trend: WoW delta with sparkline (via #Run Query chart).

  7. #Send Channel Message to #revops with the full digest.

  8. #Send Channel Message to #sales-leadership with the leadership-level rollup (no individual flags).

  9. For each flagged AE:

  10. For managers:

  11. Save the snapshot:

  12. #Leave Internal Note in a weekly tracking issue.

Weekly Forecast Roll-Up

Playbooks

/

Weekly Forecast Roll-Up

Weekly Forecast Roll-Up

Created by

Console Team

Published

RevOps

HubSpot

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Identify AEs in scope:

  2. For each AE, pull forecast data:

    • #Search Open HubSpot Deals by Owner with Forecast Category filtered to current quarter.

    • Bucket by: Commit / Best Case / Pipeline / Omitted.

    • Sum amounts per bucket.

  3. Compute team-level rollups:

    • By manager.

    • By region.

    • By segment.

  4. Run trend analysis:

    • #Run Query with REQUEST_COUNT measurement isn't quite right here — use custom Compare to Last Week action that diffs forecast vs last Monday.

    • Calculate: week-over-week delta, attainment vs quota, gap-to-quota.

  5. Identify missing inputs:

    • For each AE with no forecast updates in 7 days → flag.

    • For each AE with deals in current quarter missing close date / amount / stage → flag.

  6. Compose the digest:

    • Top of report: total commit, best case, pipeline, gap-to-quota.

    • By region/segment: same breakdown.

    • Top deals (>$X): list with status, last activity.

    • Flagged gaps: AEs missing inputs, deals missing fields.

    • Trend: WoW delta with sparkline (via #Run Query chart).

  7. #Send Channel Message to #revops with the full digest.

  8. #Send Channel Message to #sales-leadership with the leadership-level rollup (no individual flags).

  9. For each flagged AE:

  10. For managers:

  11. Save the snapshot:

  12. #Leave Internal Note in a weekly tracking issue.

Weekly HR Digest

Playbooks

/

Weekly HR Digest

Weekly HR Digest

Created by

Console Team

Published

HR

Workday

Linear

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Pull data sources in parallel:

  2. Pick the policy reminder of the week from a rotating list (KB articles tagged weekly-reminder).

  3. For new hires:

    • For each, #Lookup Users to get profile data and team.

    • Compose intro: name, title, team, location, fun fact (from intake form).

  4. For anniversaries and birthdays:

    • Sort by date this week.

    • Group by team for readability.

  5. Compose the digest markdown with sections:

    • This week's new hires (with photos if available)

    • Anniversaries

    • Birthdays

    • Policy reminder

    • PTO summary chart (insight URL)

    • Open headcount status

  6. #Send Channel Message to #people with the composed digest.

  7. #Leave Internal Note in an internal Linear weekly issue capturing the digest contents for audit.

Weekly HR Digest

Playbooks

/

Weekly HR Digest

Weekly HR Digest

Created by

Console Team

Published

HR

Workday

Linear

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Pull data sources in parallel:

  2. Pick the policy reminder of the week from a rotating list (KB articles tagged weekly-reminder).

  3. For new hires:

    • For each, #Lookup Users to get profile data and team.

    • Compose intro: name, title, team, location, fun fact (from intake form).

  4. For anniversaries and birthdays:

    • Sort by date this week.

    • Group by team for readability.

  5. Compose the digest markdown with sections:

    • This week's new hires (with photos if available)

    • Anniversaries

    • Birthdays

    • Policy reminder

    • PTO summary chart (insight URL)

    • Open headcount status

  6. #Send Channel Message to #people with the composed digest.

  7. #Leave Internal Note in an internal Linear weekly issue capturing the digest contents for audit.

Weekly HR Digest

Playbooks

/

Weekly HR Digest

Weekly HR Digest

Created by

Console Team

Published

HR

Workday

Linear

Trigger

Scheduled — every Monday at 9:00 AM America/Chicago

Instructions

  1. Pull data sources in parallel:

  2. Pick the policy reminder of the week from a rotating list (KB articles tagged weekly-reminder).

  3. For new hires:

    • For each, #Lookup Users to get profile data and team.

    • Compose intro: name, title, team, location, fun fact (from intake form).

  4. For anniversaries and birthdays:

    • Sort by date this week.

    • Group by team for readability.

  5. Compose the digest markdown with sections:

    • This week's new hires (with photos if available)

    • Anniversaries

    • Birthdays

    • Policy reminder

    • PTO summary chart (insight URL)

    • Open headcount status

  6. #Send Channel Message to #people with the composed digest.

  7. #Leave Internal Note in an internal Linear weekly issue capturing the digest contents for audit.

Wire Transfer Approval

Playbooks

/

Wire Transfer Approval

Wire Transfer Approval

Created by

Console Team

Published

Finance

NetSuite

Bill

Trigger

Wire >$10k requested

Instructions

  1. #Trigger Form for recipient, amount, currency, bank details, purpose, cost center, urgency.

  2. #Lookup Users.

  3. Anti-fraud checks:

  4. Out-of-band verification for new bank details:

  5. Required docs:

  6. Approval chain:

  7. On full approval:

  8. Confirmation:

  9. schedule_action wake at 2 business days to confirm delivery.

  10. #Custom Bill.com Mark Paid.

  11. #Leave Internal Note with full audit trail.

  12. #Resolve Request.

Wire Transfer Approval

Playbooks

/

Wire Transfer Approval

Wire Transfer Approval

Created by

Console Team

Published

Finance

NetSuite

Bill

Trigger

Wire >$10k requested

Instructions

  1. #Trigger Form for recipient, amount, currency, bank details, purpose, cost center, urgency.

  2. #Lookup Users.

  3. Anti-fraud checks:

  4. Out-of-band verification for new bank details:

  5. Required docs:

  6. Approval chain:

  7. On full approval:

  8. Confirmation:

  9. schedule_action wake at 2 business days to confirm delivery.

  10. #Custom Bill.com Mark Paid.

  11. #Leave Internal Note with full audit trail.

  12. #Resolve Request.

Wire Transfer Approval

Playbooks

/

Wire Transfer Approval

Wire Transfer Approval

Created by

Console Team

Published

Finance

NetSuite

Bill

Trigger

Wire >$10k requested

Instructions

  1. #Trigger Form for recipient, amount, currency, bank details, purpose, cost center, urgency.

  2. #Lookup Users.

  3. Anti-fraud checks:

  4. Out-of-band verification for new bank details:

  5. Required docs:

  6. Approval chain:

  7. On full approval:

  8. Confirmation:

  9. schedule_action wake at 2 business days to confirm delivery.

  10. #Custom Bill.com Mark Paid.

  11. #Leave Internal Note with full audit trail.

  12. #Resolve Request.