FS-DOC-03Operations
Process Runbook / SOP
Pricing Approval Workflow
[YourCompany.com] · Sales Department · Prepared by FullSpec · [Today's Date]
This runbook is the day-to-day operating guide for the Pricing Approval Workflow. It tells your sales team and admins exactly what the automation does at each stage, what the one remaining human step is, how to handle exceptions when something goes wrong, and who to call when you need help. FullSpec builds, monitors, and maintains the automation end to end. Your team's only job in the live process is to make the approval decision when one arrives.
01Process overview
The Pricing Approval Workflow handles every step between a sales rep flagging a non-standard discount or custom price on a HubSpot deal and the final approved or denied decision being recorded in the CRM. Before automation this journey travelled through email threads and Slack messages with no tracking, no reminders, and no audit trail. After automation, the moment a rep submits the request the system validates it, logs it, routes it to the right approver, escalates to finance when thresholds are crossed, and updates HubSpot the instant a decision is made. The only step a human takes is clicking approve or deny when the structured request arrives.
Process name
Pricing Approval Workflow
Trigger
A sales rep marks a HubSpot deal as requiring a pricing exception and completes the request form on the deal record.
Final output
The approved or denied price is written back to the HubSpot deal record, the Google Sheets audit log is updated, and the rep receives a Slack notification with the outcome.
Agents running
Request Intake Agent, Approval Routing Agent, CRM Update Agent
Tools involved
HubSpot, Google Sheets, Slack, Gmail, DocuSign
Weekly volume
Approximately 35 pricing requests per month (roughly 8 to 9 per week)
Human checkpoint
Approver (Sales Manager or Finance Lead) clicks approve or deny in Slack or Gmail when the structured request arrives.
Process owner
[Your name] — responsible for keeping approval thresholds current and confirming the right approvers are listed.
Process Runbook / SOPPage 1 of 4
FS-DOC-03Operations
02Step-by-step: what happens and who acts
What you actually need to do: There is one human step in this entire process. When an approval request arrives in your Slack or inbox (formatted with the deal name, requested discount, and margin impact), you click Approve or Deny. That is it. Every other step listed below is handled automatically by the automation platform and the three agents FullSpec has built.
Step
What happens
Who acts
Type
1
A sales rep opens a HubSpot deal record that requires a non-standard price or discount. They fill in the pricing exception form embedded on the deal, entering the requested discount percentage, the deal value, and a brief reason for the exception, then submit.
Sales Rep
Human
2
The Request Intake Agent detects the new submission in HubSpot, reads all required deal fields, and checks that nothing is missing. If the request is complete, the agent immediately writes a structured entry to the Google Sheets approval log, including the deal name, rep name, discount requested, deal value, and submission timestamp.
Request Intake Agent
Automated
3
The Approval Routing Agent reads the new log entry and checks the discount tier. For standard-tier requests the agent sends a formatted one-click approval message to the Sales Manager via Slack, showing the deal name, requested discount, gross margin impact, and approve or deny buttons.
Approval Routing Agent
Automated
4
If the discount exceeds the manager-only threshold, the Approval Routing Agent simultaneously sends a structured Gmail to the Finance Lead with full deal context and an approve or deny link, escalating the request to the required second approver.
Approval Routing Agent
Automated
5
The approver (Sales Manager or Finance Lead, depending on the tier) clicks the approve or deny button directly inside Slack or the Gmail link. This is the only human action in the automated workflow. The approver may add an optional comment before confirming.
Sales Manager or Finance Lead
Human
6
If no response is received within the configured reminder window, the Approval Routing Agent sends an automatic reminder to the approver. If the request remains unanswered after the escalation window, the agent flags the request as overdue and notifies the process owner.
Approval Routing Agent
Automated
7
Once a decision is recorded, the CRM Update Agent writes the outcome back to the HubSpot deal record, updating the approved price field, the approver name, the decision date, and the approval status property.
CRM Update Agent
Automated
8
The CRM Update Agent sends a Slack notification to the sales rep confirming the outcome. If the request was approved, the message includes the approved price and any conditions noted by the approver. If denied, it includes the reason where one was provided.
CRM Update Agent
Automated
9
With the approved price confirmed, the sales rep updates the quote document and sends it to the prospect for signature through DocuSign. This step sits outside the automation and remains a manual rep action.
Sales Rep
Human
Process Runbook / SOPPage 2 of 4
FS-DOC-03Operations
03Handling exceptions
Situation
What the system does
What you do
Required fields are missing from the HubSpot pricing exception form (for example, no discount percentage or deal value entered)
The Request Intake Agent detects the incomplete submission and does not write an entry to the Google Sheets log. The agent sends a Slack message to the rep listing the missing fields and asks them to resubmit.
No action needed from you unless the rep contacts you for help. Remind them to complete all required fields on the HubSpot deal form before submitting. If the same field is regularly missed, contact FullSpec to discuss making that field mandatory in HubSpot.
A duplicate request is submitted for a deal that already has a pending or completed approval entry in the Google Sheets log
The Request Intake Agent detects the matching deal ID in the log and flags the submission as a duplicate. It sends a Slack message to the rep with a link to the existing request and its current status, and does not create a second log entry.
No action needed. If the rep believes the duplicate is a genuinely new request (for example, the deal terms changed significantly), they should contact you to confirm before resubmitting. You can then clear the original entry from the log and ask the rep to resubmit with updated details.
The approver does not respond within the reminder window (typically 24 hours) and the escalation window also expires
The Approval Routing Agent sends a final overdue alert to the approver and a separate notification to the process owner flagging the deal name, the rep, and the time elapsed. The request remains open in the log and continues to show as pending.
Contact the approver directly and ask them to click the approve or deny link still active in their Slack or Gmail. Do not attempt to manually update the Google Sheets log yourself, as the automation reads from that log to trigger downstream steps. If the approver is unavailable, contact FullSpec at support@gofullspec.com to manually advance the request.
Slack is unavailable or the approver cannot access the interactive message
The Approval Routing Agent falls back to sending a Gmail approval link if Slack delivery fails. If both channels fail, the agent logs the delivery failure in the Google Sheets log and alerts the process owner.
Ask the approver to use the Gmail fallback link. If neither channel is accessible, log the approval decision manually by contacting FullSpec at support@gofullspec.com, who can record the decision on your behalf and trigger the CRM update step. Do not update HubSpot directly during a known system outage, as this may cause a data conflict when the automation recovers.
HubSpot is unavailable when the CRM Update Agent attempts to write back the decision
The CRM Update Agent retries the write-back up to three times at five-minute intervals. If all retries fail, it logs the failure in the Google Sheets approval log with a status of 'CRM update pending' and sends an alert to the process owner.
Once HubSpot is back online the agent will retry automatically. If the retry does not succeed within two hours, contact FullSpec at support@gofullspec.com to trigger a manual write-back. Do not update the HubSpot deal manually in the meantime, as the agent retry may overwrite your entry.
The approved discount tier thresholds are no longer correct because the business has changed its pricing policy
The system continues to route requests using the thresholds set at build time. Requests that should now go to finance may be approved by the manager alone, and vice versa, until the thresholds are updated.
This is a configuration change and must be handled by FullSpec. Contact support@gofullspec.com with the new tier thresholds as soon as the policy changes. Do not attempt to change the routing logic directly. Incorrect thresholds are one of the most common causes of routing errors in this process, so treat any policy change as requiring an immediate update request.
Process Runbook / SOPPage 3 of 4
FS-DOC-03Operations
04Who to contact and when
Fill in the rows marked with placeholders once your team is confirmed. These contacts should be reviewed whenever a team member changes role or leaves the business. Keep this table accessible to anyone on the sales team who might need to raise an issue.
Role
Name
How to reach them
Process owner (sales team)
[Your name]
[Your email or Slack handle]
Sales Manager (approval tier 1)
Renata Solano
[Rep email or Slack handle]
Finance Lead (approval tier 2)
Claire Houten
[Rep email or Slack handle]
Sales Operations
Tom Briggs
[Rep email or Slack handle]
FullSpec builder (technical issues, configuration changes, threshold updates)
FullSpec team
support@gofullspec.com
FullSpec support (general queries, access issues, unexpected behaviour)
FullSpec support
support@gofullspec.com
For any issue where the automation is behaving unexpectedly, a CRM update has not appeared within two hours of a decision, or an approver is reporting they never received a request, contact FullSpec at support@gofullspec.com before making any manual changes to HubSpot or the Google Sheets log. Manual edits during an active issue can interfere with the automation's retry logic.
05Ongoing maintenance
Most of this process runs without any regular action from your team. The items below are the scheduled checks and change triggers that keep the automation accurate and reliable over time. FullSpec handles all technical maintenance; your role is to flag business changes promptly and complete the spot-checks listed as your responsibility.
Whenever discount tiers, approval thresholds, or the pricing policy changes
Contact FullSpec at support@gofullspec.com with the new thresholds before the change takes effect in the business. FullSpec will update the routing logic and confirm the change is live before the next request is processed.
Process owner notifies FullSpec; FullSpec makes the change.
Whenever the HubSpot pricing exception form fields change or new required fields are added
Notify FullSpec before adding or renaming any deal property used in the intake form. The Request Intake Agent reads specific field names; a renamed field will cause the agent to stop writing to the log until the mapping is updated.
Process owner notifies FullSpec; FullSpec updates the field mapping.
Monthly spot-check (first week of each month)
Open the Google Sheets approval log and review the last 30 days of entries. Confirm that every entry has a decision recorded, that no rows show 'CRM update pending' for more than 24 hours, and that the number of entries roughly matches the expected request volume for the period.
Process owner or Sales Operations (Tom Briggs).
Monthly error-log review (first week of each month)
FullSpec reviews the automation platform's error log for failed retries, undelivered Slack messages, and any Gmail delivery failures in the previous month. A summary is sent to the process owner by email if any issues are found.
FullSpec sends the summary; process owner reviews and confirms no business context is missing.
Whenever a team member in the approver or contact list changes role or leaves
Update the Who to contact and when table in this document and notify FullSpec so the Slack and Gmail routing can be updated to reflect the correct approver. Routing a request to a former employee's account will cause it to go unanswered.
Process owner updates this document and notifies FullSpec.
Quarterly volume review (every three months)
Compare actual monthly request volume against the baseline of 35 requests per month used at build time. If volume has increased significantly, review whether the current reminder windows and escalation cadence are still appropriate, and contact FullSpec if adjustments are needed.
Process owner reviews; FullSpec adjusts configuration if required.
The single most common maintenance issue for this process is stale approval thresholds. When the business changes its discount policy and the tier thresholds in the automation are not updated at the same time, requests get routed to the wrong approver level. This means managers approving discounts that should go to finance, or finance receiving low-value requests that waste their time. Treat any pricing policy change as an immediate trigger to contact FullSpec at support@gofullspec.com, not a future task.
Process Runbook / SOPPage 4 of 4