Skip to content

Co-Sell Platform Method Flowcharts

For Patent Application Support

Document Classification: Patent Sensitive - Method Documentation Version: 1.0 Date: December 2025


1. Partner Matching Method (Claims 1-3)

1.1 Main Partner Matching Flow

                    PARTNER MATCHING METHOD
    =========================================================

    START
      |
      v
    +----------------------------------+
    | STEP 1: Receive Match Request    |
    | Input: requesting_partner_id     |
    +----------------+-----------------+
                     |
                     v
    +----------------------------------+
    | STEP 2: Load Partner Profile     |
    | - ICP definition                 |
    | - Product categories             |
    | - Target markets                 |
    | - AWS partner tier               |
    +----------------+-----------------+
                     |
                     v
    +----------------------------------+
    | STEP 3: Query Candidate Pool     |
    | Filter: active partners NOT      |
    | already in relationship with     |
    | requesting partner               |
    +----------------+-----------------+
                     |
                     v
    +----------------------------------+
    | STEP 4: For Each Candidate       |<---------+
    +----------------+-----------------+          |
                     |                            |
                     v                            |
    +----------------------------------+          |
    | STEP 4a: Calculate ICP Overlap   |          |
    | - Company size alignment         |          |
    | - Industry Jaccard index         |          |
    | - Geography Jaccard index        |          |
    | - Technology Jaccard index       |          |
    | - Apply weights, sum scores      |          |
    +----------------+-----------------+          |
                     |                            |
                     v                            |
           +---------+---------+                  |
           | ICP Score < 20?   |                  |
           +---------+---------+                  |
               YES  |   | NO                      |
                    |   |                         |
    +---------------+   +------------+            |
    |                                |            |
    v                                v            |
    +----------------+   +-----------+---------+  |
    | DISQUALIFY     |   | STEP 4b: Calculate  |  |
    | Reason:        |   | Product             |  |
    | "Insufficient  |   | Complementarity     |  |
    | ICP overlap"   |   | - Check competition |  |
    +----------------+   | - AI analysis       |  |
                         | - Integration score |  |
                         +-----------+---------+  |
                                     |            |
                                     v            |
                         +-----------+---------+  |
                         | Competition > 70%?  |  |
                         +-----------+---------+  |
                             YES |   | NO         |
                                 |   |            |
                +----------------+   +----+       |
                |                         |       |
                v                         v       |
    +----------------+   +----------------+       |
    | DISQUALIFY     |   | STEP 4c:       |       |
    | Reason:        |   | Calculate      |       |
    | "Direct        |   | Market         |       |
    | competitors"   |   | Alignment      |       |
    +----------------+   +--------+-------+       |
                                  |               |
                                  v               |
                         +--------+-------+       |
                         | STEP 4d:       |       |
                         | Calculate      |       |
                         | Overall Score  |       |
                         | (weighted sum) |       |
                         +--------+-------+       |
                                  |               |
                                  v               |
                         +--------+-------+       |
                         | STEP 4e:       |       |
                         | Run Success    |       |
                         | Prediction     |       |
                         +--------+-------+       |
                                  |               |
                                  v               |
                         +--------+-------+       |
                         | More           |-------+
                         | candidates?    |
                         +--------+-------+
                                  | NO
                                  v
                         +--------+-------+
                         | STEP 5: Rank   |
                         | Results by     |
                         | Overall Score  |
                         +--------+-------+
                                  |
                                  v
                         +--------+-------+
                         | STEP 6: Return |
                         | Ranked Matches |
                         +----------------+
                                  |
                                  v
                                END

1.2 ICP Overlap Calculation Sub-Method

                 ICP OVERLAP CALCULATION METHOD
    =========================================================

    START (partner_a.icp, partner_b.icp)
      |
      v
    +----------------------------------------+
    | STEP 1: Initialize                     |
    | score = 0                              |
    | weights = {size:0.25, industry:0.30,   |
    |            geo:0.25, tech:0.20}        |
    +-------------------+--------------------+
                        |
                        v
    +-------------------+--------------------+
    | STEP 2: Calculate Company Size Overlap |
    | overlap = intersection_length /        |
    |           union_length of size ranges  |
    | score += overlap * 0.25 * 100          |
    +-------------------+--------------------+
                        |
                        v
    +-------------------+--------------------+
    | STEP 3: Calculate Industry Overlap     |
    | intersection = A.industries ∩          |
    |                B.industries            |
    | union = A.industries ∪ B.industries    |
    | jaccard = |intersection| / |union|     |
    | score += jaccard * 0.30 * 100          |
    +-------------------+--------------------+
                        |
                        v
    +-------------------+--------------------+
    | STEP 4: Calculate Geography Overlap    |
    | intersection = A.geography ∩           |
    |                B.geography             |
    | union = A.geography ∪ B.geography      |
    | jaccard = |intersection| / |union|     |
    | score += jaccard * 0.25 * 100          |
    +-------------------+--------------------+
                        |
                        v
    +-------------------+--------------------+
    | STEP 5: Calculate Technology Overlap   |
    | intersection = A.technologies ∩        |
    |                B.technologies          |
    | union = A.technologies ∪               |
    |         B.technologies                 |
    | jaccard = |intersection| / |union|     |
    | score += jaccard * 0.20 * 100          |
    +-------------------+--------------------+
                        |
                        v
    +-------------------+--------------------+
    | STEP 6: Return ROUND(score)            |
    +----------------------------------------+
                        |
                        v
                       END

2. Brand Voice Merging Method (Claims 4-6)

                   BRAND VOICE MERGING METHOD
    =========================================================

    START (brand_a, brand_b, campaign_context)
      |
      v
    +------------------------------------------+
    | STEP 1: Initialize Merged Structure      |
    | merged = {}                              |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 2: Tone Harmonization               |
    |                                          |
    | 2a. Map tones to spectrum values         |
    |     formal=0.9, professional=0.7,        |
    |     business-casual=0.5,                 |
    |     approachable=0.4, casual=0.2,        |
    |     playful=0.1                          |
    |                                          |
    | 2b. Calculate average for each brand     |
    |     avg_a = MEAN(spectrum[t] for t       |
    |             in brand_a.tone)             |
    |     avg_b = MEAN(spectrum[t] for t       |
    |             in brand_b.tone)             |
    |                                          |
    | 2c. Calculate merged position            |
    |     merged_pos = (avg_a + avg_b) / 2     |
    |                                          |
    | 2d. Select closest tones to merged pos   |
    |     (within 0.2 distance)                |
    |                                          |
    | 2e. Include shared tones                 |
    |     shared = brand_a.tone ∩ brand_b.tone |
    |                                          |
    | 2f. Return top 3 harmonized tones        |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 3: Audience Intersection            |
    |                                          |
    | merged.shared_pain_points =              |
    |   brand_a.pain_points ∩                  |
    |   brand_b.pain_points                    |
    |                                          |
    | merged.combined_goals =                  |
    |   brand_a.goals ∪ brand_b.goals          |
    |                                          |
    | merged.demographics = merge_demographics |
    |   (brand_a.demographics,                 |
    |    brand_b.demographics)                 |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 4: Messaging Guidelines Merge       |
    |                                          |
    | merged.do = brand_a.do ∪ brand_b.do      |
    | merged.avoid = brand_a.avoid ∪           |
    |                brand_b.avoid             |
    |                                          |
    | conflicts = identify_conflicts(          |
    |   merged.do, merged.avoid)               |
    +---------------------+--------------------+
                          |
                          v
              +-----------+-----------+
              | Any conflicts found?  |
              +-----------+-----------+
                  YES |       | NO
                      |       |
          +-----------+       +------------+
          |                                |
          v                                |
    +-----+--------------------------------+----+
    | STEP 5: AI Conflict Resolution           |
    |                                          |
    | For each conflict:                       |
    |   resolution = LLM_INVOKE(               |
    |     prompt: "Given brand A avoids        |
    |     '{avoid}' but brand B recommends     |
    |     '{do}', suggest a balanced           |
    |     approach for co-branded content")    |
    |                                          |
    | Update merged guidelines with            |
    | resolutions                              |
    +---------------------+--------------------+
                          |
                          v
    +---------------------+--------------------+
    | STEP 6: Joint Value Proposition          |
    |                                          |
    | prompt = construct_prompt(               |
    |   brand_a.value_propositions,            |
    |   brand_b.value_propositions,            |
    |   brand_a.differentiators,               |
    |   brand_b.differentiators,               |
    |   campaign_context)                      |
    |                                          |
    | merged.joint_value_props = LLM_INVOKE(   |
    |   model: "claude-3-sonnet",              |
    |   prompt: prompt)                        |
    +---------------------+--------------------+
                          |
                          v
    +---------------------+--------------------+
    | STEP 7: Keyword Prioritization           |
    |                                          |
    | all_keywords = brand_a.keywords ∪        |
    |                brand_b.keywords          |
    |                                          |
    | merged.keywords = prioritize_by(         |
    |   all_keywords,                          |
    |   campaign_context.objectives)           |
    +---------------------+--------------------+
                          |
                          v
    +---------------------+--------------------+
    | STEP 8: Co-Branding Guidelines           |
    |                                          |
    | merged.mention_order =                   |
    |   alphabetical OR initiator_first        |
    |                                          |
    | merged.voice_balance =                   |
    |   calculate_balance(brand_a, brand_b)    |
    |   // Default: 50/50                      |
    |                                          |
    | merged.attribution_format =              |
    |   "[Company A] and [Company B]"          |
    +---------------------+--------------------+
                          |
                          v
    +---------------------+--------------------+
    | STEP 9: Return merged brand voice        |
    +------------------------------------------+
                          |
                          v
                         END

3. Campaign Orchestration Method (Claims 7-9)

                 CAMPAIGN ORCHESTRATION METHOD
    =========================================================

    START (relationship, campaign_type, duration_weeks)
      |
      v
    +------------------------------------------+
    | STEP 1: Load Relationship Context        |
    | partner_a = relationship.partner_a       |
    | partner_b = relationship.partner_b       |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 2: Merge Brand Voices               |
    | merged_voice = merge_brand_voices(       |
    |   partner_a.brand_voice,                 |
    |   partner_b.brand_voice,                 |
    |   campaign_type)                         |
    | [See Brand Voice Merging Method]         |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 3: Load Campaign Template           |
    | template = get_template(campaign_type)   |
    |                                          |
    | Templates define:                        |
    | - Asset types per week                   |
    | - Publishing cadence                     |
    | - Distribution channels                  |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 4: AI Campaign Planning             |
    |                                          |
    | campaign_plan = LLM_INVOKE(              |
    |   model: "claude-3-sonnet",              |
    |   prompt: campaign_prompt,               |
    |   output: {                              |
    |     campaign_name: string,               |
    |     objectives: array,                   |
    |     target_audience: object,             |
    |     asset_list: array,                   |
    |     success_metrics: array               |
    |   })                                     |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 5: Generate Content Calendar        |
    |                                          |
    | FOR week = 1 TO duration_weeks:          |
    |   week_assets = select_assets(           |
    |     campaign_plan.asset_list, week)      |
    |                                          |
    |   FOR each asset in week_assets:         |
    |     calendar.add({                       |
    |       date: calculate_date(week, asset), |
    |       asset_type: asset.type,            |
    |       owner: determine_owner(asset),     |
    |       distribution: get_channels(asset), |
    |       status: "planned"                  |
    |     })                                   |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 6: Generate Content Assets          |
    |                                          |
    | FOR each entry in calendar:              |
    |   content = generate_cobranded_content(  |
    |     entry.asset_type,                    |
    |     merged_voice,                        |
    |     campaign_plan.objectives,            |
    |     campaign_plan.target_audience)       |
    |                                          |
    |   assets.add({                           |
    |     calendar_entry: entry,               |
    |     content: content,                    |
    |     approval_status: {                   |
    |       partner_a: "pending",              |
    |       partner_b: "pending"               |
    |     }                                    |
    |   })                                     |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 7: Initiate Dual Approval           |
    |                                          |
    | notify(partner_a, "Review pending")      |
    | notify(partner_b, "Review pending")      |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 8: Return Campaign Package          |
    | {                                        |
    |   plan: campaign_plan,                   |
    |   calendar: calendar,                    |
    |   assets: assets                         |
    | }                                        |
    +------------------------------------------+
                          |
                          v
                         END

4. Dual Approval Workflow Method (Claims 10-11)

                   DUAL APPROVAL WORKFLOW METHOD
    =========================================================

    START (asset)
      |
      v
    +------------------------------------------+
    | STEP 1: Present Asset for Review         |
    | Display to: Partner A, Partner B         |
    +---------------------+--------------------+
                          |
          +---------------+---------------+
          |                               |
          v                               v
    +-----+------+                  +-----+------+
    | PARTNER A  |                  | PARTNER B  |
    | REVIEW     |                  | REVIEW     |
    +-----+------+                  +-----+------+
          |                               |
          v                               v
    +-----+-------+                 +-----+-------+
    | Decision?   |                 | Decision?   |
    +------+------+                 +------+------+
           |                               |
    +------+------+------+         +------+------+------+
    |      |             |         |      |             |
    v      v             v         v      v             v
  APPROVE CHANGES     REJECT    APPROVE CHANGES     REJECT
    |    REQUESTED      |         |    REQUESTED      |
    |       |           |         |       |           |
    +-------+-----------+---------+-------+-----------+
                        |
                        v
              +---------+---------+
              | Evaluate Combined |
              | Status            |
              +---------+---------+
                        |
    +-------------------+-------------------+
    |                   |                   |
    v                   v                   v
+---+---+         +-----+-----+       +-----+-----+
| BOTH  |         | ANY       |       | ANY       |
|APPROVED|        | CHANGES   |       | REJECTED  |
+---+---+         | REQUESTED |       +-----+-----+
    |             +-----+-----+             |
    |                   |                   |
    v                   v                   v
+---+------------+ +----+-------------+ +---+------------+
| STEP 2: Ready  | | STEP 3: Revision | | STEP 4: Asset  |
| for Publishing | | Loop             | | Cancelled      |
+---+------------+ +----+-------------+ +----------------+
    |                   |
    |                   v
    |             +-----+-----+
    |             | Apply     |
    |             | Requested |
    |             | Changes   |
    |             +-----+-----+
    |                   |
    |                   v
    |             +-----+-----+
    |             | Regenerate|
    |             | or Edit   |
    |             | Content   |
    |             +-----+-----+
    |                   |
    |                   v
    |             +-----+-----+
    |             | Re-submit |
    |             | for Review|<--------------+
    |             +-----+-----+               |
    |                   |                     |
    |                   +---------------------+
    |                   (loop until approved or rejected)
    |
    v
+---+------------------+
| STEP 5: Schedule     |
| Publishing           |
| - Set publish time   |
| - Configure channels |
| - Set up tracking    |
+---+------------------+
    |
    v
+---+------------------+
| STEP 6: Execute      |
| Synchronized         |
| Publishing           |
+----------------------+
    |
    v
   END

5. Content Publishing Method (Claims 12-13)

                 CONTENT PUBLISHING METHOD
    =========================================================

    START (asset, partners)
      |
      v
    +------------------------------------------+
    | STEP 1: Verify Dual Approval             |
    | IF NOT (partner_a.approved AND           |
    |         partner_b.approved):             |
    |   RETURN {error: "Pending approvals"}    |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 2: Determine Publishing Strategy    |
    | strategy = asset.distribution_strategy   |
    |   OR "synchronized" (default)            |
    +---------------------+--------------------+
                          |
          +---------------+---------------+
          |               |               |
          v               v               v
    +-----+-----+   +-----+-----+   +-----+-----+
    |SYNCHRONIZED|   | STAGGERED |   |ALTERNATING|
    +-----+-----+   +-----+-----+   +-----+-----+
          |               |               |
          v               v               v
    +-----+-----+   +-----+--------+  +-----+-------+
    | Publish   |   | Partner A    |  | IF index    |
    | to both   |   | at T+0       |  |   % 2 == 0: |
    | at same   |   | Partner B    |  |   A first   |
    | time      |   | at T+2 hours |  | ELSE:       |
    +-----+-----+   +-----+--------+  |   B first   |
          |               |           | Gap: 4 hours|
          |               |           +-----+-------+
          +---------------+---------------+
                          |
                          v
    +------------------------------------------+
    | STEP 3: Generate Tracking Parameters     |
    |                                          |
    | utm_params = {                           |
    |   utm_source: partner_channel,           |
    |   utm_medium: asset_type,                |
    |   utm_campaign: campaign_id,             |
    |   utm_content: asset_id                  |
    | }                                        |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 4: Inject Tracking                  |
    |                                          |
    | For each URL in content:                 |
    |   url = append_params(url, utm_params)   |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 5: Create Cross-References          |
    |                                          |
    | If asset mentions partner:               |
    |   Ensure link to partner's version       |
    |   of the content                         |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 6: Schedule Publishing Jobs         |
    |                                          |
    | For each channel in distribution:        |
    |   job = create_publish_job(              |
    |     channel: channel,                    |
    |     content: asset.content,              |
    |     scheduled_time: publish_time,        |
    |     tracking: utm_params)                |
    |   schedule(job)                          |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 7: Return Confirmation              |
    | {                                        |
    |   success: true,                         |
    |   scheduled_times: [...],                |
    |   tracking_params: utm_params            |
    | }                                        |
    +------------------------------------------+
                          |
                          v
                         END

6. Success Prediction Method (Claims 14-15)

                 SUCCESS PREDICTION METHOD
    =========================================================

    START (partner_a, partner_b, match_scores)
      |
      v
    +------------------------------------------+
    | STEP 1: Extract Features                 |
    |                                          |
    | features = {                             |
    |   // Match quality                       |
    |   icp_overlap: match_scores.icp,         |
    |   product_complementarity:               |
    |     match_scores.product_fit,            |
    |   market_alignment:                      |
    |     match_scores.market_alignment,       |
    |                                          |
    |   // Partner characteristics             |
    |   partner_a_tier: encode(a.tier),        |
    |   partner_b_tier: encode(b.tier),        |
    |   size_difference: |a.size - b.size|,    |
    |                                          |
    |   // Historical signals                  |
    |   a_prev_cosells: a.cosell_count OR 0,   |
    |   b_prev_cosells: b.cosell_count OR 0,   |
    |                                          |
    |   // Industry factors                    |
    |   industry_complement: is_complement(    |
    |     a.industry, b.industry),             |
    |   same_primary_market: has_shared(       |
    |     a.markets, b.markets)                |
    | }                                        |
    +---------------------+--------------------+
                          |
                          v
    +---------------------+--------------------+
    | STEP 2: Check Model Availability         |
    +---------------------+--------------------+
                          |
          +---------------+---------------+
          |                               |
          v                               v
    +-----+------+                  +-----+------+
    | ML MODEL   |                  | HEURISTIC  |
    | AVAILABLE  |                  | FALLBACK   |
    +-----+------+                  +-----+------+
          |                               |
          v                               v
    +-----+------------------+    +-------+----------------+
    | STEP 3a: Model         |    | STEP 3b: Heuristic    |
    | Inference              |    | Calculation           |
    |                        |    |                       |
    | prediction =           |    | base = 0.30           |
    |   ML_MODEL.predict(    |    |                       |
    |     features)          |    | IF icp_overlap > 70:  |
    |                        |    |   base += 0.15        |
    |                        |    | IF product_fit > 80:  |
    |                        |    |   base += 0.20        |
    |                        |    | IF market_align > 75: |
    |                        |    |   base += 0.10        |
    |                        |    | IF industry_compl:    |
    |                        |    |   base += 0.10        |
    |                        |    | IF both_experienced:  |
    |                        |    |   base += 0.15        |
    |                        |    |                       |
    |                        |    | prediction =          |
    |                        |    |   MIN(base, 0.95)     |
    +-----+------------------+    +-------+----------------+
          |                               |
          +---------------+---------------+
                          |
                          v
    +------------------------------------------+
    | STEP 4: Calculate Confidence             |
    |                                          |
    | data_completeness = count_available(     |
    |   features) / count_total(features)      |
    |                                          |
    | historical_depth = MIN(                  |
    |   a_prev_cosells + b_prev_cosells, 10)   |
    |   / 10                                   |
    |                                          |
    | confidence = 0.5 * data_completeness +   |
    |              0.5 * historical_depth      |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 5: Rank Contributing Factors        |
    |                                          |
    | For each feature:                        |
    |   impact = calculate_impact(             |
    |     feature, prediction)                 |
    |                                          |
    | contributing_factors =                   |
    |   sort_by_impact(features)[:5]           |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 6: Identify Risk Factors            |
    |                                          |
    | risks = []                               |
    | IF size_difference > 2:                  |
    |   risks.add("Large size disparity")      |
    | IF tier_mismatch:                        |
    |   risks.add("Partner tier mismatch")     |
    | IF low_icp_overlap:                      |
    |   risks.add("Limited ICP alignment")     |
    +---------------------+--------------------+
                          |
                          v
    +------------------------------------------+
    | STEP 7: Return Prediction                |
    | {                                        |
    |   success_probability: prediction,       |
    |   confidence: confidence,                |
    |   contributing_factors: [...],           |
    |   risk_factors: [...]                    |
    | }                                        |
    +------------------------------------------+
                          |
                          v
                         END

Patent Claims Mapping

Flowchart Patent Claims Novel Elements
Partner Matching Method Claims 1-3 Multi-dimensional scoring with disqualification rules
ICP Overlap Calculation Claim 2 Weighted Jaccard indices across 4 dimensions
Brand Voice Merging Claims 4-6 Tone spectrum harmonization, conflict resolution
Campaign Orchestration Claims 7-9 AI-powered planning with dual-brand templates
Dual Approval Workflow Claims 10-11 Synchronized approval with revision loop
Content Publishing Claims 12-13 Cross-partner coordination with tracking
Success Prediction Claims 14-15 Multi-factor ML/heuristic hybrid model

Document Version: 1.0 For Patent Application Support Confidential - Method Documentation