Define the exact Momentum automation boundary
This page owns rollout validation, not comparison or general automation design. Use CRM automation for category concepts, workflow integration for architecture, and CRM integration practices for broader authority patterns.
Freeze Momentum edition, tenant, workflow version, Salesforce edition/schema, Slack workspace, installed app, scopes, channels, source systems, model/prompt version, integration identities, time zone, observation window, and owners. Momentum’s official permissions overview documents Slack-centered workflows and Salesforce read/write access; its integration page describes summaries, fields, Slack posts, and Salesforce updates. These are capability statements, not reliability results.
Map triggers, objects, fields, actions, owners, and channels
Create one row per workflow: trigger/event and source; eligibility; object and immutable ID; fields read; context window; condition; action; CRM object/field; Slack workspace/channel/thread; notification recipient; write authority; expected latency; dedupe key; retry; error owner; rollback; retention; and evidence.
Assign authority per field and event. Salesforce may own opportunity stage, amount, owner, consent, and account identity; Momentum may propose a note or derived field; Slack may display and collect an approved action. Never call all three “the source of truth.” Protect opportunity, suppression, identity, and finance-controlled fields from unapproved writes.
Keep the workflow purpose narrow enough to observe. The broader sales workflow automation guide covers process selection; this test should name one trigger-to-effect chain, its business consequence, and its fallback owner. Inventory every notification separately from every CRM mutation, because a correct Slack alert does not prove that a field write was correct.
Seed golden CRM and Slack cases
Use synthetic Accounts, Contacts, Opportunities, users, channels, calls, notes, and tasks with stable IDs. Include nulls, invalid picklists, similar account names, multiple contacts, private/public/Connect channels, active/inactive owners, suppressed people, missing parents, stale notes, contradictory context, and permitted/prohibited fields.
Each case defines source state, event, expected CRM changes, expected Slack message/channel/thread, forbidden effects, latency objective, cleanup, and evidence. Disable production workflows and external communication. Verify the exact state, not merely a success banner.
Test duplicate, replay, ordering, late, and missing events
Send the same event twice, replay after acknowledgment loss, deliver updates out of order, delay them past a decision window, omit one event, and deliver a child before its parent. Idempotency means repeated delivery creates the same business state as one delivery: no duplicate note, task, Slack post, CRM update, or notification.
Use event ID plus workflow/version and target identity as a dedupe contract. Record whether stale events are rejected, reconciled, or applied. A late “deal won” post in the wrong channel can be as harmful as a missing field update.
Test retry, timeout, limits, tokens, and deprovisioning
Inject Slack 429, Salesforce validation error, timeout before acknowledgment, 5xx, token expiry, revoked scope, partial batch, network outage, and recovery. Slack’s official rate-limit documentation describes HTTP 429 with Retry-After; Salesforce’s developer guidance recommends backoff. Do not infer Momentum’s internal retry behavior—observe it.
Record attempts, backoff, duplicate effects, dead-letter/error visibility, alert, recovery, and residual mismatch. Test removal of a user and integration token mid-flight, then prove queued work cannot execute under stale authority.
Test owner changes, merges, deletes, and permissions
Change owner active-to-active and active-to-inactive; merge duplicate Contacts and Accounts; delete or archive source records; reparent Contacts; close/reopen Opportunities; change channel membership; and remove the app. Verify IDs, relationships, tasks, notes, thread links, and strongest suppression state.
Use least privilege. Test forbidden reads and writes explicitly, plus private-channel access, Slack Connect boundaries, field-level security, record sharing, deprovisioning, and audit evidence. See CRM data quality for ongoing ownership.
Gate stale context and prompt injection in AI steps
If a workflow summarizes or extracts with AI, freeze allowed sources, timestamps, instructions, schema, evidence links, confidence/abstention, and human-review rules. Seed stale CRM text, malicious instructions inside notes or Slack messages, contradictory sources, unsupported claims, sensitive data, and missing evidence.
The model must treat retrieved content as data, not authority to change instructions. Hard-fail fabricated facts, wrong-account attribution, ungrounded CRM writes, instruction-following from untrusted content, and sensitive disclosure. Preserve raw source, output, prompt/version when contractually permitted, reviewer, and final accepted change.
Measure precision, reconciliation, latency, and recovery
- Action precision = correct allowed actions ÷ all executed actions.
- Reconciliation = eligible golden cases in expected final state ÷ eligible cases.
- Duplicate rate = unintended extra effects ÷ eligible events.
- Recovery completeness = affected cases correct after recovery ÷ affected cases.
- Latency = accepted target effect time − source commit time; report median, p95, maximum, and failures.
Report by workflow, object, direction, channel, owner state, and failure type. Freeze clocks and polling interval. Averages cannot offset prohibited writes or suppressed-recipient actions.
Rehearse rollback and run a bounded pilot
Before production, export workflow/configuration, field values, channel mappings, IDs, permissions, and golden state. Define stop switches in order. Rollback must reverse only Momentum-created effects while preserving legitimate later changes; use a change journal and compare-and-set rules.
Pilot one team, limited workflows, named channels, and approved fields. Reconcile daily, retain a manual fallback, inject at least one controlled failure, and expand only after the declared observation window passes hard gates.
Apply the worked example and calculate TCO
This fictional example is not Momentum performance. Of 100 eligible events, 97 finish in the expected state. Fifty actions execute; 48 are correct. Two duplicate effects occur. An outage affects 20 cases and 19 recover. The sorted latency set has a fictional p95 of 12 minutes.
| Measure | Calculation | Result |
|---|---|---|
| Reconciliation | 97 ÷ 100 | 97% |
| Action precision | 48 ÷ 50 | 96% |
| Duplicate rate | 2 ÷ 100 | 2% |
| Recovery | 19 ÷ 20 | 95% |
| p95 latency | 95th percentile | 12 minutes |
If gates require zero duplicates, 100% recovery, zero prohibited writes, complete suppression, and 99% reconciliation, the run fails. Term TCO = licenses + integrations + implementation + admin/monitoring + security/privacy + review + remediation/incidents + training + exit. A fictional $40,000 contract plus $20,000 implementation, $15,000 operations, $8,000 security/review, $7,000 training, and $10,000 remediation/exit totals $100,000.
Publish exact edition, integrations, versions, mappings, scopes, event load, results, failures, rollback, TCO, and retest triggers. No hands-on or vendor-performance claim is made.