Partnerships
Templates and workflows for co-marketing campaigns, development integrations, partner intros, and customer-sharing arrangements.
Partnership Types
Not all partnerships are the same. Track them separately because the workflow, value exchange, and success metrics are completely different:
- Co-Marketing — Joint content, campaigns, events. Shared audiences, shared costs. Value: brand exposure and lead generation for both sides.
- Development / Integration — Building technical connections between products. Shared API, data sync, embedded features. Value: better product for mutual customers.
- Referral / Intros — Partners send you qualified leads (and vice versa). May include commission. Value: warm leads with built-in trust.
- Customer Sharing — Complementary products serving the same customer base. Bundle deals, cross-sell, shared onboarding. Value: lower CAC, higher LTV for both.
- Channel / Reseller — They sell your product under their brand or alongside their services. Value: distribution you couldn't build alone.
- Ecosystem / Alliance — Long-term strategic alignment. Joint roadmap, shared customers, co-investment. Value: market positioning and competitive moat.
Page Structure
🤝 Partnerships
│
├── 📊 Overview
│ ├── Callout: Active partners count, revenue attributed, intros made
│ ├── DataTable: partners/ (all partners)
│ │ Columns: company, type, status, contactName, revenueAttributed, lastSync
│ └── Kanban: partners/ grouped by status
│ prospect → negotiating → onboarding → active → expanding → churned
│
├── 📝 Co-Marketing
│ ├── Active Campaigns (DataTable: campaigns/ filtered by type=co_marketing)
│ │ Columns: name, partner, channel, status, startDate, budget, leads
│ ├── Campaign Templates
│ │ ▶ Joint Webinar Template
│ │ Partner: [name], Topic: [topic], Date: [date]
│ │ Checklist:
│ │ □ Agree on topic and audience
│ │ □ Create shared landing page
│ │ □ Draft email sequences (both sides)
│ │ □ Prepare slides / content
│ │ □ Promote to respective audiences
│ │ □ Host event
│ │ □ Share leads and follow up
│ │ □ Measure results and debrief
│ │
│ │ ▶ Joint Blog Post Template
│ │ □ Agree on topic and angle
│ │ □ Decide: co-authored or guest post exchange?
│ │ □ Draft and review
│ │ □ Cross-publish / cross-link
│ │ □ Promote on social (tag each other)
│ │
│ │ ▶ Social Media Swap Template
│ │ □ Exchange brand assets and messaging
│ │ □ Agree on posting schedule
│ │ □ Create posts highlighting each other's product
│ │ □ Track engagement metrics
│ │
│ │ ▶ Bundle / Discount Promotion Template
│ │ □ Define bundle offer (your product + theirs)
│ │ □ Set discount structure and revenue split
│ │ □ Create co-branded landing page
│ │ □ Agree on promotion window
│ │ □ Track redemptions by partner
│ │
│ └── Past Campaign Results
│ DataTable: campaigns/ filtered by status=completed
│ Columns: name, partner, leads, conversions, revenue, roi
│
├── 🔧 Integrations
│ ├── Active Integrations (DataTable: integrations/)
│ │ Columns: partner, type, status, apiVersion, sharedCustomers, health
│ ├── Integration Playbook
│ │ ▶ Phase 1: Discovery (1-2 weeks)
│ │ □ Technical call: understand their API and data model
│ │ □ Map use cases: what do shared customers need?
│ │ □ Define scope: one-way sync? bidirectional? embedded?
│ │ □ Agree on timeline and resources
│ │
│ │ ▶ Phase 2: Build (2-8 weeks)
│ │ □ Exchange API credentials / sandbox access
│ │ □ Define data mapping and transformation rules
│ │ □ Build integration (webhooks, polling, or SDK)
│ │ □ Handle auth (OAuth, API keys, JWT)
│ │ □ Error handling and retry logic
│ │ □ Write tests
│ │
│ │ ▶ Phase 3: Test (1-2 weeks)
│ │ □ End-to-end testing in sandbox
│ │ □ Invite beta customers to test
│ │ □ Fix edge cases
│ │ □ Load test if applicable
│ │
│ │ ▶ Phase 4: Launch (1 week)
│ │ □ Co-create announcement (blog, email, social)
│ │ □ Update respective marketplaces / directories
│ │ □ Enable for all customers
│ │ □ Monitor for errors
│ │
│ │ ▶ Phase 5: Maintain (ongoing)
│ │ □ Monthly health check on error rates
│ │ □ API version updates
│ │ □ Quarterly sync on feature requests
│ │ □ Track shared customer growth
│ │
│ └── Integration Ideas / Backlog
│ DataTable: integration-ideas/ sorted by customerRequestCount desc
│ Columns: partner, description, customerRequests, effort, priority
│
├── 🔄 Referrals & Intros
│ ├── Referral Partner List (DataTable: partners/ filtered by type=referral)
│ │ Columns: company, contactName, referrals, conversions, commissionPaid
│ ├── Inbound Referrals (DataTable: referrals/ filtered by direction=inbound)
│ │ Columns: leadName, referredBy, date, status, dealValue
│ ├── Outbound Referrals (DataTable: referrals/ filtered by direction=outbound)
│ │ Columns: referredTo, partner, date, status, reciprocated
│ ├── Referral Agreement Template
│ │ ▶ Parties: [Your Company] and [Partner]
│ │ ▶ Scope: mutual referral of qualified leads
│ │ ▶ Commission: X% of first-year revenue (or flat fee)
│ │ ▶ Tracking: referral code / UTM / intro email CC
│ │ ▶ Payment terms: net 30 after customer pays
│ │ ▶ Duration: 12 months, auto-renew
│ │ ▶ Exclusions: existing pipeline, self-sourced leads
│ └── Intro Request Template
│ "Hi [Partner Contact],
│ Would love to introduce [Lead Name] at [Lead Company] to you.
│ They're looking for [what partner provides] and I think you'd
│ be a great fit. Want me to make the intro?
│ [context on the lead]"
│
├── 👥 Customer Sharing
│ ├── Shared Customer Map (DataTable: shared-customers/)
│ │ Columns: customer, yourProduct, partnerProduct, jointRevenue, health
│ ├── Cross-Sell Playbook
│ │ ▶ Identify overlapping customer base
│ │ ▶ Agree on messaging: how to position each other's product
│ │ ▶ Create shared onboarding flow for mutual customers
│ │ ▶ Set up revenue attribution and reporting
│ │ ▶ Monthly sync on shared customer health
│ └── Bundle Offer Template
│ ▶ Your product + their product at combined discount
│ ▶ Revenue split: [X%/Y%]
│ ▶ Co-branded landing page
│ ▶ Shared success metrics
│
├── 📋 Partner Onboarding
│ ├── New Partner Checklist
│ │ ▶ Introductory call completed
│ │ ▶ Mutual value proposition defined (what each side gets)
│ │ ▶ Partnership type classified (co-marketing, integration, referral, etc.)
│ │ ▶ Agreement / MOU signed
│ │ ▶ Partner added to CRM (partners/ entity created)
│ │ ▶ Shared Slack channel or communication channel set up
│ │ ▶ First joint activity scheduled
│ │ ▶ Success metrics agreed upon
│ │ ▶ Quarterly review cadence set
│ └── Partner Offboarding
│ ▶ Notify shared customers (if applicable)
│ ▶ Disable integrations
│ ▶ Final commission settlement
│ ▶ Update partner status to "churned"
│ ▶ Retrospective: what worked, what didn't
│
└── 📊 Partner Performance
├── DataTable: partners/ with calculated metrics
│ Columns: company, type, referrals, revenue, campaigns, sharedCustomers, roi
├── Quarterly Review Template
│ ▶ What worked this quarter
│ ▶ Key metrics vs targets
│ ▶ Customer feedback on integration/partnership
│ ▶ Next quarter priorities
│ ▶ Expansion opportunities
└── Partnership ROI Calculator NotesEntity Schemas
{
"Partner": {
"path": "@partners/(id:nanoid)",
"file": "[data].json",
"fields": {
"company": { "type": "string", "required": true },
"contactName": { "type": "string", "required": true },
"contactEmail": { "type": "string", "required": true },
"contactPhone": { "type": "string" },
"type": { "type": "string", "required": true },
"status": { "type": "string", "default": "prospect" },
"tier": { "type": "string", "default": "standard" },
"ownerUserId": { "type": "string" },
"agreementUrl": { "type": "string" },
"commissionRate": { "type": "string" },
"referralsMade": { "type": "number", "default": 0 },
"referralsReceived": { "type": "number", "default": 0 },
"revenueAttributed": { "type": "number", "default": 0 },
"sharedCustomers": { "type": "number", "default": 0 },
"integrationStatus": { "type": "string" },
"lastSync": { "type": "string" },
"nextReview": { "type": "string" },
"notes": { "type": "string" }
},
"oplog": true,
"softDelete": true
},
"Campaign": {
"path": "@campaigns/(id:nanoid)",
"file": "[data].json",
"fields": {
"name": { "type": "string", "required": true },
"partnerId": { "type": "string", "required": true },
"type": { "type": "string", "required": true },
"channel": { "type": "string" },
"status": { "type": "string", "default": "planning" },
"startDate": { "type": "string" },
"endDate": { "type": "string" },
"budget": { "type": "number" },
"budgetSplit": { "type": "string" },
"leads": { "type": "number", "default": 0 },
"conversions": { "type": "number", "default": 0 },
"revenue": { "type": "number", "default": 0 },
"deliverables": { "type": "array" },
"notes": { "type": "string" }
},
"refs": {
"partner": { "model": "Partner", "field": "partnerId", "type": "belongsTo" }
},
"oplog": true,
"softDelete": true
},
"Referral": {
"path": "@referrals/(id:nanoid)",
"file": "[data].json",
"fields": {
"partnerId": { "type": "string", "required": true },
"direction": { "type": "string", "required": true },
"leadName": { "type": "string", "required": true },
"leadCompany": { "type": "string" },
"leadEmail": { "type": "string" },
"status": { "type": "string", "default": "introduced" },
"dealValue": { "type": "number" },
"commissionAmount": { "type": "number" },
"commissionPaid": { "type": "boolean", "default": false },
"referredDate": { "type": "string" },
"convertedDate": { "type": "string" },
"notes": { "type": "string" }
},
"refs": {
"partner": { "model": "Partner", "field": "partnerId", "type": "belongsTo" }
},
"oplog": true,
"softDelete": true
}
}Co-Marketing Workflow
Partner Pipeline:
prospect — Identified, no contact yet
negotiating — Discussing terms and mutual value
onboarding — Agreement signed, setting up collaboration
active — Running campaigns, integrations, or referrals
expanding — Growing scope (new channels, deeper integration)
churned — Partnership ended (track why for future reference)
Campaign Lifecycle:
planning — Defining scope, assets, timeline
creating — Building content, landing pages, integration
promoting — Live: emails sent, posts published, event running
completed — Campaign over, measuring results
archived — Results documented, lessons learnedPartnership Scoring
Not all partnerships deserve equal time. Score them on three axes to decide where to invest:
Audience Overlap (1-5)
How much does their audience match your ICP?
1 = no overlap, 5 = perfect match
Strategic Value (1-5)
How much does this partnership strengthen your position?
1 = nice to have, 5 = critical to strategy
Execution Effort (1-5)
How much work to activate and maintain?
1 = minimal, 5 = significant ongoing investment
Score = (Audience + Strategic) - Effort
8+ → Invest heavily (dedicated partner manager)
5-7 → Active management (monthly syncs)
2-4 → Lightweight (quarterly check-ins)
<2 → Deprioritize or sunsetTips
- Always define mutual value first. If you can't articulate what the partner gets, the partnership will die.
- Start small. A single co-marketed blog post tells you more about partnership quality than a 20-page agreement.
- Track referrals bidirectionally. Partners who only take and never give should be reclassified or sunsetted.
- Use the
nextReviewfield. Filter your DataTable to see which partners are due for a check-in. - When making intros: always do double opt-in. Ask both sides before connecting them.
Related Templates
Based ships built-in templates that complement this playbook:
- Partnership Pipeline Workflow — identify to launch pipeline
- Partnership Hub — central page for a strategic partnership