The Business Situation

Cedar Vale Business Systems is a fictional 42-person provider of managed IT and workplace technology services. Its sales department consists of five account executives and one sales manager. An operations administrator also supports Salesforce configuration and monthly reporting for several hours each week.

Note: This case study is provided as a representative example of the types of AI integration and digital transformation solutions Intelligex designs and delivers. Actual engagements are tailored to each client’s goals, constraints, existing systems, timeline, and available resources, so the approach, tools, and outcomes may vary.

The sales team already used Salesforce for opportunities, Google Workspace for internal collaboration, and Slack for day-to-day communication. However, follow-up management remained personal and largely invisible. Reps flagged emails, added notes to private documents, relied on memory, and occasionally created Salesforce tasks.

The team managed approximately 90 open opportunities and recorded or performed about 220 meaningful follow-up activities each month. An average account executive therefore had 15 to 20 open opportunities at any time.

The sales manager could see opportunity stages and values in Salesforce, but could not reliably answer several operational questions:

  • Does every open opportunity have a specific next action?
  • When is the next action due?
  • Which follow-ups are overdue?
  • What happened during the last contact attempt?
  • Which opportunities require management intervention?
  • Are reminders being resolved or repeatedly ignored?

The objective was not to automate relationship-building or send generic messages without review. The objective was to establish consistent follow-up discipline while allowing each account executive to adapt the message, timing, and approach to the prospect.

The Existing Process

The original process followed a loose sequence:

  1. An account executive created or updated an opportunity in Salesforce.
  2. The rep decided when to follow up, often without recording a date in Salesforce.
  3. The rep flagged an email, wrote a private note, or added a calendar reminder.
  4. After contacting the prospect, the rep sometimes logged a Salesforce task or call.
  5. If no response arrived, the rep moved the email flag or created another private reminder.
  6. Once a week, the sales manager reviewed the pipeline and asked each rep for updates.
  7. The manager manually assembled a summary in Google Sheets for the leadership meeting.

Operational Weaknesses

  • Next actions were not required.
  • Due dates were stored in different places.
  • Activity outcomes were inconsistently recorded.
  • There was no common definition of overdue.
  • Slack reminders depended on the manager.
  • Spreadsheet reporting required repeated reconciliation.

Business Effects

  • Promising conversations could become inactive without visibility.
  • Managers spent time collecting updates instead of coaching.
  • Pipeline stages did not always reflect recent activity.
  • Reps received repeated status questions.
  • Coverage became difficult when a rep was unavailable.
  • Follow-up performance could not be measured consistently.

Salesforce remained the nominal source of truth, but important follow-up details lived outside it. The manager’s spreadsheet was more current for some opportunities, while inbox flags were more current for others. No system had a complete record.

This also created an audit-history problem. A completed activity might show that a call occurred, but not the result, the agreed next action, or the reason an opportunity remained open. The process depended heavily on each rep’s memory and personal organization method.

What the New System Needed to Do

The team defined the requirements before selecting an automation design.

Business and technical requirements
Area Requirement Control
Opportunity intake Every open opportunity must have a concise next action and due date. Salesforce validation prevents incomplete records.
Unique identity Records must be synchronized without creating duplicate tracker rows. The Salesforce Opportunity ID is the permanent key.
Ownership Every open opportunity must have an active owner and Slack mapping. An owner mapping table connects Salesforce users to Slack member IDs.
Outcome recording Completed sales follow-up activities require an outcome. Task validation requires an approved outcome value.
Next-step continuity Completing a normal follow-up must produce the next action. Task completion requires the next action and date unless closure is recommended.
Reminders Owners receive reminders for due and overdue actions without repeated daily noise. Reminder level and last-reminder date are stored.
Escalation Persistent or missing follow-ups must become visible to management. Make creates a Salesforce exception task and posts to a private Slack channel.
Reporting The manager needs a simple operational view without rebuilding a report. Make maintains a protected Google Sheets tracker and dashboard.
Exceptions Integration failures, missing owner mappings, and invalid records need a recovery path. Errors enter an automation log and manual-review queue.
Permissions Sales data must remain restricted to authorized sales and operations staff. Least-privilege Salesforce, Google, Make, and Slack access is used.
Human review Relationship-sensitive messages and opportunity closure remain human decisions. No follow-up message is sent automatically by the core workflow or AI enhancement.
Monitoring The team must know when automation is failing. Failed scenarios are logged, retried, and reported to the automation owner.

The system also needed a manual override. A manager had to be able to reassign an opportunity, correct an invalid due date, close an obsolete exception task, or return a record to manual review without editing the automation.

Implementation Approaches Considered

Follow-up management approaches considered
Approach Connected tools Strengths Limitations Fit
Improve the existing manual process Inbox, calendar, personal notes Little technical setup No shared ownership, weak reporting, inconsistent records Unsuitable for 90 active opportunities
Spreadsheet-led tracker Google Sheets and Slack Familiar interface and low implementation effort Duplicates Salesforce, weak validation, difficult activity history Useful only as a temporary process
Salesforce-only workflow Salesforce reports, tasks, validation, and Flow Strong source-of-truth controls and fewer integrations Does not match the manager’s preferred working view or existing Slack workflow Technically viable, but less convenient for this team
No-code sales database Airtable or a similar database plus automation Flexible views and accessible configuration Creates a second operational database and additional synchronization risk Better when no CRM is already established
Connected CRM workflow Salesforce, Google Sheets, Make, and Slack Retains Salesforce as the source of truth while adding visible reminders and reporting Requires integration monitoring and controlled field mapping Selected approach
Dedicated sales engagement platform CRM plus a specialist sequencing platform Advanced cadence, call, email, and engagement features Higher recurring commitment and more functionality than required Consider later if structured outbound sequences become central

The spreadsheet-only option was rejected because it would make the manager’s tracker a competing system of record. Reps would still have to update Salesforce, creating duplicate entry and reconciliation.

A Salesforce-only design could enforce next actions and create internal tasks. It remains a reasonable alternative for organizations that want all users to work entirely inside Salesforce. Cedar Vale selected a connected design because the manager already relied on Google Sheets for operating reviews and the team responded quickly to Slack notifications.

A separate no-code database was not selected because Salesforce already contained accounts, contacts, opportunity ownership, stages, and activity history. Rebuilding those relationships elsewhere would add synchronization work without solving a missing system capability.

A dedicated sales engagement platform was considered excessive for the current volume. The requirement was follow-up control and visibility, not automated multichannel sequencing.

The Selected Solution

The selected implementation retained Salesforce as the authoritative CRM. Google Sheets became a read-oriented working tracker for management, not a replacement CRM. Make handled synchronization, exception logic, reminders, and monitoring. Slack delivered concise alerts to the sales team.

Selected tool responsibilities
Tool Responsibility Authoritative data
Salesforce Opportunity intake, ownership, next actions, tasks, outcomes, stages, files, and audit history All customer, opportunity, activity, and workflow data
Google Sheets Management tracker, owner mapping, exception views, dashboard, and automation log Slack mappings and non-sensitive reporting configuration
Make Scheduled triggers, field transformation, upserts, reminders, exception tasks, retries, and reconciliation Processing checkpoints and idempotency keys only
Slack Owner reminders, manager escalations, and automation-failure notifications No authoritative opportunity status
Salesforce Files Supporting proposals, summaries, and other opportunity documents Document versions and access history
Optional AI service Generate a reviewable first draft of a follow-up message No authoritative business decisions

The design removed manual spreadsheet maintenance, manager-generated reminder messages, and the need to reconstruct recent activity before each pipeline meeting.

It did not remove human control over sales conversations. Reps still decided how to contact prospects, edited every AI-assisted draft, sent messages themselves, and made opportunity-stage recommendations. Managers retained responsibility for significant closure or reassignment decisions.

System Architecture and Data Flow

  • Intake: Authenticated Salesforce Opportunity and Task records
  • System of record: Salesforce
  • Automation layer: Make scenarios with internal checkpoints and idempotency records
  • Document storage: Salesforce Files linked to opportunities
  • Notifications: A private Slack sales follow-up channel with direct owner mentions
  • Reporting: Protected Google Sheets tracker, exception tabs, and dashboard
  • AI layer: Optional reviewed follow-up drafting after the core workflow is stable
  1. An opportunity is created or changed. Salesforce receives the opportunity name, account, owner, stage, amount, next action, and due date. Salesforce validates required fields before saving. Make detects the changed record on its next scheduled check.

  2. Make validates the event. The scenario verifies that the record has an Opportunity ID, an owner, an open or closed state, and a valid date format. It constructs an event key from the record ID and Salesforce system modification timestamp.

  3. The owner is mapped. Make searches the protected Google Sheets owner-mapping tab using the Salesforce Owner ID. The returned Slack member ID and manager mapping are added to the processing bundle. A missing mapping becomes an exception.

  4. The management tracker is updated. Make searches column A of the tracker for the Salesforce Opportunity ID. It updates the existing row or adds one row if no match exists. The returned row number is written to the automation log.

  5. Compliance conditions are evaluated. An open opportunity without a next action or date enters the missing-action route. An action due today enters the reminder route. An overdue action enters the overdue route. Closed opportunities are marked closed in the tracker.

  6. Slack reminders are sent. Make posts only when the stored reminder level and last-reminder date indicate that a new notification is required. The message includes the owner mention, opportunity name, due date, next action, and Salesforce record link.

  7. An exception task is created when required. For a missing action or an action at least two calendar days overdue, Make searches for an existing open exception task. If none exists, it creates one in Salesforce and stores the returned Task ID on the opportunity and tracker.

  8. A completed sales activity is processed. Make detects a completed follow-up task, validates its outcome, retrieves the related opportunity, and updates the opportunity’s last outcome, last follow-up date, next action, and next-action date.

  9. Resolved exceptions are closed. If the activity creates a valid future next action, Make closes the associated exception task, clears the exception fields, resets the reminder level, and refreshes the tracker row.

  10. Failures are recorded. Failed actions enter an error route. Make writes an automation-log row, increments the retry count when possible, sets a next-retry timestamp, and notifies the automation owner. A recovery scenario retries eligible records.

  11. Weekly reconciliation checks completeness. A scheduled scenario compares open Salesforce Opportunity IDs with tracker IDs. It adds missing rows, refreshes stale rows, and identifies tracker rows that no longer match an accessible Salesforce record.

Make-originated Salesforce changes are written by a dedicated integration user. The general opportunity-change scenario excludes that user to avoid processing its own status updates repeatedly. The originating scenario updates Google Sheets directly after each Salesforce write.

Data Structure

Salesforce contains two related operational record types. An Opportunity is the parent sales record. Standard and custom Task records relate to an Opportunity through the Task WhatId. Google Sheets contains a flattened management view keyed by the 18-character Salesforce Opportunity ID.

Salesforce Opportunity Fields

Important Opportunity fields
Field Type Required Source Purpose and validation
Id Salesforce ID Yes Salesforce Permanent synchronization key; never generated by Make
Name Text Yes Sales rep Opportunity name displayed in reminders
AccountId Salesforce ID Yes Sales rep Connects the opportunity to an account
OwnerId Salesforce ID Yes Sales rep or manager Determines follow-up ownership and Slack mapping
StageName Picklist Yes Sales rep Uses the organization’s existing stage values
Amount Currency No Sales rep Supports management review thresholds
Next_Action__c Text, 255 characters For open records Sales rep or completed Task automation Specific action such as Send revised proposal
Next_Action_Date__c Date For open records Sales rep or completed Task automation Must not be in the past when entered
Last_Follow_Up_Outcome__c Picklist No Make from completed Task Stores the latest approved outcome value
Last_Follow_Up_At__c Date and time No Make Time of the last completed sales follow-up
Last_Follow_Up_Task_ID__c Text, 18 characters No Make Traceability to the activity that updated the opportunity
Follow_Up_Status__c Formula text Yes Salesforce formula Closed, Missing Next Action, Scheduled, Due Today, or Overdue
Days_Overdue__c Formula number Yes Salesforce formula Calendar-day age of an overdue action
Follow_Up_Exception_Type__c Picklist No Make Missing Next Action, Overdue, Owner Mapping, Automation Error, or Manager Review
Follow_Up_Exception_Task_ID__c Text, 18 characters No Make Links the active exception to one Salesforce Task
Reminder_Level__c Number Yes Make Zero for none, then one through four for increasing escalation
Last_Reminder_Date__c Date No Make Prevents repeated reminders on the same day
Supporting_Document_Link__c URL No Sales rep Optional link to a relevant Salesforce File
Automation_Status__c Picklist Yes Make Pending, Processed, Retry Scheduled, Error, or Manual Review
Last_Automation_Run__c Date and time No Make Last meaningful automation update
Retry_Count__c Number Yes Make Explicit recovery-attempt counter
Automation_Error__c Long text No Make Sanitized error summary without credentials or full payloads
CreatedDate Date and time Yes Salesforce Standard audit timestamp
SystemModstamp Date and time Yes Salesforce Change-detection and event-key timestamp

Sales Follow-Up Task Fields

Task fields used to record outcomes and exceptions
Field Type Allowed values or purpose
Id Salesforce ID Returned Task identifier
WhatId Salesforce ID Related Opportunity ID
OwnerId Salesforce ID Account executive or manager responsible
Sales_Follow_Up__c Checkbox Marks a Task as part of the follow-up outcome process
Follow_Up_Outcome__c Picklist Connected – progressing, No response, Rescheduled, Information sent, Meeting booked, Recommend Closed Won, Recommend Closed Lost, Other
Next_Action__c Text Required on completion unless closure is recommended
Next_Action_Date__c Date Required on completion unless closure is recommended
Exception_Type__c Picklist Missing Next Action, Overdue, Owner Mapping, Automation Error, or Manager Review
Automation_Key__c Unique external-ID text Prevents duplicate exception tasks
Status Picklist Uses the organization’s configured open and closed Task statuses
ActivityDate Date Task due date
Description Long text Human-readable exception or activity details
CreatedDate and SystemModstamp Date and time Audit and event-processing timestamps

Google Sheets Structure

Spreadsheet tabs and relationships
Tab Key Purpose
Opportunity_Tracker Opportunity_ID One row per Salesforce opportunity
Owner_Map Salesforce_Owner_ID Maps Salesforce users to Slack members, managers, and backups
Automation_Log Event_Key Records scenario, source ID, timing, result, attempts, and error
Config Config_Key Stores non-secret values such as time zone and channel ID
Dashboard Not applicable Protected formulas, charts, and pivot summaries
Manual_Review Opportunity_ID Filtered view of records requiring human correction

The tracker uses the following column order:

A  Opportunity_ID
B  Opportunity_Name
C  Account_Name
D  Stage
E  Amount
F  Owner_ID
G  Owner_Name
H  Slack_User_ID
I  Next_Action
J  Next_Action_Date
K  Last_Outcome
L  Follow_Up_Status
M  Exception_Type
N  Exception_Task_ID
O  Salesforce_Record_URL
P  Last_Activity_At
Q  Days_Overdue
R  Automation_Status
S  Last_Automation_Run
T  Retry_Count
U  Error_Message
V  Salesforce_System_Modstamp
W  Manager_Review
X  AI_Draft_Status
Y  AI_Draft
Z  Tracker_Updated_At

The Google Sheet is a projection of Salesforce. Users do not edit opportunity stage, next action, outcome, or ownership in the tracker. Protected ranges and a visible notice direct staff to make operational changes in Salesforce.

Workflow Statuses and Ownership

Follow-up workflow statuses
Status Meaning Owner Entry condition Exit condition Reminder or escalation
Scheduled A valid future action exists Opportunity owner Open opportunity with a future date Date becomes due, activity changes the action, or opportunity closes No routine alert
Due Today The next action is due on the current business date Opportunity owner Next-action date equals today Activity is completed, date changes, or day ends One owner reminder
Overdue The next-action date is in the past Opportunity owner Open opportunity with a past date Valid future action is recorded or opportunity closes Owner reminder at day one; exception task from day two
Missing Next Action Action text or date is absent Opportunity owner Legacy, imported, or bypassed record is incomplete Both fields are supplied or opportunity closes Immediate exception task and Slack alert
Exception Task Open A Salesforce task tracks unresolved noncompliance Opportunity owner Missing action or at least two days overdue Compliance is restored or a manager resolves the exception Manager mention at five days
Manager Review Closure, ownership, or risk requires a human decision Sales manager Closure recommendation, ten-day overdue record, or mapping problem Manager records a decision or reassigns the record Daily private manager reminder after the review deadline
Automation Error An integration step did not complete Operations administrator A scenario exhausts its immediate attempt Recovery succeeds or the record is manually corrected Automation channel alert and retry schedule
Closed The opportunity is no longer open Sales manager and opportunity owner Salesforce reports the opportunity as closed Reopening requires a new next action and date No follow-up reminders

A record can move backward when a user clears a required field through an authorized data load, reopens an opportunity without a next action, or completes a Task with data that cannot be mapped. Those records enter Missing Next Action or Manual Review rather than being silently accepted.

Routine activity outcomes do not reject an opportunity. A recommendation to close does not automatically change the stage. It creates a management-review item so the owner and manager can confirm the commercial decision.

Step-by-Step Implementation

Step 1: Prepare the Accounts and Permissions

  1. Confirm Salesforce API access. The Salesforce environment must support authenticated API access for the Make connection. Create a dedicated integration user rather than connecting with a personal sales account.

  2. Create a Salesforce permission set. Grant the integration user read access to Account and User fields required for names and ownership. Grant read and update access to the selected Opportunity fields. Grant read, create, and update access to Task fields. Do not grant broad administrative permissions such as unrestricted organization-wide modification unless a documented requirement makes them necessary.

  3. Create a validation-bypass custom permission. Assign Bypass_Follow_Up_Validation only to the integration user and designated administrators. This allows Make to mark legacy incomplete records as errors while normal users remain subject to next-action validation.

  4. Prepare the Google account. Use an automation-owned Google account or a controlled service identity supported by the organization’s Google administration model. Share only the follow-up workbook with that identity. Reps do not need edit access to the reporting workbook.

  5. Prepare Slack. Create a private channel such as sales-follow-up-alerts and a second restricted channel for automation failures if required. Authorize a Slack application connection in Make and invite the application to the destination channels.

  6. Prepare Make. Create a team or organization workspace controlled by the business, not an individual consultant. Restrict scenario editing to the operations administrator and backup owner. Enable execution-history retention and incomplete-execution handling according to the organization’s operating requirements.

  7. Create connections. Establish OAuth connections for Salesforce, Google Sheets, and Slack. Store the optional AI API key only in the secured Make connection. Do not place credentials in Salesforce fields, Google Sheets, Slack messages, or scenario notes.

  8. Create test identities. Use at least one test account executive, one test manager, and one inactive-user case. Record their Salesforce User IDs and Slack member IDs in the test owner map.

  9. Create a test environment. Use a Salesforce sandbox where available. Otherwise, use clearly prefixed test records, a duplicated Google workbook, a test Slack channel, and inactive cloned Make scenarios. Avoid sending test notifications to production channels.

The implementation does not require direct database credentials or a public webhook. Salesforce, Google, and Slack authenticate through controlled Make connections. Exact connector labels can vary as Make and the connected platforms update their interfaces, but the required permission boundaries remain the same.

Step 2: Build the Intake

The main intake is the authenticated Salesforce Opportunity form. A second intake occurs when a rep completes a Salesforce Task marked as a sales follow-up.

Opportunity intake fields
Field Input control Validation Example
Opportunity Name Required text Use the existing naming standard Easton Dental Group – Managed Services
Account Required lookup Existing Salesforce Account Easton Dental Group
Owner Required user lookup Active Salesforce user Jordan Lee
Stage Required picklist Existing sales-stage values Discovery
Amount Currency Non-negative where supplied 18500
Next Action Required text for open opportunities Five to 255 useful characters Send security questionnaire summary
Next Action Date Required date for open opportunities Today or a future date at entry 2026-07-17
Supporting Document Optional Salesforce File Approved file type and size Security summary PDF

The next-action help text should ask for a specific verb and object. Entries such as Follow up or Check in are allowed technically but discouraged through training. Better entries include Send revised proposal, Confirm security review attendees, or Call procurement about approval date.

The Task layout contains the sales-follow-up checkbox, outcome, next action, and next-action date. Conditional page-layout guidance tells users that closure recommendations do not require another next action, but all other outcomes do.

Because intake is authenticated, public-form spam controls are unnecessary. Salesforce session security, login policy, and user permissions provide access control. The layout includes a short privacy reminder instructing users not to place credentials, payment data, health information, or unrelated sensitive information in activity notes.

Salesforce duplicate rules should continue to identify likely duplicate Accounts and Contacts. Opportunity names are not globally unique because an account can have multiple valid opportunities. Reps receive a warning when an open opportunity has the same account and a substantially similar name, but the automation never attempts to deduplicate opportunities by name.

Attachments are uploaded to Salesforce Files and linked to the Opportunity. An incomplete submission is blocked by validation. A successfully saved record receives the normal Salesforce confirmation and appears in the tracker after the next Make run.

Step 3: Create the System of Record

Create the custom Opportunity and Task fields listed in the Data Structure section. Use API names consistently because Make mappings depend on them. Document each label, API name, type, allowed value, default, and description.

Set these defaults:

  • Reminder_Level__c: 0
  • Retry_Count__c: 0
  • Automation_Status__c: Pending
  • Sales_Follow_Up__c: False unless the Task is created from the follow-up activity action
  • AI_Draft_Requested__c: False
  • AI_Draft_Status__c: Not Requested

Create Salesforce list views for open opportunities due today, overdue opportunities, missing next actions, manager review, automation errors, and recently resolved exceptions. These views provide an operational fallback if Google Sheets is temporarily unavailable.

Configure Automation_Key__c on Task as a unique external-ID text field. Exception task keys follow this pattern:

EXC:{OPPORTUNITY_ID}:{EXCEPTION_TYPE}:{ORIGINAL_DUE_DATE_OR_MISSING}

For example:

EXC:006DEMO000000001AA:OVERDUE:2026-07-20

If two Make executions attempt to create the same exception simultaneously, Salesforce rejects the second unique key. The error route then searches for the existing Task and stores its ID rather than creating another.

Create the Google workbook with the six tabs defined earlier. Freeze the header rows, enable filters, protect formula columns, and use data validation on configuration values. Do not store secrets in the workbook.

In Owner_Map, create these columns:

Salesforce_Owner_ID
Owner_Name
Owner_Email
Slack_User_ID
Manager_Slack_User_ID
Backup_Salesforce_Owner_ID
Active
Reminder_Time
Last_Verified_Date

In Automation_Log, create:

Event_Key
Scenario
Source_Record_ID
Started_At
Finished_At
Duration_Seconds
Result
Attempt_Count
Error_Message
Make_Execution_ID

Configure Make’s internal data store with an event key as its primary key and fields for source ID, source type, processed time, result, and execution ID. This adds an idempotency check before destination actions are performed.

Step 4: Connect the Tools

Salesforce to Make

Use the Salesforce connection owned by the integration user. Configure one scheduled scenario to watch or search changed Opportunity records and a second scenario to watch changed Task records. The underlying requirement is to retrieve records in ascending modification order and retain a checkpoint. Connector labels may vary by version.

The Opportunity source must return the Opportunity ID, account name, owner, stage, amount, next action, next-action date, outcome fields, exception fields, reminder fields, status formula, last modifier, and system modification timestamp.

Exclude records whose last modifier is the Make integration user in the general change scenario. Scenarios that write Salesforce changes also update the tracker directly, so this filter prevents update loops without losing the resulting sheet change.

Make to Google Sheets

Authorize only the specific workbook. Search Opportunity_Tracker by exact Opportunity ID in column A. If no row exists, add one. If exactly one row exists, update it. If more than one row exists, stop the normal route and create a duplicate-tracker exception.

Make to Slack

Authorize the Slack application to post only in the approved private channels. Use Slack member IDs from Owner_Map, not display names or email addresses. Member IDs remain stable when a display name changes.

Make Back to Salesforce

Use Salesforce create and update actions for exception Tasks and Opportunity workflow fields. Capture every returned Salesforce Task ID. Write the Task ID back to the Opportunity and Google tracker before sending the Slack notification.

Primary field mapping
Salesforce source Transformation Google Sheets destination Slack use
Opportunity.Id No change Opportunity_ID Build Salesforce link
Opportunity.Name Trim surrounding whitespace Opportunity_Name Message title
Account.Name Blank if account is inaccessible Account_Name Optional message context
StageName No change Stage Manager escalation context
Amount Numeric value; format only in destination Amount Manager review only
OwnerId Lookup in Owner_Map Owner_ID and Slack_User_ID Owner mention
Next_Action__c Trim and limit message preview Next_Action Reminder text
Next_Action_Date__c Normalize to YYYY-MM-DD Next_Action_Date Due-date text
Last_Follow_Up_Outcome__c Map only approved picklist values Last_Outcome Optional manager context
Follow_Up_Status__c No change Follow_Up_Status Determines alert route
Follow_Up_Exception_Task_ID__c No change Exception_Task_ID Included in escalation context
Automation_Error__c Remove credentials and payload content Error_Message Automation channel only
SystemModstamp Convert to UTC ISO timestamp Salesforce_System_Modstamp Not posted

Use the company’s Salesforce My Domain value to build record links:

https://YOUR_MY_DOMAIN.lightning.force.com/lightning/r/Opportunity/{OPPORTUNITY_ID}/view

Store only YOUR_MY_DOMAIN or the completed non-secret base URL in the Config tab. Validate the host against an approved value before including it in Slack.

Step 5: Build the Core Automation

Automation 1: Opportunity Change Synchronization

  • Trigger: A Salesforce Opportunity is created or modified, checked every five minutes.
  • Conditions: The change was not made by the Make integration user and the event key has not been processed.
  • Actions: Retrieve the full record, validate fields, map the owner, upsert the Google row, evaluate follow-up status, and mark the event processed.
  • Fields updated: Tracker columns A through Z and, when necessary, Salesforce automation or exception fields.
  • Notification: Only missing, due, overdue, mapping, or error conditions generate Slack messages.
  • Exception: Invalid dates, duplicate tracker rows, inaccessible owners, or failed upserts enter Manual Review.

The action order is important:

  1. Construct OPP:{Id}:{SystemModstamp}.
  2. Search the Make data store for that key.
  3. Stop successfully if the key already exists.
  4. Retrieve the Opportunity and related Account and Owner values.
  5. Validate the Opportunity ID and open or closed state.
  6. Search Owner_Map by Owner ID.
  7. Search the tracker by Opportunity ID.
  8. Add or update exactly one row.
  9. Route the record by follow-up status.
  10. Perform required exception or reminder actions.
  11. Update the Salesforce automation fields only when their values need to change.
  12. Write an Automation_Log row.
  13. Create the processed-event data-store record.

Automation 2: Completed Activity Processing

  • Trigger: A Salesforce Task marked as a sales follow-up reaches the organization’s closed Task status.
  • Conditions: Sales_Follow_Up__c is true, WhatId points to an Opportunity, and the event is unprocessed.
  • Actions: Validate outcome fields, retrieve the Opportunity, update its latest outcome and next action, resolve any active exception, and refresh the tracker.
  • Fields updated: Last outcome, last follow-up time, last Task ID, next action, next-action date, reminder level, exception fields, and automation status.
  • Notification: The owner receives confirmation only when an exception was resolved. Managers receive closure recommendations.
  • Exception: Invalid outcomes, missing related records, or closure recommendations enter Manual Review.

For normal outcomes, Make copies the Task’s next action and date to the Opportunity. For Recommend Closed Won or Recommend Closed Lost, Make does not close the Opportunity. It creates a management-review Task and leaves the commercial decision to authorized staff.

If an active exception Task exists and the new action is valid, Make closes the exception Task, clears the exception fields, resets the reminder level to zero, and posts a concise resolution notice.

Automation 3: Daily Follow-Up Compliance Scan

  • Trigger: A weekday schedule at 08:30 in the configured business time zone.
  • Conditions: Opportunity is open and the next action is missing, due today, or overdue.
  • Actions: Calculate escalation level, check notification history, create or reuse an exception Task, update Salesforce, refresh the tracker, and notify Slack.
  • Fields updated: Reminder level, last-reminder date, exception type, exception Task ID, automation status, and tracker status.
  • Notification: Owner at due date and first overdue day; manager from day five; management review at day ten.
  • Exception: Missing Slack mapping sends the message to the restricted manager channel and creates an owner-mapping exception.

The reminder schedule is:

  • Due today: One private-channel message mentioning the owner.
  • One day overdue: Owner reminder with overdue status.
  • Two days overdue: Create or reuse a Salesforce exception Task.
  • Five days overdue: Mention the owner and manager.
  • Ten days overdue: Change the record to Manager Review and request reassignment, closure, or a documented next step.

The scenario checks Last_Reminder_Date__c and Reminder_Level__c before posting. A rerun on the same day updates records but does not duplicate the notification.

Automation 4: Recovery and Reconciliation

  • Trigger: Recovery runs every 15 minutes; reconciliation runs weekly.
  • Conditions: Retry count is below three and the next-retry time has arrived, or an open Salesforce ID is missing from the tracker.
  • Actions: Repeat the idempotent upsert, repair missing mappings when possible, compare record counts, and report unresolved differences.
  • Fields updated: Retry count, automation status, error message, log result, and tracker timestamp.
  • Notification: Operations receives a notice after the third failed attempt or any weekly reconciliation difference.
  • Exception: Records that cannot be recovered remain in Manual Review with the original source ID.

Recovery repeats destination actions, not source creation. It uses the Salesforce ID, Task automation key, and Make event key to make retries safe.

Step 6: Add Approvals, Reminders, and Escalations

Routine reminders do not require approval. They contain factual Salesforce data and do not communicate with prospects. Routine follow-up messages remain manually written and sent by the account executive.

The approval and escalation rules are:

  • Routine next action: Owned and completed by the account executive without manager approval.
  • Closure recommendation below 25,000: Owner confirms the outcome and manually updates the opportunity according to the company’s sales policy.
  • Closure recommendation at or above 25,000: Make creates a manager-review Task before the final stage change.
  • Ten-day overdue opportunity: Manager chooses whether to reassign, close, pause, or retain the opportunity with a documented next step.
  • AI-generated draft: The opportunity owner must review and edit before sending. Risk-flagged drafts also require manager review.

Approval is sequential where two reviews are needed. The owner first confirms the factual outcome. The manager then reviews high-value closure or a risk-flagged AI draft. Parallel approval was not selected because two simultaneous editors could produce conflicting follow-up language or stage decisions.

Owner action is expected within one business day of an exception Task. Manager review is expected within two business days. Exact business-day calculations can be added using a maintained holiday calendar. The representative implementation uses calendar-day escalation to keep configuration simple.

If an owner is unavailable, Make reads Backup_Salesforce_Owner_ID from Owner_Map. The sales manager may reassign the Opportunity and open Tasks in Salesforce. Make detects the new owner and refreshes the Slack mapping.

A rejected closure recommendation returns the Opportunity to the owner with a required future next action. A rejected AI draft is deleted or replaced, and no external message is sent.

Approval evidence consists of the Salesforce Task ID, owner, timestamps, outcome, manager-review status, Opportunity field history, and Make execution log. Slack acknowledgments alone are not treated as approval evidence.

Step 7: Add Documents and File Management

Supporting documents remain in Salesforce Files because they belong to the account and opportunity record. The automation does not copy files into Google Drive or Slack.

Use this naming convention:

OPP-{LAST_6_ID}_{ACCOUNT}_{DOCUMENT_TYPE}_{YYYY-MM-DD}_v01.ext

Examples of document types include Proposal, SecuritySummary, Pricing, and MeetingNotes. Remove restricted characters and shorten account names before applying the file name.

  • Folder relationship: Files are linked to the Salesforce Opportunity rather than stored in a separate operating folder.
  • Version control: Revised documents are uploaded as new versions where appropriate instead of creating unrelated copies.
  • Permissions: File visibility follows Salesforce record and file-sharing permissions.
  • Tracker link: Only an approved Salesforce URL is placed in Supporting_Document_Link__c and the tracker.
  • Replacement: The prior version remains available according to Salesforce retention and access settings.
  • Duplicate handling: Staff check the related Files list before uploading a same-name document.
  • Missing files: A missing document does not stop a general reminder. Stage-specific documents can be added to a separate checklist if required.
  • Failed upload: The user sees the Salesforce upload error and retries there. Make does not mark a file as available unless Salesforce returns a valid link.
  • Archiving: Closed-opportunity files follow the organization’s Salesforce retention policy.

Slack messages contain record links, not file attachments. This avoids uncontrolled document copies and preserves Salesforce access checks.

Step 8: Add Reporting and Operational Views

The Opportunity_Tracker tab provides one row per opportunity. Additional protected tabs use filters or formulas to create operational queues.

Recommended management views
View Filter Owner
New records Created or first synchronized in the last seven days Sales manager
Awaiting action Status is Due Today or Overdue Opportunity owners
Overdue Days_Overdue is greater than zero Sales manager
Incomplete Status is Missing Next Action Opportunity owner
Exceptions Exception_Type is not blank Sales manager and operations
Rejected or returned Manager review returned to owner Opportunity owner
By owner Grouped by Owner_Name and status Sales manager
Upcoming deadlines Next action falls in the next seven days Sales team
Recently completed Last activity occurred in the last seven days Sales manager
Automation failures Automation_Status is Error or Retry Scheduled Operations administrator
Manual review Manager_Review is true or status is Manual Review Sales manager

The Dashboard tab contains counts by owner and status, the age of overdue actions, monthly follow-up outcomes, exception volume, and automation-failure totals. It should not expose detailed customer notes beyond the authorized sales audience.

Useful calculated fields include Days Overdue and automation duration. Google Sheets formulas are protected from normal editors. The manager owns metric definitions; the operations administrator owns formula and data-refresh maintenance.

Event-driven synchronization occurs every five minutes, while the daily compliance scenario refreshes date-sensitive statuses. Weekly reconciliation provides a completeness check. An alert threshold is triggered when any of these conditions occurs:

  • More than five automation errors remain unresolved
  • Any record reaches ten days overdue
  • Any active owner lacks a Slack mapping
  • More than one tracker row uses the same Opportunity ID
  • The tracker’s open-opportunity count differs from Salesforce after reconciliation

Step 9: Add Security and Governance Controls

  • Least privilege: The integration user receives only the object and field permissions required by the scenarios.
  • Role-based access: Reps update their Salesforce records. Managers see the full sales tracker. Operations can monitor integrations without editing commercial decisions.
  • Sensitive fields: Private notes, credentials, payment information, and unrelated personal information are excluded from Google Sheets and Slack.
  • Shared links: The workbook is not shared through public or organization-wide links. Salesforce document links still require authentication.
  • Credential storage: OAuth tokens and AI keys remain in Make connections. Placeholder values such as YOUR_API_KEY are used in documentation.
  • Activity logs: Salesforce field history, Task history, Make execution history, and the Automation_Log tab provide traceability.
  • Former employees: Salesforce, Google, Slack, and Make access is removed through the offboarding process. Opportunities are reassigned before the owner account is disabled.
  • Retention: Opportunity, activity, file, log, and AI-draft retention follow the organization’s documented policies.
  • Backups: Salesforce data exports and controlled copies of workbook configuration are tested periodically.
  • Privacy: Only the minimum customer and prospect information required for follow-up operations is copied to the tracker and Slack.
  • AI restriction: AI receives approved commercial context only. It does not receive credentials, protected personal data, legal advice requests, or complete confidential documents.
  • Human approval: AI output cannot send messages, close opportunities, approve discounts, or change account ownership.

The business should review applicable privacy, records-management, communications, and industry requirements before production use. The representative workflow is not a substitute for legal or regulatory advice.

Step 10: Deploy and Test

  1. Build in the test environment. Create Salesforce fields, the duplicated workbook, test channels, and inactive Make scenarios.

  2. Load sample records. Include scheduled, due, overdue, missing-action, closed, reassigned, and malformed test cases.

  3. Run technical tests. Validate every route, mapping, permission, retry, and idempotency rule.

  4. Run user acceptance testing. Each sales role completes an opportunity update and sales follow-up Task. The manager tests reassignment and exception resolution.

  5. Pilot with one account executive. Run the workflow for one week using a controlled subset of opportunities. Compare Salesforce, the tracker, and Slack daily.

  6. Clean legacy data. Before enforcing validation broadly, assign next actions to all open opportunities or close records that should not remain open.

  7. Enable validation. Activate the Opportunity and Task validation rules after the cleanup and pilot.

  8. Activate scenarios in sequence. Enable Opportunity synchronization first, activity processing second, daily compliance third, and recovery and reconciliation last.

  9. Monitor the first production week. The operations administrator reviews Make runs and Automation_Log entries each business day.

  10. Document rollback. If a material problem occurs, deactivate the Make scenarios, preserve error logs, keep Salesforce validation where safe, and use Salesforce list views as the temporary operating queue.

  11. Communicate the launch. Provide a one-page role guide covering required next actions, outcome values, exception handling, and where to report issues.

The sales manager is the business owner. The operations administrator is the primary technical owner, with a documented backup who can deactivate scenarios, refresh connections, and recover failed records.

Code and Configuration

No custom application code is required for the core implementation. Salesforce validation and formula fields, Make’s native Salesforce, Google Sheets, and Slack actions, and protected Google Sheets formulas provide the required behavior.

The following configuration is still essential and should be treated as production logic.

Opportunity Follow-Up Status Formula

Create Follow_Up_Status__c as a Salesforce text formula:

IF(
  IsClosed,
  "Closed",
  IF(
    OR(
      ISBLANK(Next_Action__c),
      ISBLANK(Next_Action_Date__c)
    ),
    "Missing Next Action",
    IF(
      Next_Action_Date__c < TODAY(),
      "Overdue",
      IF(
        Next_Action_Date__c = TODAY(),
        "Due Today",
        "Scheduled"
      )
    )
  )
)

Days Overdue Formula

Create Days_Overdue__c as a number formula with zero decimal places:

IF(
  AND(
    NOT(IsClosed),
    NOT(ISBLANK(Next_Action_Date__c)),
    Next_Action_Date__c < TODAY()
  ),
  TODAY() - Next_Action_Date__c,
  0
)

Open Opportunity Validation

Create a validation rule that requires next-action text and a date for open opportunities. The custom permission allows only controlled bypass:

AND(
  NOT($Permission.Bypass_Follow_Up_Validation),
  NOT(IsClosed),
  OR(
    ISBLANK(Next_Action__c),
    ISBLANK(Next_Action_Date__c)
  )
)

Use a clear error message such as:

Open opportunities require a Next Action and Next Action Date.

Add a second validation rule to prevent users from entering a past next-action date:

AND(
  NOT($Permission.Bypass_Follow_Up_Validation),
  NOT(IsClosed),
  NOT(ISBLANK(Next_Action_Date__c)),
  Next_Action_Date__c < TODAY()
)

Completed Follow-Up Task Validation

Replace Completed if the Salesforce organization uses a different closed Task status label:

AND(
  Sales_Follow_Up__c,
  ISPICKVAL(Status, "Completed"),
  OR(
    ISBLANK(TEXT(Follow_Up_Outcome__c)),
    AND(
      NOT(
        OR(
          ISPICKVAL(Follow_Up_Outcome__c, "Recommend Closed Won"),
          ISPICKVAL(Follow_Up_Outcome__c, "Recommend Closed Lost")
        )
      ),
      OR(
        ISBLANK(Next_Action__c),
        ISBLANK(Next_Action_Date__c)
      )
    )
  )
)

The error message should explain that a completed follow-up requires an outcome and, unless closure is recommended, a next action and date.

Daily Salesforce Query

If the Make Salesforce connector supports a SOQL search action, the daily compliance scan can use this query. Otherwise, apply the same conditions through the connector’s search fields:

SELECT
  Id,
  Name,
  Account.Name,
  StageName,
  Amount,
  OwnerId,
  Owner.Name,
  Next_Action__c,
  Next_Action_Date__c,
  Last_Follow_Up_Outcome__c,
  Follow_Up_Status__c,
  Days_Overdue__c,
  Follow_Up_Exception_Type__c,
  Follow_Up_Exception_Task_ID__c,
  Reminder_Level__c,
  Last_Reminder_Date__c,
  Automation_Status__c,
  SystemModstamp
FROM Opportunity
WHERE IsClosed = FALSE
AND (
  Next_Action__c = NULL
  OR Next_Action_Date__c = NULL
  OR Next_Action_Date__c <= TODAY
)

At this volume, pagination is unlikely to create a large workload, but the scenario must continue through every returned page. Do not assume the first API page contains all qualifying opportunities. Keep the field selection narrow and schedule searches conservatively to respect Salesforce API limits.

Google Sheets Formulas

Place this formula in Opportunity_Tracker!Q2 and copy it down if Days Overdue is not mapped directly from Salesforce:

=IF(OR($A2="",$L2="Closed",$J2=""),0,MAX(0,TODAY()-$J2))

Create an overdue operational view with:

=IFERROR(
  FILTER(
    Opportunity_Tracker!A2:Z,
    Opportunity_Tracker!L2:L="Overdue"
  ),
  "No overdue opportunities"
)

Create dashboard counts with formulas such as:

=COUNTIF(Opportunity_Tracker!L2:L,"Overdue")

=COUNTIF(Opportunity_Tracker!L2:L,"Due Today")

=COUNTIF(Opportunity_Tracker!R2:R,"Error")

=COUNTIF(Opportunity_Tracker!W2:W,TRUE)

These examples assume a Google Sheets locale that uses commas as function separators. Adjust separators and date handling for the workbook locale.

Make Scenario Configuration

Configure the Opportunity event key as:

OPP:{{Opportunity.Id}}:{{Opportunity.SystemModstamp}}

Configure the Task event key as:

TASK:{{Task.Id}}:{{Task.SystemModstamp}}

Normalize date output using Make’s date functions and the configured business time zone:

formatDate(
  parseDate({{Next_Action_Date__c}}; "YYYY-MM-DD");
  "YYYY-MM-DD";
  "YOUR_BUSINESS_TIME_ZONE"
)

A representative Slack reminder body is:

<@{{Slack_User_ID}}> follow-up is {{Follow_Up_Status}}.

Opportunity: {{Opportunity_Name}}
Next action: {{Next_Action}}
Due date: {{Next_Action_Date}}
Days overdue: {{Days_Overdue}}
Salesforce: {{Salesforce_Record_URL}}

Update the Salesforce opportunity or complete the related follow-up task.

For each Make scenario, add an error-handler route that records the scenario name, source record ID, attempt count, sanitized error, and execution ID. Retry transient rate-limit, timeout, and server errors up to three times. Respect a returned retry interval when the connector exposes one. Do not retry invalid credentials or validation errors without human correction.

Test formulas using scheduled, due, overdue, missing, and closed records. Test Make mappings first with one bundle. Confirm that the returned Google row number and Salesforce Task ID are recorded. Inspect Make execution history and the Automation_Log tab when a result differs from expectations.

Failure Handling and Operational Reliability

Failure scenarios and recovery paths
Failure What the user sees Automated response Manual recovery Owner
Missing next action Salesforce validation error or exception Task Create exception and notify owner Add action and date in Salesforce Account executive
Duplicate Salesforce event No duplicate notification Event key stops repeated processing None unless data is stale Operations
Duplicate tracker row Manual Review entry Stop upsert and log duplicate IDs Retain correct row and remove duplicate Operations
Duplicate exception creation One active Salesforce Task Unique automation key rejects duplicate and retrieves existing Task Merge only if legacy duplicates exist Operations
Invalid outcome Task cannot be completed or enters review Reject unsupported value Select an approved outcome Account executive
Partial completion Salesforce may be updated while Slack is not Log destination state and retry only incomplete actions Verify Salesforce, tracker, and notification status Operations
Salesforce authentication expiry Tracker stops refreshing Scenario fails and alerts through available channels Reconnect the controlled Salesforce connection Automation owner
Google authentication expiry Salesforce remains correct; tracker becomes stale Retry and log failed upsert Reconnect and run reconciliation Automation owner
Slack authentication failure No reminder appears Salesforce exception remains open and failure is logged Reconnect Slack and resend unresolved alerts Automation owner
Unavailable owner Manager receives escalation Use backup mapping where configured Reassign Opportunity and Tasks Sales manager
Failed file upload Salesforce upload error No document link is published Retry upload in Salesforce Account executive
Invalid Salesforce link Slack link does not open Reject unapproved base domain Correct Config value and rerun Operations
Invalid Slack member ID Channel message lacks a valid mention Create Owner Mapping exception Update Owner_Map and replay notification Operations
Rate limit or timeout Delayed tracker update Retry with increasing delay and preserve checkpoint Reduce frequency or batch volume if persistent Automation owner
Three failed retries Record remains in Manual Review Stop automatic retries and notify operations Correct root cause and replay by source ID Operations
Reconciliation difference Weekly exception report Refresh missing or stale rows Investigate permissions, deletion, or mapping changes Operations

Idempotency is applied at two levels. Make stores source event keys, and Salesforce enforces unique exception automation keys. Google Sheets upserts use the immutable Opportunity ID rather than the opportunity name.

The manual-review queue acts as a lightweight dead-letter queue. It contains records that have exhausted retries or require a business decision. Each entry includes the source ID, failure category, last attempt, retry count, sanitized error, and assigned recovery owner.

Staff recover a failed record by correcting the source data or connection, confirming the destination’s current state, resetting Automation_Status__c to Retry Scheduled, and invoking the controlled recovery scenario. They do not create replacement opportunities to work around an automation error.

A Complete Example

On July 15, 2026, account executive Jordan Lee creates an opportunity for a fictional prospect called Easton Dental Group.

Original Opportunity input
Field Value
Opportunity ID 006DEMO000000001AA
Opportunity Easton Dental Group – Managed Services
Stage Discovery
Amount 18,500
Owner Jordan Lee
Next action Send security questionnaire summary
Next-action date 2026-07-17

Salesforce accepts the record because it is open and includes both required follow-up fields. Make detects the change and creates this event key:

OPP:006DEMO000000001AA:2026-07-15T14:22:31Z

Make finds Jordan’s Slack member ID in Owner_Map, adds row 37 to Opportunity_Tracker, and records the status as Scheduled. No Slack alert is sent because the action is not yet due.

On July 17, Jordan sends the security summary and completes a Salesforce follow-up Task. Jordan selects Information sent and enters Schedule technical review as the next action with a date of July 20.

The Task receives sample ID 00TDEMO000000041AA. Make validates the completed Task, retrieves Opportunity 006DEMO000000001AA, and writes these values:

  • Last outcome: Information sent
  • Last follow-up time: July 17 at the Task completion time
  • Last follow-up Task ID: 00TDEMO000000041AA
  • Next action: Schedule technical review
  • Next-action date: 2026-07-20
  • Follow-up status: Scheduled

The security summary remains a Salesforce File related to the Opportunity. No duplicate document is created in Google Sheets or Slack. The tracker contains only the approved Salesforce record link.

Jordan does not complete the next action by July 20. The daily scan sends one due-today message. On July 21 it sends the first overdue reminder. On July 22, the action is two days overdue, so Make creates an exception Task using:

EXC:006DEMO000000001AA:OVERDUE:2026-07-20

Salesforce returns sample Task ID 00TDEMO000000052AA. Make stores that ID on the Opportunity and tracker, then posts a Slack message mentioning Jordan. The manager is not yet escalated because the record has not reached five days overdue.

Jordan contacts the prospect on July 22. The prospect agrees to a technical review. Jordan completes a new follow-up Task with outcome Meeting booked, next action Prepare technical review agenda, and a July 24 due date.

Make updates the Opportunity, closes exception Task 00TDEMO000000052AA, clears the exception type, resets the reminder level, and updates row 37. The final follow-up status is Scheduled.

If Jordan requests an AI draft for the July 24 follow-up, the optional scenario generates a draft using approved opportunity and activity fields. The draft is stored with Review Required status. Jordan edits it before sending. The automation does not contact Easton Dental Group or close the opportunity automatically.

Implementation Cost

All amounts below are representative planning assumptions, not quoted vendor prices or verified client costs. Current vendor licensing, API access, consumption, taxes, currency, and implementation rates must be confirmed for each organization.

Representative one-time implementation assumptions
Cost item Hours Assumed rate Representative amount
Process discovery and technical design 6 150 per hour 900
Salesforce, Sheets, Make, and Slack configuration 32 150 per hour 4,800
Technical and integration testing 9 150 per hour 1,350
Training, documentation, and deployment 8 150 per hour 1,200
Internal discovery, user testing, and training 24 55 loaded hourly cost 1,320
Total representative one-time economic cost 79 9,570
Representative recurring monthly assumptions
Cost item Core or optional Representative amount Notes
Existing Salesforce, Google Workspace, and Slack licenses Core 0 incremental Existing license costs are retained but excluded from the incremental estimate
Make usage allowance Core 40 Planning allowance only; verify operation volume and current pricing
Monthly maintenance labour Core 110 Two hours at a loaded cost of 55 per hour
AI usage allowance Optional 10 Depends on model, prompt size, output length, and draft volume

The professional implementation amount is optional when the company has internal Salesforce and Make expertise. Internal implementation still requires design, testing, documentation, monitoring, and support time.

Estimated Time and Cost Savings

The representative estimate uses these assumptions:

  • Monthly follow-up volume: 220 activities
  • Current handling time: 9 minutes per activity
  • Current management reconciliation: 6 hours per month
  • New regular handling time: 4 minutes per activity
  • Exception rate: 12 percent, or 26.4 records per month
  • Exception handling time: 6 minutes per exception
  • Monthly automation maintenance: 2 hours
  • New dashboard review: 1 hour per month
  • Loaded hourly labour cost: 55
  • Recurring core software cost: 40 per month
  • One-time implementation cost: 9,570

Current monthly labour hours: Monthly volume × current minutes per record ÷ 60

220 × 9 ÷ 60 = 33.00 direct handling hours

33.00 direct hours + 6.00 reporting hours = 39.00 current monthly hours

New monthly labour hours: Monthly volume × new minutes per record ÷ 60, plus exception handling and maintenance

220 × 4 ÷ 60 = 14.67 regular handling hours

26.4 exceptions × 6 ÷ 60 = 2.64 exception hours

14.67 + 2.64 + 2.00 maintenance + 1.00 dashboard review = 20.31 new monthly hours

Monthly hours recovered: Current monthly labour hours minus new monthly labour hours

39.00 – 20.31 = 18.69 hours recovered per month

Estimated monthly labour value: Monthly hours recovered × loaded hourly labour cost

18.69 × 55 = 1,027.95 per month

Net estimated monthly value: Monthly labour value minus recurring tool costs

1,027.95 – 40 = 987.95 per month

Estimated payback period: One-time implementation cost ÷ net estimated monthly value

9,570 ÷ 987.95 = approximately 9.7 months

Representative monthly comparison
Measure Before After core automation
Labour hours 39.00 20.31
Hours recovered Not applicable 18.69
Labour value at 55 per hour Not applicable 1,027.95
Incremental software allowance 0 40
Net estimated monthly value Not applicable 987.95

Recovered time does not automatically reduce payroll. It can represent additional selling capacity, quicker follow-up, reduced overtime, fewer administrative tasks, more consistent coaching, or the ability to manage a larger pipeline without adding the same amount of coordination work.

Non-financial benefits include clearer ownership, fewer manager follow-ups, more consistent activity outcomes, better coverage during absence, stronger audit evidence, faster pipeline reviews, and a more consistent prospect experience.

Readers should replace the volume, handling time, exception rate, labour cost, maintenance effort, implementation cost, and software allowance with their own measured figures.

Adding AI to the Automation

AI is added only after required fields, deterministic validation, reminders, exception handling, and reporting work reliably. Most of the value in this case comes from normal automation rather than AI.

Handled by Rules

  • Required next-action fields
  • Date validation
  • Exact owner mapping
  • Overdue calculations
  • Reminder thresholds
  • Duplicate event detection
  • Task creation
  • Status updates
  • Reporting filters

Potential AI Uses

  • Draft a personalized follow-up
  • Summarize recent approved activity notes
  • Identify missing context in unstructured notes
  • Suggest a message tone
  • Classify an inbound reply for review
  • Compare similar activity descriptions

Required fields, exact dates, workflow status, ownership, and escalation should not be delegated to AI. They are more reliable and less expensive when implemented with validation, formulas, lookups, and deterministic conditions.

The recommended enhancement creates a reviewable first draft of a follow-up message. It does not send the message.

  • Trigger: The opportunity owner selects AI_Draft_Requested__c and saves the Opportunity.
  • AI input: Contact first name, account name, opportunity stage, next action, next-action date, last approved outcome, up to three approved activity summaries, sender name, and requested tone.
  • System instruction: Draft a concise B2B follow-up using only supplied facts. Do not invent commitments, dates, prices, results, or customer statements.
  • Expected output: Structured JSON containing a subject, body, confidence score, missing-information list, and risk flags.
  • Validation: Make parses the JSON, checks required keys, validates length and confidence, and rejects prohibited content.
  • Record update: Valid output is stored in Salesforce with Review Required status.
  • Human review: The owner edits the draft and sends it through the approved communication tool.
  • Low confidence: Scores below 0.75 enter Manual Review without a send-ready status.
  • Prohibited data: Credentials, payment data, protected health information, legal conclusions, sensitive personal data, and complete confidential documents.
  • Logging: Store request time, model identifier, status, confidence, token or usage data when available, reviewer, and final disposition.
  • Failure behavior: Set Draft Status to Failed and instruct the rep to write the message manually.

Use a secured Make AI connection with a placeholder such as YOUR_API_KEY. The key must not appear in the prompt, workbook, Salesforce record, or log.

The exact reusable system and user prompt is:

SYSTEM INSTRUCTION

You draft concise B2B sales follow-up messages for human review.

Use only facts provided in the user input.
Do not invent meetings, commitments, pricing, deadlines, customer opinions,
product capabilities, attachments, or previous conversations.
Do not make legal, security, financial, or contractual assurances.
Do not use pressure tactics.
Do not state that an attachment is included unless attachment_available is true.
Keep the body under 180 words.
Use a professional and natural tone.
Return valid JSON matching the required schema and no additional text.

USER PROMPT

Create a follow-up draft from the following approved CRM data:

sender_name: {{OWNER_NAME}}
contact_first_name: {{CONTACT_FIRST_NAME}}
account_name: {{ACCOUNT_NAME}}
opportunity_stage: {{STAGE}}
next_action: {{NEXT_ACTION}}
next_action_date: {{NEXT_ACTION_DATE}}
last_outcome: {{LAST_OUTCOME}}
recent_activity_summaries: {{APPROVED_ACTIVITY_SUMMARIES}}
requested_tone: {{REQUESTED_TONE}}
attachment_available: {{ATTACHMENT_AVAILABLE}}

If important context is absent, list it in missing_information.
If the request appears to require legal, contractual, pricing, security,
or other high-risk assurances, add a risk flag and avoid making the assurance.
The human owner will review and edit the draft before sending.

The required structured output is:

{
  "draft_subject": "string",
  "draft_body": "string",
  "confidence": 0.0,
  "missing_information": [
    "string"
  ],
  "risk_flags": [
    "pricing_commitment",
    "contractual_assurance",
    "security_assurance",
    "legal_language",
    "sensitive_data",
    "unsupported_claim"
  ]
}

A valid response might be:

{
  "draft_subject": "Technical review agenda for Easton Dental Group",
  "draft_body": "Hi Taylor,\n\nThank you for confirming the technical review. I am preparing the agenda for our discussion and will focus it on the items covered in the security questionnaire summary.\n\nIf there are additional topics your team would like included, please send them before the review and I will add them for consideration.\n\nBest,\nJordan",
  "confidence": 0.87,
  "missing_information": [
    "Confirmed meeting time was not supplied"
  ],
  "risk_flags": []
}

In Make, parse the returned JSON and apply these conditions in order:

  1. Confirm the response is valid JSON.
  2. Confirm all five required top-level fields are present.
  3. Confirm confidence is a number from 0 through 1.
  4. Confirm the subject and body are within configured length limits.
  5. Confirm no prohibited source fields were sent.
  6. If confidence is below 0.75, set status to Low Confidence.
  7. If any risk flag is present, set status to Manager Review.
  8. Otherwise, store the subject and body with Review Required status.
  9. Clear AI_Draft_Requested__c to prevent repeated generation.
  10. Notify the owner that a draft is available for review.

Malformed output is not repaired silently. Make can attempt one structured retry with the same factual input and an instruction to return valid JSON. A second failure enters Manual Review.

Benefits of the AI Enhancement

The core automation already provides follow-up discipline, ownership, reminders, exception tasks, outcome history, and reporting. AI does not create those benefits.

The AI-specific benefit is a faster first draft when the rep has enough approved CRM context. It can reduce blank-page time, summarize recent activity into a concise message, and apply a more consistent structure.

  • Less time rereading several recent activity notes
  • Faster creation of a usable starting draft
  • More consistent inclusion of the stated next action
  • Visible identification of missing context
  • Risk flags for unsupported assurances
  • Structured output that can be validated before storage

AI output still requires review because tone, commercial judgment, relationship history, and current prospect context may not be fully represented in CRM fields.

What Remains Rule-Based or Human-Controlled

Deterministic and human-controlled decisions
Decision Control Reason
Whether a next action is present Salesforce validation Exact required-field check
Whether an action is overdue Date formula Deterministic calendar comparison
Who owns an opportunity Authorized Salesforce user Commercial accountability and access control
Whether to send a follow-up Account executive Requires current relationship judgment
Final message wording Account executive AI may omit context or use an unsuitable tone
Opportunity closure Account executive and manager under policy High-impact commercial decision
Pricing or discount approval Authorized manager Financial and contractual implications
Legal or security assurances Qualified human reviewer Requires verified language and authority
Exception acceptance Sales manager Requires documented risk ownership

Estimating the Additional Value of AI

The representative AI estimate assumes that 140 of the 220 monthly follow-up activities are suitable for drafting assistance.

  • Drafting time without AI: 3.0 minutes per eligible message
  • Initial review and editing with AI: 1.5 minutes
  • Expected correction rate: 20 percent
  • Extra correction time: 1.5 minutes for corrected drafts
  • Expected service failure rate: 2 percent
  • Manual fallback after failure: 3.0 minutes
  • Monthly AI output sampling: 0.5 hours
  • AI usage allowance: 10 per month

Average AI review time including corrections is:

1.5 + 20 percent × 1.5 = 1.8 minutes per eligible draft

Gross drafting time recovered is:

140 × (3.0 – 1.8) ÷ 60 = 2.80 hours

Failure fallback time is:

140 × 2 percent × 3.0 ÷ 60 = 0.14 hours

Net additional capacity after failure fallback and monthly sampling is:

2.80 – 0.14 – 0.50 = 2.16 hours per month

At a loaded hourly cost of 55, the additional labour value is 118.80. After the 10 AI usage allowance, the representative net additional value is 108.80 per month.

Estimated labour comparison
Process Monthly labour hours
Original manual process 39.00
Core automation without AI 20.31
Core automation with reviewed AI drafts 18.15

These assumptions must be validated during a pilot. AI does not eliminate correction, review, service failure, or the possibility that a rep decides to discard the draft.

Testing Checklist

Use synthetic sample data before processing real prospect or customer information.

Production-readiness test cases
Test Expected result
Normal opportunity submission One tracker row is created with Scheduled status
Missing required field Salesforce blocks the open opportunity save
Invalid past date Validation displays a clear correction message
Duplicate submission Salesforce duplicate guidance appears where configured
Duplicate source event Event key prevents repeated destination actions
Duplicate tracker row Scenario stops and creates a manual-review item
Failed authentication Scenario fails without exposing credentials
Expired credential Operations receives an alert and reconnects the controlled account
Failed Salesforce request Retry is scheduled for a transient error
Failed Google Sheets request Salesforce remains authoritative and reconciliation repairs the tracker
Unavailable approver Backup or manager receives the review item
Closure recommendation rejected Opportunity returns to owner with a required next action
Reassignment Tracker and Slack mapping change to the new owner
Overdue item Status and Days Overdue are correct
Due-today reminder One owner message is sent
Same-day rerun No duplicate reminder is sent
Five-day escalation Owner and manager are mentioned
Failed file upload No invalid file link is written
Failed document retrieval Record remains usable and the missing link is reported
Failed Slack notification Exception remains visible in Salesforce and the failure log
Unauthorized workbook user User cannot open or edit restricted data
Malformed AI output One structured retry occurs, then Manual Review
Inaccurate AI output Human reviewer rejects or edits the draft
AI risk flag Draft enters Manager Review and is not sent
AI service failure Draft status becomes Failed and manual drafting continues
Successful activity completion Outcome and next action update the Opportunity and tracker
Exception resolution Exception Task closes and reminder level resets
Correct reporting Dashboard totals reconcile to Salesforce source records
Correct audit record Source ID, event key, time, result, and execution ID are present
Correct retry behavior Transient errors retry; validation errors wait for correction

Ongoing Maintenance

The sales manager owns the business process. The operations administrator owns technical monitoring. A trained backup must be able to review failures, reconnect services, and deactivate scenarios.

Maintenance schedule
Frequency Task Owner
Daily Review failed Make runs and unresolved automation errors Operations administrator
Daily Review ten-day overdue and manager-review records Sales manager
Weekly Run or inspect Salesforce-to-Sheets reconciliation Operations administrator
Weekly Review exception trends and repeated overdue ownership Sales manager
Monthly Verify active owner and Slack mappings Operations administrator
Monthly Review Make operation usage and AI consumption Automation owner
Monthly Sample AI drafts for unsupported claims and editing effort Sales manager
Quarterly Review Salesforce, Google, Make, and Slack permissions System administrators
Quarterly Test expired credentials, retry behavior, and rollback Automation owner
Quarterly Review picklists, thresholds, prompts, and Slack templates Sales manager and operations
Semiannually Test backup restoration and configuration documentation System administrators
On staff departure Remove access, rotate credentials where required, and reassign records IT and sales management
After platform change Retest connector mappings and field permissions Automation owner

Documentation should include field definitions, scenario diagrams, connection owners, retry rules, configuration values, validation formulas, Slack destinations, AI prompt versions, and the manual-recovery procedure.

When to Move to Dedicated Software

The connected implementation can remain appropriate while Salesforce continues to perform well as the source of truth and the workflow remains understandable to its owners. Replacement is not automatically necessary as volume grows.

Dedicated sales engagement, revenue operations, workflow, or analytics software should be evaluated when several of these conditions appear:

  • Follow-up volume increases enough to create API, polling, or workbook performance concerns
  • The team requires multistep automated email and call sequences
  • Multiple regions need different calendars, languages, policies, or escalation paths
  • Formal regulatory controls require specialized retention or communications supervision
  • Permissions become too complex for a flattened management workbook
  • Exception rates remain high despite process changes
  • Maintaining custom mappings consumes excessive administrator time
  • Multiple CRMs or acquired business units must be integrated
  • Formal audit evidence exceeds the available Make and workbook controls
  • Managers require advanced attribution, forecasting, or engagement analytics
  • Reps need an external customer portal, mobile-first workflow, or offline access
  • Vendor support and contractual service commitments become mandatory
  • AI use expands into governed conversation intelligence or large-scale document analysis
  • Security risk grows because too much operational data is copied into reporting tools

Before replacing the implementation, the business should determine whether Salesforce-native reporting, Flow, a data warehouse, or tighter Make governance can address the new requirement with less disruption.

Implementation Checklist

  • Confirm monthly volume, users, reminder timing, escalation rules, and ownership.
  • Select Salesforce as the system of record and document the role of each connected tool.
  • Confirm Salesforce API access and required platform features.
  • Create controlled Salesforce, Google, Make, and Slack connections.
  • Apply least-privilege permission sets and workbook sharing.
  • Create Opportunity and Task fields with documented API names.
  • Define next-action, outcome, exception, automation, and AI statuses.
  • Create validation rules and the controlled bypass permission.
  • Create the Google Sheets tracker, owner map, log, configuration, and dashboard tabs.
  • Populate and verify Salesforce-to-Slack owner mappings.
  • Define the immutable Opportunity ID and event-key strategy.
  • Configure Opportunity synchronization and exact field mappings.
  • Configure completed-activity processing and outcome updates.
  • Configure daily reminders, exception Tasks, and management escalations.
  • Store returned Salesforce Task IDs on the source Opportunity and tracker.
  • Configure Salesforce Files naming, linking, access, and retention.
  • Protect reporting formulas and operational source columns.
  • Configure error routes, retries, the manual-review queue, and reconciliation.
  • Test duplicate events, partial completion, expired credentials, and failed notifications.
  • Run user acceptance testing with synthetic sample records.
  • Pilot with a limited group before full activation.
  • Document deployment, rollback, monitoring, and manual recovery.
  • Confirm representative implementation and recurring cost assumptions.
  • Replace savings assumptions with measured company figures.
  • Add reviewed AI drafting only after the rule-based workflow is stable.
  • Validate AI prompts, structured output, prohibited data, and human review.
  • Assign a primary maintenance owner and trained backup.
  • Define volume, security, reporting, workflow, and support criteria for evaluating dedicated software.

Department/Function: Sales & Business Development

You need a similar solution?

Get a FREE
Proof of Concept
& Consultation

No Cost, No Commitment!