All Templates
Revenue Operations • Advanced • 1 n8n workflow

Partner Introduction Approval System

Turn an approved Crossbeam signal into a Salesforce-verified partner introduction. Claude drafts the email, the mapped account owner approves in Slack, and only then can a Gmail draft be saved.

By Luka Salagishvili at Uptune

Last updated:

0

One system, 1 connected workflow

Start with the complete package and setup directions. The preview below shows the entry workflow. Import every listed workflow separately, then connect their references in your n8n instance.

Get the workflow Read the setup directions

Entry workflow preview

Powered by n8n.io

Read the architecture, decision rules, and exception handling in the source blueprint .

Continue with the related architecture guide .

How it works

What this workflow does

Turn a permissioned Crossbeam signal into a reviewed partner introduction. An authenticated webhook validates the signal and partner mapping, reads the Salesforce account, maps its owner to a Slack member, drafts the email with Claude, and asks that owner to approve it. A Gmail draft is created only after approval and only when the draft option is enabled.

The workflow imports inactive with dryRun: true. Run with sample data uses a fictional partner, signal, and Salesforce account, so the preview does not call Salesforce, Claude, Slack, or Gmail.

This is a pipeline-development layer within the AI Revenue Operating System blueprint and the Revenue Operations Intelligence architecture.

Validate the signal and the account

Validate shared partner signal requires a stable signal ID, a Salesforce account ID, a business domain, an approved partner key, shareApproved: true, and a short approval context. The partner contact name and email come from Setup, never from the model or the signal text.

The Salesforce lookup must return exactly one account. Its website host must match the signal domain, and its owner must map to a Slack member ID in ownerSlackIds. A mismatched website, unknown partner, or unmapped owner stops before drafting. The Data Table keyed by the signal ID prevents a serial replay from starting another review.

Draft, approve, and check again

Claude receives only the approved account name, partner name, and context. The returned subject must be one line and the message must stay within the configured limits. The partner address comes from the approved partner mapping, not from the draft. The Slack request shows the recipient and the full draft, then waits up to two days for the mapped account owner.

Only that owner can approve. createDraftAfterApproval is false by default. When enabled and the decision is approved, the workflow re-reads the Salesforce account and requires the owner to be unchanged before reserving and creating the Gmail draft. It records the draft ID and marks the signal draft_ready.

Validation scope

The supplied report confirms the isolated n8n 2.47.4 import, inactive state, and sample path. It also covers structural checks, unshared-signal and domain-mismatch rejection, owner-change blocking, and recipient mapping. Live Crossbeam relay, Salesforce, Claude, Slack, and Gmail calls require a staging test with your accounts.

How to use

Before you start

  • A current n8n instance with Data Table support.
  • A Crossbeam connector or trusted relay that verifies data-sharing eligibility.
  • Salesforce OAuth access to the account records and owners you will review.
  • A Claude API key and an available model.
  • A Slack app with signed approvals and Capture Who Responded support.
  • A Gmail OAuth account for creating approved drafts.

1. Import and run the sample

Download the complete package, extract the ZIP, and read the full setup guide. Import partner-intro-approval.n8n.json and keep it inactive.

Open Run with sample data and choose Test workflow. Check partner email draft should return a sample subject, message, recipient, and Slack review text.

2. Create the state table

Create an n8n Data Table with text columns event_key, status, detail, and result_id. Enter its ID in Setup. The workflow stores the signal ID, review state, owner ID, and Gmail draft ID.

3. Configure partners and owners

In Setup, populate partners with an approved key, contact name, and email for each partner. Populate ownerSlackIds with Salesforce owner IDs mapped to Slack member IDs.

The Salesforce account must have a Website matching the signal domain. The mapped owner becomes the only reviewer for that account. Set claudeModel to a model your account can use.

4. Connect credentials

  • Select Salesforce OAuth2 API on both account lookup nodes.
  • Add a Header Auth credential on Draft introduction with Claude using x-api-key: <Claude API key>. The workflow sends anthropic-version: 2023-06-01.
  • Configure the Slack approval credential on Ask account owner to approve.
  • Select the Gmail OAuth credential on Save partner introduction in Gmail.
  • Add a private inbound Header Auth credential on Receive event.

5. Send an approved signal

The upstream Crossbeam connector or relay supplies signalId, salesforceAccountId, accountDomain, partnerKey, shareApproved: true, and a short approved context. Forward only signals covered by your sharing agreement. Use the supplied test payloads to check the signal, Salesforce account, and approval shapes.

6. Stage the approval and draft

Start with createDraftAfterApproval false. Confirm the approval request goes to the mapped owner and that a different Slack user cannot approve. Enable Gmail drafts only after the account matching, owner mapping, and permissions are verified.

Process signals with the same ID serially. If the Salesforce owner changes while review is pending, the flow stops before Gmail; reconcile and submit a fresh review for the new owner. If delivery leaves draft_pending, check Gmail before clearing the entry.

Use the AI Inbound Lead Routing & Sales Follow-Up System or HubSpot Intelligent Lead Routing & Response System for inbound ownership. The Proposal Draft & Slack Approval System and Tender Bid Review System apply the same reviewer-gated pattern to commercial documents. Read the AI Revenue Operating System blueprint for the wider revenue process.

By Luka Salagishvili at Uptune

Luka shares practical workflow templates and automation guides at Uptune, covering connected business tools, implementation steps, and testing before launch.

Luka on LinkedIn · Book a consultation

Get the complete automation system

Download the workflow and the supporting files together. Extract the ZIP, then import the workflow JSON listed below separately. Configuration, source code, and other supporting files are not n8n workflow imports.

Download complete package (ZIP)

1 connected n8n workflow

It imports inactive. Follow the package setup directions before activating schedules or delivery.

  1. Partner introduction approval workflow

    One authenticated webhook validates an approved Crossbeam signal, verifies the Salesforce account and owner, drafts the introduction with Claude, requests owner approval in Slack, and optionally saves an approved Gmail draft.

    partner-intro-approval.n8n.json
    Download workflow 01

Setup, integration, and validation files

  • Complete setup guide

    Partner and owner mapping, Salesforce and Claude credentials, Slack approval setup, Gmail draft behavior, and replay handling.

    README.md
  • Test payloads

    An approved signal, a Salesforce account, and an owner approval response for the sample path.

    test-payloads.json
  • Supplied validation report

    Isolated n8n 2.47.4 import, sample-path result, structural checks, and file hashes. Live provider authentication and calls were not executed.

    validation-report.txt