Influencer Campaign Planner
Run ID: 69cbf5da71c097b7b9645d5d2026-03-31Marketing
PantheraHive BOS
BOS Dashboard

Plan an influencer marketing campaign with ideal influencer profiles, outreach templates, contract terms, content guidelines, and ROI tracking framework.

Step 1 of 3: Audience Analysis for Influencer Campaign Planning

This document provides a comprehensive analysis framework for identifying and understanding your target audience, a critical first step in developing an effective influencer marketing campaign. By deeply understanding who you want to reach, you can strategically select the right influencers, craft compelling content, and achieve a higher return on investment.


1. Executive Summary: The Strategic Importance of Audience Analysis

A successful influencer campaign hinges on reaching the right people with the right message, delivered by the right voice. This audience analysis phase establishes the foundational understanding of your target consumers – their demographics, psychographics, behaviors, and content consumption habits. Without this clarity, influencer selection becomes guesswork, content can miss the mark, and campaign objectives are unlikely to be met efficiently. This analysis will directly inform influencer profile development, platform selection, content strategy, and ultimately, campaign ROI tracking.


2. Defining Your Core Target Audience

Before identifying potential influencers, we must paint a detailed picture of the ideal customer you wish to influence. This section outlines the key dimensions of audience segmentation.

2.1. Demographic Profile

  • Age Range: (e.g., 25-40 years old)

Insight:* Different age groups exhibit distinct social media usage patterns and respond to varying content styles.

  • Gender Identity: (e.g., Predominantly Female, Male, Non-binary, or Gender-neutral)

Insight:* Content and influencer types often resonate differently across gender identities.

  • Geographic Location: (e.g., Urban areas in North America, specific states/countries, global)

Insight:* Localized campaigns require geographically relevant influencers; global campaigns need broader reach.

  • Income Level: (e.g., Mid to High-income earners)

Insight:* Influences purchasing power and willingness to spend on certain products/services.

  • Education Level: (e.g., College-educated, Post-graduate)

Insight:* Can correlate with interests and content preferences (e.g., analytical vs. entertainment).

  • Occupation/Industry: (e.g., Tech professionals, stay-at-home parents, small business owners)

Insight:* Helps identify specific pain points and professional interests.

2.2. Psychographic Profile

  • Interests & Hobbies: (e.g., Fitness, sustainable living, gaming, fashion, travel, DIY, technology, cooking)

Insight: Crucial for aligning with influencer niches and content topics. What do they do* in their free time?

  • Values & Beliefs: (e.g., Sustainability, community, innovation, luxury, practicality, family-oriented, social justice)

Insight:* Influencers who embody these values will resonate more authentically and build deeper trust.

  • Lifestyle: (e.g., Busy professionals, adventure seekers, homebodies, early adopters, trend followers)

Insight:* Helps in understanding their daily routines and how a product/service fits into their life.

  • Personality Traits: (e.g., Ambitious, creative, pragmatic, adventurous, community-driven)

Insight:* Guides the tone and style of influencer content.

  • Aspirations & Goals: (e.g., Career advancement, personal growth, financial independence, health improvement)

Insight:* How can your product/service help them achieve their goals?

2.3. Behavioral Profile

  • Purchasing Habits: (e.g., Online vs. in-store, impulse buyers, research-intensive, brand loyalists, price-sensitive)

Insight:* Informs call-to-action (CTA) strategy and messaging.

  • Product/Service Usage: (e.g., Frequent users of specific product categories, early adopters of new tech, hesitant to try new things)

Insight:* Helps tailor messaging to address existing habits or encourage new ones.

  • Brand Engagement: (e.g., Active on social media, review readers/writers, participates in loyalty programs)

Insight:* Indicates their openness to brand interaction and influencer recommendations.

  • Pain Points & Challenges: (e.g., Time constraints, budget limitations, lack of knowledge, desire for convenience, environmental concerns)

Insight:* Identifies the problems your product/service solves and provides angles for compelling content.


3. Audience Content Consumption & Platform Habits

Understanding where your audience spends their time online and what content they engage with is paramount for platform and content strategy.

3.1. Preferred Social Media Platforms

  • Primary Platforms: (e.g., Instagram, TikTok, YouTube, Facebook, Pinterest, LinkedIn, Twitter/X)

Insight:* Where does your audience spend most of their time? This dictates primary campaign platforms.

  • Secondary Platforms: (e.g., Reddit, Twitch, specific forums, niche apps)

Insight:* May offer opportunities for targeted, community-driven engagement.

3.2. Content Formats & Preferences

  • Video: (e.g., Short-form (Reels, TikTok), long-form (YouTube), live streams, tutorials, vlogs)

Insight:* Short-form video dominates engagement for younger demographics; long-form builds deeper trust.

  • Images: (e.g., High-quality photography, infographics, memes, lifestyle shots)

Insight:* Instagram and Pinterest thrive on visual content.

  • Text: (e.g., Blog posts, long-form captions, reviews, thought leadership articles)

Insight:* Relevant for audiences seeking detailed information or thought-provoking content.

  • Audio: (e.g., Podcasts, audio clips)

Insight:* Growing trend for on-the-go consumption and niche topics.

  • Interactive Content: (e.g., Polls, quizzes, Q&A sessions, AR filters)

Insight:* Drives engagement and can provide valuable audience feedback.

3.3. Influencer Affinity & Trust Factors

  • Types of Influencers They Follow: (e.g., Celebrities, macro-influencers, micro-influencers, nano-influencers, experts, educators, lifestyle creators)

Insight:* Different influencer tiers offer varying levels of reach, engagement, and authenticity. Micro/nano often yield higher trust and engagement.

  • Reasons for Following: (e.g., Entertainment, education, inspiration, product recommendations, community, relatability)

Insight: Helps define the role* your chosen influencers should play.

  • Trust Indicators: (e.g., Authenticity, transparency, consistent values, genuine product usage, engagement with followers)

Insight:* Crucial for ensuring brand credibility and converting recommendations into action.


4. Data Sources & Methodology for Audience Insights

To gather the insights outlined above, a multi-pronged approach is recommended:

  • Internal Data:

* CRM Data: Customer demographics, purchase history, engagement.

* Website Analytics (Google Analytics): User demographics, interests, behavior flow, traffic sources.

* Social Media Analytics (Facebook Insights, Instagram Insights, TikTok Analytics): Follower demographics, engagement rates, top-performing content, peak activity times.

* Previous Campaign Data: Performance metrics from past marketing efforts.

* Customer Surveys & Feedback: Direct qualitative and quantitative insights from your existing customer base.

  • External Data:

* Market Research Reports: Industry trends, consumer behavior studies.

* Competitor Analysis: Analyze competitor social media followers, engagement, and influencer collaborations.

* Social Listening Tools (e.g., Brandwatch, Sprout Social, Mention): Monitor conversations around your brand, industry, and competitors to identify pain points, trending topics, and sentiment.

* Audience Insight Tools (e.g., SparkToro, SimilarWeb): Discover what audiences read, watch, listen to, and follow.


5. Key Takeaways & Implications for Influencer Strategy

Based on the audience analysis, here are initial strategic implications:

  • Influencer Profile Alignment: The ideal influencer should embody the psychographic traits, values, and lifestyle of the target audience. Their content should naturally integrate into the audience's preferred consumption habits.
  • Platform Prioritization: Focus campaign efforts on the 1-2 primary platforms where the target audience is most active and receptive to brand messages.
  • Content Strategy Direction: Content should address audience pain points, align with their interests, and be delivered in their preferred formats (e.g., short-form video for Gen Z, detailed reviews for tech enthusiasts).
  • Messaging & Tone: The campaign messaging should resonate with the audience's values and aspirations, adopting a tone that aligns with their personality traits (e.g., aspirational, educational, humorous, authentic).
  • Authenticity is Key: Given that trust is a significant factor, prioritize influencers who genuinely align with your brand values and audience's trust indicators. Micro and nano-influencers often excel here due to higher perceived authenticity.

6. Recommendations & Next Steps

6.1. Immediate Recommendations

  1. Refine Audience Personas: Based on this framework, develop 2-3 detailed audience personas that represent your primary target segments. Include names, photos (stock images), detailed demographics, psychographics, and a "day in the life" scenario.
  2. Prioritize Data Collection: If any data points are missing (e.g., specific psychographics, content consumption habits), initiate focused surveys or social listening efforts to fill these gaps.
  3. Identify Core Platforms: Confirm the top 1-2 social media platforms for your campaign based on audience activity and content preferences.

6.2. Next Steps in the Workflow

Following this detailed audience analysis, the next steps in the "Influencer Campaign Planner" workflow will be to:

  • Develop Ideal Influencer Profiles: Translate these audience insights into specific criteria for influencer selection (e.g., follower count, engagement rate, content niche, brand alignment, audience overlap).
  • Outline Campaign Objectives: Define clear, measurable, achievable, relevant, and time-bound (SMART) goals for the influencer campaign, directly informed by audience needs and behaviors.
  • Begin Influencer Research: Start identifying potential influencers who match the developed profiles and can effectively reach the analyzed target audience.

By meticulously executing this audience analysis, you lay a robust foundation for an influencer campaign that is not only impactful but also strategically aligned with your business objectives.

gemini Output

This document outlines a comprehensive plan for executing a successful influencer marketing campaign. It covers everything from identifying the right partners to tracking your return on investment, ensuring your campaign is strategic, measurable, and impactful.


Influencer Campaign Planner: Your Blueprint for Success

Unleash Your Brand's Potential Through Authentic Voices

In today's dynamic digital landscape, influencer marketing offers an unparalleled opportunity to connect with target audiences in a genuine and impactful way. This planner provides the foundational elements to design, launch, and measure an effective influencer campaign that resonates deeply with consumers and drives tangible results for your brand.


1. Campaign Overview & Strategic Objectives

Campaign Title: [Insert Campaign Title - e.g., "Summer Glow Up with [Your Brand Name]"]

Campaign Period: [Start Date] - [End Date]

Core Objective:

To drive [Awareness/Engagement/Traffic/Sales/Leads] for [Your Product/Service] by leveraging the authentic reach and credibility of aligned influencers.

Specific, Measurable, Achievable, Relevant, Time-bound (SMART) Goals:

  • Awareness: Achieve [X] million impressions and [Y] thousand unique reach across all influencer content.
  • Engagement: Generate an average engagement rate of [X]% on influencer posts related to the campaign.
  • Traffic: Drive [X] thousand unique visitors to [Your Website/Landing Page] via influencer links.
  • Conversions: Generate [X] sales/leads directly attributable to influencer campaigns, resulting in [Y]% increase in conversion rate for the promoted product/service.
  • Brand Sentiment: Increase positive brand mentions by [X]% during the campaign period.

2. Ideal Influencer Profiles: Finding Your Perfect Match

Identifying the right influencers is paramount. Our strategy focuses on authenticity, audience alignment, and proven engagement.

Key Criteria for Influencer Selection:

  • Niche & Content Alignment:

* Category: [e.g., Beauty, Fitness, Tech, Lifestyle, Food, Travel, Gaming, Parenting]

* Content Style: Does their aesthetic and tone align with your brand's voice and visual identity? (e.g., aspirational, educational, humorous, authentic, minimalist).

* Brand Fit: Do their personal values and past collaborations reflect positively on your brand?

  • Audience Demographics & Psychographics:

* Age Range: [e.g., 18-24, 25-34, 35-44]

* Gender Split: [e.g., Predominantly Female, Male, Mixed]

* Geographic Location: [e.g., USA (specific states/cities), Global, Europe]

* Interests: Do their followers show interest in products/services similar to yours?

  • Engagement & Performance Metrics:

* Audience Size/Tier:

* Nano-influencers: 1K - 10K followers (High engagement, niche communities)

* Micro-influencers: 10K - 100K followers (Strong community, good reach, cost-effective)

* Macro-influencers: 100K - 1M followers (Wider reach, established presence)

* Mega-influencers/Celebrities: 1M+ followers (Massive reach, high cost, brand building)

Engagement Rate: Aim for above industry average for their follower count. (Calculate: (Likes + Comments + Shares) / Followers 100).

* Authenticity: Look for genuine comments, not just bot activity.

* Past Sponsored Content: Review how they integrate sponsored content – is it seamless and natural?

  • Platform Preference:

* Primary: [e.g., Instagram (Feed, Stories, Reels), TikTok, YouTube, Blog, Pinterest, Facebook, X (Twitter)]

* Secondary: Consider cross-promotion opportunities.

Call to Action: Utilize influencer discovery platforms and manual research to identify potential partners who meet these criteria. Prioritize quality over quantity.


3. Influencer Outreach Strategy & Templates

A personalized and professional outreach approach is key to securing top-tier talent.

Outreach Strategy:

  1. Research & Personalize: Never send generic emails. Reference specific content, posts, or achievements of the influencer.
  2. Clearly State Value: Immediately convey what's in it for them – beyond just monetary compensation (e.g., creative freedom, exposure to a new audience, alignment with a reputable brand).
  3. Be Concise & Professional: Respect their time. Get straight to the point.
  4. Provide Next Steps: A clear call to action.

Template 1: Initial Outreach Email

Subject: Collaboration Opportunity: [Your Brand Name] x [Influencer's Handle] - [Campaign Title]

Hi [Influencer Name],

My name is [Your Name] and I’m the [Your Role] at [Your Brand Name]. I've been following your work on [Platform - e.g., Instagram/TikTok] for a while, and I'm consistently impressed by your [specific compliment, e.g., "authentic approach to beauty reviews," "engaging travel content," "thoughtful fashion styling"]. Your recent post about [mention a specific post/story] particularly resonated with us.

At [Your Brand Name], we create [briefly describe your product/service and its unique selling proposition - e.g., "sustainable skincare products that deliver radiant results," "innovative tech gadgets designed for productivity"]. We're launching an exciting new campaign, "[Campaign Title]," focused on [briefly explain campaign theme/goal - e.g., "empowering individuals to embrace their natural beauty," "showcasing the perfect travel essentials"].

We believe your unique voice and engaged audience would be a perfect fit to authentically share our message. We're looking for partners to create [type of content - e.g., "a series of engaging Reels and Stories," "a dedicated YouTube video and blog post"] highlighting [specific product/feature].

Would you be open to a brief call next week to discuss this potential collaboration further and share more details about our vision and compensation structure? Please let me know your availability.

Thank you for your time and consideration!

Best regards,

[Your Name]

[Your Title]

[Your Brand Name]

[Your Website]

[Link to your social media]


Template 2: Gentle Follow-up Email

Subject: Following Up: Collaboration Opportunity with [Your Brand Name]

Hi [Influencer Name],

Hope you're having a great week!

I'm just following up on my email from [Date of previous email] regarding a potential collaboration opportunity with [Your Brand Name] for our "[Campaign Title]" campaign.

We're really keen to partner with creators like yourself who genuinely connect with their audience, and we feel your [mention specific quality again, e.g., "ability to tell compelling stories," "eye for stunning visuals"] would be invaluable to this project.

No worries if you're busy, but if this is something that interests you, I'd still love to schedule a quick chat to elaborate on the campaign and how we envision working together.

Please let me know if you're available for a brief call sometime next week.

Thanks again,

[Your Name]

[Your Brand Name]

Call to Action: Personalize each outreach message. Track your outreach efforts and follow up strategically.


4. Influencer Contract Key Terms

A clear, legally sound contract protects both your brand and the influencer. These are essential clauses to include:

Key Contractual Elements:

  1. Scope of Work (SOW):

* Deliverables: Specific content types (e.g., 1 Instagram Feed post, 3 Instagram Stories, 1 TikTok video, 1 Blog post).

* Content Details: Required mentions, hashtags, tags, links, call-to-action.

* Timeline: Content submission deadlines, publish dates, approval windows.

* Platforms: Where content will be published.

  1. Content Rights & Usage:

* Ownership: Who owns the raw and published content? Typically, the influencer owns the raw, brand gets usage rights.

* Usage License: Granting the brand rights to repost, repurpose, and use the content for marketing purposes (e.g., on brand social channels, website, paid ads).

* Usage Duration: Specify the period the brand can use the content (e.g., 6 months, 1 year, perpetual).

* Exclusivity: If the brand wants exclusive rights, clearly define the scope (e.g., exclusive use for X months, no competing brand promotions for Y months).

  1. Compensation & Payment Terms:

* Fee Structure: Flat fee, tiered payment based on performance, product-only, affiliate commission.

* Payment Schedule: [e.g., 50% upfront, 50% upon content approval; or Net 30 days after publication].

* Invoicing: Requirements for invoice submission.

* Product Gifting: If applicable, state value and shipping details.

  1. Disclosure Requirements:

* Compliance: Strict adherence to FTC guidelines (USA), ASA (UK), or local regulatory bodies.

* Mandatory Tags: Clear use of #Ad, #Sponsored, #BrandPartner, or equivalent.

* Placement: Disclosure must be prominent and easily visible.

  1. Content Approval Process:

* Draft Submission: Influencer submits content drafts for review by the brand.

* Revision Rounds: Define the number of revision rounds allowed.

* Approval Timeline: Brand commits to reviewing and providing feedback within a specific timeframe (e.g., 48 hours).

  1. Performance Metrics & Reporting:

* KPIs: Clearly state which metrics will be tracked (e.g., impressions, reach, engagement, clicks, conversions).

* Reporting: Influencer agrees to provide analytics screenshots or a summary report post-campaign.

  1. Termination Clause:

* Conditions under which either party can terminate the agreement (e.g., breach of contract, failure to meet deadlines, brand reputational damage).

* Consequences of termination (e.g., partial payment, return of products).

  1. Confidentiality: Non-disclosure of campaign specifics or proprietary information.
  2. Representations & Warranties: Influencer confirms content is original, they have rights, and they will comply with all laws.

Call to Action: Always consult with legal counsel to draft or review influencer contracts to ensure full compliance and protection.


5. Content Guidelines & Creative Brief

Empower influencers with a clear vision while allowing creative freedom.

Creative Brief Components:

  1. Campaign Theme & Core Message:

* Overall Theme: [e.g., "Embrace Your Natural Beauty," "Unlock Your Productivity Potential"]

* Key Message: What is the single most important takeaway you want the audience to remember?

* Brand Voice: [e.g., Empowering, Fun, Informative, Luxurious, Authentic, Edgy]

  1. Product/Service Focus:

* Specific Product(s) to Feature: [List product names, key features, benefits]

* Key Selling Points: 2-3 essential points to communicate.

* Desired User Experience: How should the product be shown in use?

  1. Call to Action (CTA) for Audience:

* Primary CTA: [e.g., "Shop now at [link]," "Use code [CODE] for X% off," "Learn more at [link in bio]," "Download our app," "Tag a friend who needs this!"]

* Secondary CTA (Optional): [e.g., "Follow @YourBrandName"]

  1. Visual & Aesthetic Guidelines:

* Mood Board/Reference Images: Provide visual examples of desired aesthetics, colors, lighting, and overall vibe.

* Do's: [e.g., Natural lighting, authentic reactions, high-quality visuals, diverse representation, lifestyle shots.]

* Don'ts: [e.g., Overly filtered images, blurry content, misrepresenting product capabilities, controversial topics.]

* Brand Logo/Product Placement: How should the product be featured? Prominently, subtly?

  1. Technical Specifications:

* Image Resolution: High-res (min. 1080px on shortest side).

* Video Length: [e.g., Reels: 15-30 sec, TikTok: 30-60 sec, YouTube: 3-5 min].

* Aspect Ratios: [e.g., Instagram Feed: 1:1, 4:5; Stories/Reels/TikTok: 9:16].

  1. Mandatory Inclusions:

* Required Hashtags: [e.g., #YourBrandName, #YourCampaignTitle, #Ad, #Sponsored]

* Required Tags: [@YourBrandName]

* Link in Bio/Swipe Up: Ensure correct link is used.

  1. Prohibited Content:

* Avoid specific competitors, political statements, hate speech, or content that contradicts brand values.

Call to Action: Provide this brief well in advance of content creation, allowing influencers ample time to develop their creative concepts.

gemini Output

This document outlines a comprehensive plan for launching and managing a successful influencer marketing campaign. It covers everything from identifying the right influencers to tracking the return on investment (ROI), ensuring a structured and effective approach to leveraging influencer partnerships.


Influencer Campaign Planner: Optimized & Finalized Deliverable

1. Campaign Overview & Strategic Goals

Campaign Title: [Insert Campaign Title, e.g., "Spring Refresh Product Launch"]

Campaign Period: [Start Date] – [End Date]

Overall Objective: To successfully launch [Product/Service Name] by generating authentic buzz, driving brand awareness, and ultimately increasing [e.g., website traffic, sales, sign-ups].

Specific, Measurable, Achievable, Relevant, Time-bound (SMART) Goals:

  • Awareness: Achieve X million impressions and Y thousand unique reach across all influencer content within the campaign period.
  • Engagement: Drive an average engagement rate of Z% on influencer posts and generate A thousand comments/shares.
  • Traffic: Increase website traffic by B% from influencer-driven links.
  • Conversion: Generate C sales/leads directly attributable to influencer unique codes/links.
  • Brand Sentiment: Improve positive brand mentions by D% post-campaign.

2. Ideal Influencer Profiles

Identifying the right influencers is crucial for campaign success. Our ideal influencer profiles are categorized by tier, focusing on authenticity, audience alignment, and engagement.

  • Nano-Influencers (1k - 10k followers)

* Characteristics: Highly niche, strong community trust, excellent engagement rates (typically 5-10%+), authentic connection with followers.

* Role in Campaign: Drive authentic testimonials, user-generated content (UGC), deep engagement within specific micro-communities. Ideal for grassroots awareness and detailed product reviews.

* Key Metrics: Engagement Rate, Comment Quality, Niche Relevance.

  • Micro-Influencers (10k - 100k followers)

* Characteristics: Established niche authority, growing reach, good engagement rates (typically 3-7%), perceived as relatable experts.

* Role in Campaign: Generate targeted reach, demonstrate product use cases, drive consideration and traffic. Often provide a good balance of reach and authenticity.

* Key Metrics: Engagement Rate, Audience Demographics (alignment), Click-Through Rate (CTR) potential.

  • Mid-Tier Influencers (100k - 500k followers)

* Characteristics: Broader reach within a specific industry, professional content creators, strong brand affinity potential.

* Role in Campaign: Elevate brand visibility, drive significant traffic, and provide a halo effect for brand credibility.

* Key Metrics: Reach, Impressions, Conversion Potential, Professional Content Quality.

  • Macro-Influencers (500k - 1M+ followers)

* Characteristics: Wide audience reach, often celebrities or well-known personalities, high production value.

* Role in Campaign: Maximize brand awareness, create a significant splash, and drive mass traffic. Used strategically for major launches.

* Key Metrics: Total Reach, Impressions, Brand Mentions, Media Value.

General Selection Criteria for All Tiers:

  • Audience Alignment: Demographics, interests, and values of their audience must match our target customer.
  • Engagement Rate: Prioritize engagement over follower count. A healthy rate indicates an active and loyal audience.
  • Brand Fit & Authenticity: Influencer's personal brand, content style, and values should align with our brand's image and messaging.
  • Content Quality: High-quality visuals, clear audio, compelling storytelling.
  • Past Performance: Evidence of successful brand collaborations, positive sentiment in comments.
  • Red Flags: Evidence of bot followers, low engagement despite high follower count, controversial content, lack of proper disclosure in past campaigns.

3. Influencer Outreach Strategy & Templates

Our outreach strategy focuses on personalization, clear value propositions, and professional communication.

Outreach Strategy:

  1. Research & Personalization: Thoroughly research each influencer's content and audience before contact. Reference specific posts or aspects of their work to demonstrate genuine interest.
  2. Clear Value Proposition: Articulate what's in it for the influencer (e.g., exciting product, fair compensation, creative freedom, partnership potential).
  3. Concise & Professional: Get straight to the point, respect their time, and maintain a professional tone.
  4. Multi-Channel Approach: Utilize email primarily, but consider Instagram DM for initial contact if email is not readily available (always follow up with email).

Outreach Email Template: Initial Contact

Subject: Collaboration Opportunity: [Your Brand Name] x [Influencer's Name/Handle] for [Campaign Title]

Body:

Hi [Influencer's Name],

My name is [Your Name] and I'm the [Your Title] at [Your Brand Name]. I've been following your work on [Platform, e.g., Instagram, YouTube] for a while now, and I'm particularly impressed by your [mention specific post/content style, e.g., "authentic reviews of sustainable products," "creative storytelling in your travel vlogs"]. Your audience's engagement with [specific content relevant to your brand] really caught our eye.

We're launching an exciting new [Product/Service Name or Category, e.g., "eco-friendly skincare line," "innovative productivity app"] called [Product Name] on [Date/Season], and we believe your unique voice and engaged community would be a perfect fit to help us share its story.

We're looking to partner with creators who genuinely resonate with our brand values of [mention 2-3 key brand values, e.g., "sustainability, quality, and innovation"]. Our campaign aims to [briefly state campaign objective, e.g., "showcase how [Product Name] simplifies daily routines"].

Would you be open to discussing a potential collaboration? I'd love to share more details about the campaign, our vision, and how we could create something impactful together. We offer [mention type of compensation, e.g., "competitive compensation," "a combination of product and fee," "performance-based incentives"].

Please let me know if this is something that interests you, and if so, what your availability looks like for a quick chat next week.

Thanks,

[Your Name]

[Your Title]

[Your Brand Name]

[Website Link]

[Social Media Link (Optional)]


Outreach Email Template: Follow-Up (if no response after 3-5 business days)

Subject: Following Up: Collaboration Opportunity with [Your Brand Name]

Body:

Hi [Influencer's Name],

Just wanted to gently follow up on my email from [Date of previous email] regarding a potential collaboration for our upcoming [Product/Service Name] launch.

I understand you're incredibly busy, but I truly believe this partnership could be a great fit given your [reiterate specific alignment, e.g., "passion for sustainable living" or "expertise in tech reviews"].

We're really excited about this campaign and the opportunity to work with creators like yourself. If you're interested, please let me know. If not, no worries at all – I appreciate you taking the time to consider!

Best,

[Your Name]


4. Influencer Contract Terms (Key Considerations)

A robust contract protects both parties and ensures clarity on expectations. The following are essential terms to include:

  • Scope of Work (SOW):

* Specific deliverables (e.g., 1 Instagram feed post, 3 Instagram Stories, 1 TikTok video).

* Required platforms (e.g., Instagram, TikTok, YouTube, Blog).

* Posting schedule and deadlines for content submission/approval.

* Mandatory tags, hashtags, and call-to-actions (CTAs).

  • Compensation:

* Agreed-upon fee (flat fee, per deliverable, performance-based, product-only).

* Payment schedule (e.g., 50% upfront, 50% upon completion; net 30 days).

* Payment method (e.g., bank transfer, PayPal).

  • Content Rights & Usage:

* Ownership: Who owns the raw content?

* License: Grant of perpetual, worldwide, royalty-free license for the brand to use, reproduce, modify, display, and distribute the content across owned channels (website, social media, ads) for specified period or in perpetuity.

* Usage Scope: Define specific channels and types of advertising (paid media, organic social, email, website).

* Exclusivity:

* Campaign Exclusivity: Influencer agrees not to promote competing brands for a specified period before, during, and after the campaign.

* Category Exclusivity: Influencer agrees not to promote products within the same category for a defined period.

  • Disclosure Requirements:

* Mandatory adherence to FTC guidelines (or local equivalents) for transparent disclosure (e.g., #Ad, #Sponsored, #BrandPartner).

* Specific placement and wording requirements for disclosures.

  • Content Approval Process:

* Timeline for submitting drafts for review.

* Number of revision rounds allowed.

* Clear feedback and approval mechanism.

  • Campaign Timeline:

* Start and end dates of the collaboration.

* Key milestones and deadlines.

  • Termination Clauses:

* Conditions under which either party can terminate the agreement (e.g., breach of contract, failure to deliver).

* Consequences of termination (e.g., pro-rata payment, return of product).

  • Confidentiality:

* Influencer agrees not to disclose proprietary campaign information.

  • Indemnification:

* Each party agrees to hold the other harmless against certain liabilities.

  • Governing Law:

* Jurisdiction for legal disputes.

5. Content Guidelines & Creative Brief

A detailed creative brief ensures brand consistency while allowing influencers creative freedom.

Campaign Objectives & Key Messages:

  • Primary Goal: [e.g., drive awareness of new product features, encourage trial, highlight sustainability efforts].
  • Core Message 1: [e.g., "Product X makes your mornings easier."]
  • Core Message 2: [e.g., "Experience unparalleled comfort with Product Y."]
  • Call-to-Action (CTA): [e.g., "Shop now at [link]," "Download the app," "Visit our profile," "Use code [DISCOUNT_CODE] for X% off!"]

Brand Voice & Tone:

  • Voice: [e.g., Informative, Playful, Authoritative, Inspirational, Friendly].
  • Tone: [e.g., Enthusiastic, Empathetic, Direct, Humorous].
  • Keywords/Phrases to Use: [e.g., "effortless," "innovative," "sustainable choice," "game-changer"].
  • Keywords/Phrases to Avoid: [e.g., "cheap," "generic," "too good to be true"].

Mandatory Elements:

  • Product Placement: [e.g., prominently featured in first 5 seconds of video, clearly visible in photo].
  • Hashtags: #[CampaignHashtag], #[BrandName], #[ProductSpecificHashtag], #Ad, #Sponsored.
  • Tags: @[BrandHandle].
  • Links: Unique UTM-tracked link provided by brand.
  • Discount Code: [If applicable, e.g., "Use code [INFLUENCERNAME] at checkout"].
  • Key Features to Highlight: [e.g., "long-lasting battery," "eco-friendly packaging," "vegan ingredients"].

Prohibited Content:

  • Disparaging competitors or other brands.
  • Content that is illegal, offensive, discriminatory, or sexually explicit.
  • Misleading claims about the product.
  • Content featuring alcohol, tobacco, or illegal substances (unless specifically approved and relevant).
  • Using copyrighted music without proper licensing.

Creative Freedom vs. Brand Control:

  • Encouraged: Authentic storytelling, personal anecdotes, creative interpretations of product use.
  • Required: Adherence to core messages, mandatory elements, and brand safety guidelines. We trust your creative judgment to integrate our product seamlessly into your unique content style.

Technical Specifications:

  • Image: Minimum resolution [e.g., 1080x1080 for Instagram feed], high quality, well-lit.
  • Video: Minimum resolution [e.g., 1080
influencer_campaign_planner.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
\n\n\n"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547}\n"); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/\.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/\*\*(.+?)\*\*/g,"$1"); hc=hc.replace(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); } function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}