Untitled

 avatar
unknown
typescript
15 days ago
5.6 kB
5
Indexable
import type { AvatarModel } from "~/types/avatar";

const vslPrompts = {
	base: `Today you are my expert marketing assistant helping me create a Mini VSL (Video Sales Letter). The Mini VSL is designed to build maximum authority and influence in a short time while selling prospects on me and my unique mechanism.

I help [avatar] achieve [core_value] using [offers].`,

	marketTrends: "What are the current trends in [industry] that could influence [avatar]?",
	
	challenges: "What are common challenges faced by [avatar] in [industry]? Provide detailed solutions that could be discussed in a Mini VSL.",

	psychologicalTriggers:
		"What psychological triggers are most effective when marketing to [avatar]? Can you explain how these can be ethically used in a Mini VSL?",

	painPoints:
		"My avatar [avatar] has these pain points: [pain_points]. How can I address these effectively in my Mini VSL?",

	desires:
		"My avatar [avatar] wants: [wants]. How can I position my offer to fulfill these desires in my Mini VSL?",

	objections:
		"My avatar [avatar] might object with: [objections]. How should I preemptively address these concerns in my Mini VSL?",

	comprehensive: `Create a comprehensive Mini VSL script that follows this specific structure:

1. ATTENTION (30-40 seconds)
   - Create an attention-grabbing hook for [avatar] that addresses their pain points: [pain_points]
   - Provide a clear overview of what viewers will learn
   - Address potential skepticism
   - State your intention to share what's working
   - Define who this video is for and who it's not for

2. YOUR STORY (2-3 minutes)
   - Introduce yourself and your journey in [industry]
   - Share why you've adopted your particular method
   - Describe the pain you felt in discovering your process/mechanism
   - Build credibility through personal experience

3. YOUR MECHANISM (6-7 minutes)
   - Clearly differentiate the "old way" from the "new way" you've developed
   - Break down your unique model [offers] in detail
   - Explain how it specifically helps achieve [core_value]

4. STRATEGIES & TACTICS (6 minutes)
   - Highlight high-level benefits of your system
   - Compare traditional benefits with your new approach
   - Discuss how the mechanism works in practical terms
   - Use specific examples that [avatar] can relate to

5. UNIQUE BENEFIT (4 minutes)
   - Focus on 1-2 key benefits that specifically address [wants]
   - Explain why these benefits are uniquely possible with your mechanism
   - Connect these benefits directly to [avatar]'s desired outcomes

6. TEAM & SOCIAL PROOF (1-2 minutes)
   - Explain your process implementation
   - Share success stories and case studies
   - Preemptively address potential objections: [objections]
   - Use testimonials or results that build credibility

7. CALL TO ACTION (2-3 minutes)
   - End with a compelling, clear call to action
   - Create urgency without being pushy
   - Reinforce the primary value proposition
   - Make the next steps simple and obvious

The script should be conversational, authoritative, and build maximum credibility in 24-25 minutes total. Focus on how your mechanism solves [avatar]'s problems in a way that's different from conventional approaches in [industry].`
};

export default vslPrompts;

/**
 * Generates a tailored VSL prompt based on avatar data and selected prompt type
 * 
 * This function creates structured prompts for video sales letters following
 * best practices for AI-assisted content generation. It replaces placeholders
 * with actual avatar data to create personalized marketing scripts.
 * 
 * @param avatar - The customer avatar model containing detailed profile information
 * @param promptType - The specific VSL prompt template to use (defaults to comprehensive)
 * @returns A fully formatted prompt ready for AI model consumption
 */
export const getVSLPrompts = ({
	avatar,
	promptType = 'comprehensive'
}: {
	avatar: AvatarModel;
	promptType?: keyof typeof vslPrompts;
}) => {
	// Extract values from avatar or use placeholders
	const coreValue = avatar.coreValue?.value || "their desired outcome";
	const painPoints = avatar.hates?.map(item => item.value).join(", ") || "their main challenges";
	const wants = avatar.wants?.map(item => item.value).join(", ") || "their primary goals";
	const objections = avatar.objections?.map(item => item.value).join(", ") || "common industry objections";
	const offers = avatar.offers?.map(item => item.value).join(", ") || "offers so appealing to them they would feel stupid to say no";
	// Get the requested prompt template
	const promptTemplate = vslPrompts[promptType] || vslPrompts.comprehensive;
	
	// Replace all placeholders with actual values
	const formattedPrompt = promptTemplate
		.replace(/\[avatar]/g, avatar.title.value)
		.replace(/\[core_value]/g, coreValue)
		.replace(/\[offers]/g, offers)
		.replace(/\[pain_points]/g, painPoints)
		.replace(/\[wants]/g, wants)
		.replace(/\[objections]/g, objections);
	
	// Create a system prompt that guides the AI model's response format
	const systemPrompt = `You are an expert marketing consultant specializing in Video Sales Letters.
Your task is to help create a compelling Mini VSL that builds authority and sells the creator's unique mechanism.
Focus on conversational, authentic language that connects with ${avatar.title.value}.
Structure your response according to the sections requested, with appropriate timing for each section.
Ensure all content is ethical, value-focused, and addresses the specific needs of the target audience.
${formattedPrompt}`;
	
	return systemPrompt;
};
Editor is loading...
Leave a Comment