Advertising disclosure: this guide contains affiliate links. LavaTools may earn a commission from qualifying referrals.

mailroom packing station with three staged parcel boxes and approval clips.
mailroom packing station with three staged parcel boxes and approval clips.
In this guide
  1. Outcome and scope
  2. Prepare the fields and destination
  3. Build the workflow in order
  4. Work through a small example
  5. Handle changes during operation
  6. Estimate cost and usage
  7. Investigate failures
  8. Review before release

Outcome and scope

Build a dispatch workflow that acts only on an approved request. Slack carries the review notification, while a restricted management table records the actual approval. A casual emoji reaction is not the approval mechanism in this design. Keep the approver, approved version and dispatch result together so a changed request cannot inherit an obsolete decision.

Approval covers destination, attachments and action type as well as message text. Decide which changes create a new version, and show the request identifier and summary in the Slack notification.

Prepare the fields and destination

Prepare these fields: Request ID, content version, destination, reviewer, approved version, approval time, dispatch state and result ID. Keep source values separate from a reviewer’s confirmed values, and do not reuse an existing column for a different meaning. Create the first record with practice identifiers in a destination whose read and edit access matches the intended staff roles. Inspect the saved result from that role before using live information.

Hidden columns are not access controls. If the chosen management table cannot enforce the required departmental approval boundary, use an authenticated approval application instead.

Build the workflow in order

Create explicit draft, review, approved, dispatched and exception states. Freeze a destination and content version before sending the review request to Slack. Link to a management surface with controlled editing access, not a public sheet where any recipient could alter the approval columns.

The execution scenario must check that the current content version equals the approved version, in addition to checking an approved flag. A destination or message change sends the request back to review. Keep approval and dispatch responsibilities separate where the organization requires it, and configure the table permissions accordingly.

Recheck the request identifier immediately before dispatch and search for an existing result for that version. Save the returned result ID after sending. A second attempt should stop at the existing result. A spreadsheet alone is not a strong concurrency lock, so higher-risk dispatches need appropriate serialization or a store with enforceable uniqueness.

detail of a closed outgoing envelope with a green binder clip beside an unsealed envelope.
detail of a closed outgoing envelope with a green binder clip beside an unsealed envelope.

Work through a small example

Approve version one of a practice request, then change its destination to create version two. Execution should stop while the approved version remains one. After an authorized reviewer approves version two, dispatch it once. Retrieve the same row again and check that the existing result prevents a second send.

Review cases: Run a Make dispatch only after approval
Review cases: Run a Make dispatch only after approval
StateCheckAction
Not approvedNo approved versionRequest review; do not dispatch
Edited after approvalCurrent2; approved1Return to review
Versions matchCurrent2; approved2Check for an existing result
Ambiguous resultExternal send succeeded; write failedReconcile before resending

Handle changes during operation

Preserve cancellation history. Cancelling before dispatch differs from requesting reversal afterward, and an external action may not be reversible. Do not describe a sent item as unsent simply by changing a local status.

Estimate cost and usage

Separate the cost of reviewing pending requests from notification, dispatch and result storage. Choose a polling interval that matches the required response delay rather than rereading every unapproved request constantly. Include management-table editor seats and the plan required for access control; Make subscription cost alone does not describe the whole approval operation.

A dispatch bench with parcels separated for approval
A dispatch bench with parcels separated for approval

Investigate failures

A status-write failure after a successful send leaves an ambiguous request. Reconcile the external result before choosing to resend. Compare destination, request version and returned delivery identifier. Route uncertainty to an exception state instead of automatically retrying an action whose first outcome is unknown.

Decision flow: Run a Make dispatch only after approval
Decision flow: Run a Make dispatch only after approvalRead review request → Approved version matches?; Approved version matches? → Return for review (No); Approved version matches? → Inspect dispatch history (Yes); Inspect dispatch history → Execute onceNoYesRead review requestApproved version matches?Return for reviewInspect dispatchhistoryExecute onceDecision flow: Run a Make dispatch only after approvalRead review request → Approved version matches?; Approved version matches? → Return for review (No); Approved version matches? → Inspect dispatch history (Yes); Inspect dispatch history → Execute onceNoYesRead reviewrequestApproved versionmatches?Return forreviewInspectdispatchhistoryExecute once

Review before release

Before release, test a normal record, one missing a required value, a repeated identifier and an edited record. Use request id to trace the saved result back to the source. The acceptance condition is: Dispatch the approved version once; changed requests return to review. Record the expected result before testing, compare it with the actual saved state, and resolve unexplained differences before increasing the scope.

Start a small workflow in Make

Try the required workflow with practice data, then choose a plan around its usage and features. Check current prices, promotions and eligibility in the official signup flow.

Sign up on MakeAffiliate link

Estimate costs for your workload

Enter monthly jobs, billable steps and retries to see how different billing units affect your estimate.

Open cost calculator

Official sources

Pricing, availability and feature limits can change. Check the linked official pages before subscribing.

How we compareAdvertising disclosure