Automation Playbooks
Platform-specific workflow recipes for HubSpot, Salesforce, scheduling tools, and cross-tool automation.
HubSpot Workflow Recipes
1. MQL Alert and Assignment
Name: MQL Notification and Task Creation Trigger: Contact property "Lifecycle Stage" is changed to "Marketing Qualified Lead" Actions:
- Rotate contact owner among sales team (round-robin)
- Send internal email notification to contact owner with lead context
- Create task: "Follow up with [Contact Name]" — due in 4 hours
- Send Slack notification to #sales-alerts channel
- Enroll in "MQL Follow-Up" sequence (if using HubSpot Sequences) Outcome: Every MQL gets assigned instantly with a clear SLA Notes: Set enrollment criteria to exclude leads already owned by a rep
2. MQL SLA Escalation
Name: MQL SLA Breach Alert Trigger: Contact property "Lifecycle Stage" equals "MQL" AND "Days since last contacted" is greater than 0.5 (12 hours) Actions:
- Send internal email to contact owner: "SLA warning: [Contact Name] has not been contacted"
- If still no activity after 24 hours → send alert to sales manager
- If still no activity after 48 hours → reassign contact owner via rotation
- Create task for new owner: "Urgent: Contact [Contact Name] — reassigned due to SLA breach" Outcome: No MQL goes unworked for more than 48 hours Notes: Exclude contacts where last activity type is "Call" or "Meeting" (already engaged)
3. Lead Scoring Update and MQL Promotion
Name: Auto-MQL on Score Threshold Trigger: Contact property "HubSpot Score" is greater than or equal to 65 Actions:
- Set lifecycle stage to "Marketing Qualified Lead"
- Set "MQL Date" to current date
- Suppress from marketing nurture workflows
- Trigger MQL Alert workflow (recipe #1) Outcome: Leads automatically promote to MQL when they hit the scoring threshold Notes: Add suppression list for existing customers and competitors
4. Meeting Booked Notification
Name: Meeting Booked Alert to AE Trigger: Meeting activity is logged for contact (via Calendly/HubSpot meetings) Actions:
- Send internal email to contact owner with meeting details
- Update contact property "Last Meeting Booked" to current date
- If lifecycle stage is "Lead" → update to "MQL"
- Create task: "Prepare for meeting with [Contact Name]" — due 1 hour before meeting
- Send Slack notification to #meetings channel Outcome: AEs are prepared for every meeting with full context Notes: Include recent page views and content downloads in notification email
5. Closed-Won Handoff to CS
Name: Customer Onboarding Trigger Trigger: Deal stage is changed to "Closed Won" Actions:
- Update associated contact lifecycle stage to "Customer"
- Set "Customer Since" date to current date
- Assign contact owner to CS team member (based on segment/territory)
- Create task for CS: "Schedule kickoff call with [Company Name]" — due in 2 business days
- Enroll contact in "Customer Onboarding" email sequence
- Send internal notification to CS manager
- Remove from all sales sequences Outcome: Seamless handoff from sales to customer success Notes: Include deal notes, contract value, and key stakeholders in CS notification
6. Stale Deal Alert
Name: Pipeline Hygiene — Stale Deal Detection Trigger: Deal property "Days in current stage" is greater than [2x average for that stage] Actions:
- Send internal email to deal owner: "Deal stale alert: [Deal Name] has been in [Stage] for [X] days"
- Create task: "Update or close [Deal Name]" — due in 3 business days
- If no update after 7 days → alert sales manager
- Add to "Stale Deals" dashboard list Outcome: Pipeline stays clean and forecast stays accurate Notes: Customize thresholds per stage (Discovery: 14 days, Proposal: 10 days, Negotiation: 21 days)
7. Recycled Lead Nurture Re-Entry
Name: MQL Recycling to Nurture Trigger: Contact property "Sales Rejection Reason" is known (any value) Actions:
- Update lifecycle stage to "Recycled"
- Reset engagement score to baseline (keep fit score)
- Enroll in "Recycled Lead Nurture" sequence (lower frequency)
- Set "Recycle Date" to current date
- Set re-enrollment trigger: if HubSpot Score exceeds threshold again, re-trigger MQL workflow Outcome: Rejected leads get a second chance without clogging the pipeline Notes: Track recycled-to-MQL conversion rate as a separate metric
8. Lead Activity Digest
Name: Daily Lead Activity Summary Trigger: Scheduled — daily at 8:00 AM local time Actions:
- Filter contacts: lifecycle stage is "SQL" or "Opportunity" AND had website activity in last 24 hours
- Send digest email to each contact owner with their leads' activity
- Include: pages visited, content downloaded, emails opened/clicked Outcome: Sales reps start each day knowing which leads are active Notes: Only include leads with meaningful activity (exclude single homepage visits)
Salesforce Flow Equivalents
1. MQL Alert and Assignment (Salesforce Flow)
Type: Record-Triggered Flow Object: Lead Trigger: Lead field "Status" is changed to "MQL" Flow steps:
- Get Records: Query "Rep Assignment" custom object for next available rep
- Update Records: Set Lead Owner to assigned rep
- Create Records: Create Task — "Contact MQL: {Lead.Name}" with due date = NOW + 4 hours
- Action: Send email alert to new lead owner
- Update Records: Update "Rep Assignment" last-assigned timestamp Notes: Use a custom "Rep Assignment" object to manage round-robin state
2. SLA Escalation (Salesforce Flow)
Type: Scheduled-Triggered Flow Schedule: Every 4 hours during business hours Flow steps:
- Get Records: Leads where Status = "MQL" AND LastActivityDate < TODAY - 1
- Decision: Is lead older than 48 hours with no activity?
- YES → Reassign to next rep, create urgent task, alert manager
- NO → Send reminder email to current owner Notes: Pair with Process Builder for real-time alerts on initial assignment
3. Pipeline Stage Automation (Salesforce Flow)
Type: Record-Triggered Flow Object: Opportunity Trigger: Stage field is updated Flow steps:
- Decision: Which stage was it changed to?
- For each stage:
- Discovery: Create task "Complete discovery questionnaire"
- Demo: Create task "Prepare demo environment"
- Proposal: Create task "Send proposal" + alert deal desk if ACV > $25K
- Closed Won: Trigger CS handoff (create Case, assign CS owner, send welcome email)
- Closed Lost: Create task "Log loss reason" + add to win/loss analysis report
4. Stale Deal Detection (Salesforce Flow)
Type: Scheduled-Triggered Flow Schedule: Daily at 7:00 AM Flow steps:
- Get Records: Open Opportunities where Days_In_Stage > Stage_SLA_Threshold
- Loop through results:
- Create Task: "Update stale deal: {Opportunity.Name}"
- Send email to Opportunity Owner
- If Days_In_Stage > 2x threshold → send email to Owner's Manager
- Update custom field "Stale Flag" = true for dashboard visibility
Calendly / SavvyCal Integration Patterns
Round-Robin Meeting Scheduling
Calendly setup:
- Create a team event type with all eligible reps
- Distribution: "Optimize for equal distribution"
- Availability: Each rep manages their own calendar
- Buffer: 15 min before and after meetings
- Minimum notice: 4 hours (avoid last-minute bookings)
CRM integration:
- Calendly webhook fires on booking
- Match invitee email to CRM contact
- If contact exists → assign meeting to contact owner (override round-robin if owned)
- If new contact → create lead, assign via routing rules, log meeting
- Set lifecycle stage to MQL (meeting = high intent)
SavvyCal Setup
Advantages over Calendly:
- Priority-based scheduling (prefer certain time slots)
- Overlay calendars (show team availability in one view)
- Personalized booking links per rep
Integration pattern:
- Create team scheduling link with priority rules
- Webhook on booking → Zapier/Make → CRM
- Match or create contact, assign owner, create task
- Send confirmation with meeting prep materials
Meeting Routing by Criteria
Booking form submitted
├─ Company size > 500? (form field)
│ ├─ YES → Route to enterprise AE calendar
│ └─ NO ↓
├─ Existing customer? (CRM lookup)
│ ├─ YES → Route to account owner's calendar
│ └─ NO ↓
└─ Round-robin across SDR teamNo-Show Workflow
Trigger: Meeting time passes + no meeting notes logged within 30 minutes Actions:
- Wait 30 minutes after scheduled meeting time
- Check: Was a call or meeting logged?
- YES → No action
- NO → Send "Sorry we missed you" email to prospect
- Create task: "Reschedule with [Contact Name]" — due next business day
- If second no-show → flag contact and alert manager
Zapier Cross-Tool Patterns
1. New Lead → CRM + Slack + Task
Trigger: New form submission (Typeform, HubSpot, Webflow) Actions:
- Create/update contact in CRM
- Enrich with Clearbit (if available)
- Post to Slack #new-leads with enriched data
- Create task in project management tool (Asana, Linear)
2. Meeting Booked → CRM + Prep Email
Trigger: New Calendly/SavvyCal booking Actions:
- Find or create CRM contact
- Update lifecycle stage to MQL
- Send prep email to assigned rep (include CRM link, LinkedIn profile, recent activity)
- Create pre-meeting task
3. Deal Closed → Onboarding Stack
Trigger: CRM deal stage changed to "Closed Won" Actions:
- Create customer record in CS tool (Vitally, Gainsight, ChurnZero)
- Add to onboarding project template
- Send welcome email via email tool
- Create Slack channel: #customer-[company-name]
- Notify CS team in Slack
4. Lead Scoring → Cross-Tool Sync
Trigger: CRM lead score crosses MQL threshold Actions:
- Update marketing automation platform status
- Add to retargeting audience (Facebook, Google Ads)
- Trigger SDR outreach sequence
- Log event in analytics (Mixpanel, Amplitude)
5. SLA Breach → Multi-Channel Alert
Trigger: CRM task overdue (MQL follow-up task) Actions:
- Send Slack DM to rep
- Send email to rep
- If 2+ hours overdue → Slack DM to manager
- If 4+ hours overdue → reassign in CRM (via webhook back to CRM)
6. Weekly Pipeline Digest
Trigger: Schedule — every Monday at 8:00 AM Actions:
- Query CRM for pipeline summary (total value, new deals, stale deals, expected closes)
- Format as summary
- Post to Slack #sales-team
- Send email digest to sales leadership