Refactor: Move SEO content files to root of module
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Professional Corporate Voice -->
|
||||
<record id="brand_voice_professional" model="otk.seo.brand.voice">
|
||||
<field name="name">Professional Corporate</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="is_default">True</field>
|
||||
<field name="voice_tone">formal</field>
|
||||
<field name="writing_style">factual</field>
|
||||
<field name="voice_personality">professional, trustworthy, reliable, authoritative</field>
|
||||
<field name="brand_description">A professional corporate brand that values expertise, reliability, and trust. We communicate with clarity and purpose, always maintaining a polished and business-appropriate tone.</field>
|
||||
<field name="target_audience">Business professionals, decision-makers, and corporate clients who value expertise and professionalism.</field>
|
||||
<field name="preferred_words">excellence
|
||||
innovative solutions
|
||||
strategic
|
||||
optimize
|
||||
enterprise-grade
|
||||
proven results
|
||||
industry-leading
|
||||
streamlined
|
||||
efficient
|
||||
comprehensive</field>
|
||||
<field name="avoided_words">cheap
|
||||
basic
|
||||
simple
|
||||
just
|
||||
maybe
|
||||
kind of
|
||||
stuff
|
||||
things
|
||||
awesome
|
||||
cool</field>
|
||||
<field name="custom_instructions">Always maintain a professional tone. Use data and evidence to support claims. Avoid hyperbole and stick to factual statements. Include clear calls-to-action that are business-appropriate.</field>
|
||||
</record>
|
||||
|
||||
<!-- Friendly Startup Voice -->
|
||||
<record id="brand_voice_friendly" model="otk.seo.brand.voice">
|
||||
<field name="name">Friendly Startup</field>
|
||||
<field name="sequence">20</field>
|
||||
<field name="voice_tone">friendly</field>
|
||||
<field name="writing_style">conversational</field>
|
||||
<field name="voice_personality">approachable, innovative, energetic, helpful</field>
|
||||
<field name="brand_description">A modern startup brand that's approachable and human. We believe in making complex things simple and building genuine connections with our users.</field>
|
||||
<field name="target_audience">Tech-savvy professionals, early adopters, and small business owners who appreciate innovation and simplicity.</field>
|
||||
<field name="preferred_words">easy
|
||||
simple
|
||||
powerful
|
||||
love
|
||||
excited
|
||||
amazing
|
||||
game-changer
|
||||
seamless
|
||||
intuitive
|
||||
user-friendly</field>
|
||||
<field name="avoided_words">synergy
|
||||
leverage
|
||||
circle back
|
||||
low-hanging fruit
|
||||
move the needle
|
||||
stakeholder
|
||||
deliverables
|
||||
bandwidth
|
||||
enterprise
|
||||
legacy</field>
|
||||
<field name="custom_instructions">Write like you're talking to a friend who's smart but busy. Use contractions freely. Be enthusiastic but genuine. Break up long sentences. Use examples and analogies to explain complex concepts.</field>
|
||||
</record>
|
||||
|
||||
<!-- Technical Expert Voice -->
|
||||
<record id="brand_voice_technical" model="otk.seo.brand.voice">
|
||||
<field name="name">Technical Expert</field>
|
||||
<field name="sequence">30</field>
|
||||
<field name="voice_tone">authoritative</field>
|
||||
<field name="writing_style">detailed</field>
|
||||
<field name="voice_personality">knowledgeable, precise, analytical, educational</field>
|
||||
<field name="brand_description">A technical authority that provides in-depth, accurate information. We value precision and thoroughness, helping readers understand complex topics with clarity.</field>
|
||||
<field name="target_audience">Developers, engineers, technical professionals, and anyone seeking detailed, accurate technical information.</field>
|
||||
<field name="preferred_words">implementation
|
||||
architecture
|
||||
scalable
|
||||
robust
|
||||
optimize
|
||||
configure
|
||||
integrate
|
||||
deploy
|
||||
performance
|
||||
documentation</field>
|
||||
<field name="avoided_words">magic
|
||||
automagically
|
||||
simple (when it's not)
|
||||
easy (when it's not)
|
||||
just do
|
||||
obviously
|
||||
trivial
|
||||
basic</field>
|
||||
<field name="industry_terms">API (Application Programming Interface)
|
||||
SDK (Software Development Kit)
|
||||
REST/RESTful
|
||||
JSON
|
||||
CI/CD
|
||||
DevOps</field>
|
||||
<field name="custom_instructions">Be precise with technical terminology. Include code examples or specifications when relevant. Acknowledge complexity rather than oversimplifying. Provide step-by-step instructions when explaining processes. Always consider edge cases.</field>
|
||||
</record>
|
||||
|
||||
<!-- E-commerce Sales Voice -->
|
||||
<record id="brand_voice_ecommerce" model="otk.seo.brand.voice">
|
||||
<field name="name">E-commerce Sales</field>
|
||||
<field name="sequence">40</field>
|
||||
<field name="voice_tone">conversational</field>
|
||||
<field name="writing_style">persuasive</field>
|
||||
<field name="voice_personality">enthusiastic, helpful, trustworthy, persuasive</field>
|
||||
<field name="brand_description">An e-commerce brand focused on helping customers find the perfect products. We balance being persuasive with being genuinely helpful, building trust through honest recommendations.</field>
|
||||
<field name="target_audience">Online shoppers looking for quality products, good value, and a trustworthy shopping experience.</field>
|
||||
<field name="preferred_words">discover
|
||||
perfect for
|
||||
bestselling
|
||||
premium quality
|
||||
free shipping
|
||||
limited time
|
||||
customer favorite
|
||||
handpicked
|
||||
exclusive
|
||||
save</field>
|
||||
<field name="avoided_words">cheap
|
||||
bargain bin
|
||||
knockoff
|
||||
discount (overuse)
|
||||
clearance (overuse)
|
||||
must buy
|
||||
you need this
|
||||
act now</field>
|
||||
<field name="custom_instructions">Focus on benefits over features. Use social proof (bestseller, customer favorite) naturally. Create urgency without being pushy. Highlight value propositions clearly. Always include relevant product details like materials, dimensions, or care instructions.</field>
|
||||
</record>
|
||||
|
||||
<!-- Educational Informative Voice -->
|
||||
<record id="brand_voice_educational" model="otk.seo.brand.voice">
|
||||
<field name="name">Educational Guide</field>
|
||||
<field name="sequence">50</field>
|
||||
<field name="voice_tone">educational</field>
|
||||
<field name="writing_style">detailed</field>
|
||||
<field name="voice_personality">patient, knowledgeable, encouraging, clear</field>
|
||||
<field name="brand_description">An educational brand dedicated to helping readers learn and grow. We believe everyone can understand complex topics when they're explained clearly and patiently.</field>
|
||||
<field name="target_audience">Learners of all levels, from beginners to advanced, who want to understand topics thoroughly and apply their knowledge.</field>
|
||||
<field name="preferred_words">learn
|
||||
understand
|
||||
discover
|
||||
explore
|
||||
guide
|
||||
step-by-step
|
||||
example
|
||||
practice
|
||||
master
|
||||
fundamentals</field>
|
||||
<field name="avoided_words">obviously
|
||||
everyone knows
|
||||
simply
|
||||
just
|
||||
easy (when starting)
|
||||
basic (dismissively)
|
||||
dumb
|
||||
stupid</field>
|
||||
<field name="custom_instructions">Start with foundational concepts before advancing. Use analogies and real-world examples. Break complex topics into digestible sections. Include practical exercises or examples. Encourage the reader and acknowledge that learning takes time. Define jargon when first introduced.</field>
|
||||
</record>
|
||||
|
||||
<!-- Luxury Premium Voice -->
|
||||
<record id="brand_voice_luxury" model="otk.seo.brand.voice">
|
||||
<field name="name">Luxury Premium</field>
|
||||
<field name="sequence">60</field>
|
||||
<field name="voice_tone">formal</field>
|
||||
<field name="writing_style">storytelling</field>
|
||||
<field name="voice_personality">sophisticated, exclusive, refined, elegant</field>
|
||||
<field name="brand_description">A luxury brand that embodies sophistication and excellence. Every word should reflect the premium quality and exclusive nature of our offerings, creating an aspirational experience.</field>
|
||||
<field name="target_audience">Discerning customers who appreciate quality, craftsmanship, and exclusive experiences. They value heritage, attention to detail, and timeless elegance.</field>
|
||||
<field name="preferred_words">exquisite
|
||||
artisan
|
||||
heritage
|
||||
curated
|
||||
bespoke
|
||||
timeless
|
||||
craftsmanship
|
||||
exclusive
|
||||
refined
|
||||
exceptional</field>
|
||||
<field name="avoided_words">cheap
|
||||
affordable
|
||||
budget
|
||||
discount
|
||||
deal
|
||||
bargain
|
||||
basic
|
||||
standard
|
||||
mass-produced
|
||||
generic</field>
|
||||
<field name="custom_instructions">Evoke emotion and aspiration. Focus on craftsmanship, heritage, and the story behind products. Use sensory language to describe experiences. Maintain an air of exclusivity without being pretentious. Quality over quantity in descriptions.</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Cron job to submit pending images for generation -->
|
||||
<record id="ir_cron_submit_pending_images" model="ir.cron">
|
||||
<field name="name">SEO Content: Submit Pending Images</field>
|
||||
<field name="model_id" ref="model_otk_seo_content_image"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_submit_pending_images()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">10</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron job to poll image generation status -->
|
||||
<record id="ir_cron_poll_image_status" model="ir.cron">
|
||||
<field name="name">SEO Content: Poll Image Status</field>
|
||||
<field name="model_id" ref="model_otk_seo_content_image"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_poll_image_status()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">5</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron job to poll content generation status (async) -->
|
||||
<record id="ir_cron_poll_content_status" model="ir.cron">
|
||||
<field name="name">SEO Content: Poll Content Status</field>
|
||||
<field name="model_id" ref="model_otk_seo_content"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_poll_content_status()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">4</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron job to check for stale content and send alerts -->
|
||||
<record id="ir_cron_check_stale_content" model="ir.cron">
|
||||
<field name="name">SEO Content: Check Stale Content</field>
|
||||
<field name="model_id" ref="model_otk_seo_content"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_check_stale_content()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">days</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">50</field>
|
||||
<field name="nextcall" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 06:00:00')"/>
|
||||
</record>
|
||||
|
||||
<!-- Cron job to process batch items asynchronously -->
|
||||
<record id="ir_cron_process_batch_items" model="ir.cron">
|
||||
<field name="name">SEO Content: Process Batch Items</field>
|
||||
<field name="model_id" ref="model_otk_seo_content_batch"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_process_batch_items()</field>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">15</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron job to process scheduled content ideas -->
|
||||
<record id="ir_cron_process_scheduled_ideas" model="ir.cron">
|
||||
<field name="name">SEO Content: Process Scheduled Ideas</field>
|
||||
<field name="model_id" ref="model_otk_seo_content_idea"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_process_scheduled_ideas()</field>
|
||||
<field name="interval_number">30</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">20</field>
|
||||
</record>
|
||||
|
||||
<!-- Cron job to check generating ideas completion -->
|
||||
<record id="ir_cron_check_generating_ideas" model="ir.cron">
|
||||
<field name="name">SEO Content: Check Generating Ideas</field>
|
||||
<field name="model_id" ref="model_otk_seo_content_idea"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.cron_check_generating_ideas()</field>
|
||||
<field name="interval_number">2</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active">True</field>
|
||||
<field name="priority">6</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,8 @@
|
||||
<odoo>
|
||||
<data>
|
||||
<record model="ir.module.category" id="module_category_otoolkit_seo">
|
||||
<field name="name">O'Toolkit SEO</field>
|
||||
<field name="sequence">40</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,254 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- How-To Guide Template -->
|
||||
<record id="seo_template_how_to" model="otk.seo.template">
|
||||
<field name="name">How-To Guide</field>
|
||||
<field name="sequence">10</field>
|
||||
<field name="content_type">blog_post</field>
|
||||
<field name="description">Step-by-step instructional content that teaches readers how to accomplish a specific task or goal.</field>
|
||||
<field name="default_tone">professional</field>
|
||||
<field name="default_word_count">medium</field>
|
||||
<field name="include_images">True</field>
|
||||
<field name="default_image_count">2</field>
|
||||
<field name="default_image_style">photorealistic</field>
|
||||
<field name="include_toc">True</field>
|
||||
<field name="include_faq">False</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_h3</field>
|
||||
<field name="system_prompt">You are an expert technical writer creating clear, actionable how-to guides.
|
||||
Write in a helpful, instructive tone. Use numbered steps for processes.
|
||||
Include practical tips and common pitfalls to avoid.
|
||||
Make content scannable with clear headers and bullet points.</field>
|
||||
<field name="content_prompt_template">Write a comprehensive how-to guide about: {topic}
|
||||
|
||||
Target keywords: {keywords}
|
||||
Target word count: {word_count} words
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure the content with:
|
||||
1. Brief introduction explaining what readers will learn
|
||||
2. Prerequisites or requirements (if applicable)
|
||||
3. Step-by-step instructions with clear headers
|
||||
4. Tips and best practices
|
||||
5. Conclusion with next steps</field>
|
||||
</record>
|
||||
|
||||
<!-- Listicle Template -->
|
||||
<record id="seo_template_listicle" model="otk.seo.template">
|
||||
<field name="name">Listicle (Top X...)</field>
|
||||
<field name="sequence">20</field>
|
||||
<field name="content_type">blog_post</field>
|
||||
<field name="description">Numbered list format articles like "Top 10...", "5 Best...", etc. Great for engagement and social sharing.</field>
|
||||
<field name="default_tone">conversational</field>
|
||||
<field name="default_word_count">medium</field>
|
||||
<field name="include_images">True</field>
|
||||
<field name="default_image_count">1</field>
|
||||
<field name="default_image_style">digital_art</field>
|
||||
<field name="include_toc">True</field>
|
||||
<field name="include_faq">False</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_only</field>
|
||||
<field name="system_prompt">You are a content creator writing engaging listicle articles.
|
||||
Make each list item valuable and actionable.
|
||||
Use engaging headlines for each item.
|
||||
Include brief explanations for each point.
|
||||
Keep the tone engaging and easy to read.</field>
|
||||
<field name="content_prompt_template">Write a listicle article about: {topic}
|
||||
|
||||
Target keywords: {keywords}
|
||||
Target word count: {word_count} words
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure:
|
||||
1. Engaging introduction with a hook
|
||||
2. Numbered list items (5-10 items) with H2 headers
|
||||
3. Each item should have a brief explanation (50-100 words)
|
||||
4. Conclusion summarizing key takeaways</field>
|
||||
</record>
|
||||
|
||||
<!-- Product Comparison Template -->
|
||||
<record id="seo_template_comparison" model="otk.seo.template">
|
||||
<field name="name">Product Comparison</field>
|
||||
<field name="sequence">30</field>
|
||||
<field name="content_type">blog_post</field>
|
||||
<field name="description">Side-by-side comparison content for products, services, or solutions.</field>
|
||||
<field name="default_tone">professional</field>
|
||||
<field name="default_word_count">long</field>
|
||||
<field name="include_images">True</field>
|
||||
<field name="default_image_count">1</field>
|
||||
<field name="default_image_style">illustration</field>
|
||||
<field name="include_toc">True</field>
|
||||
<field name="include_faq">True</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_h3</field>
|
||||
<field name="system_prompt">You are an expert analyst creating objective product comparisons.
|
||||
Be balanced and fair in your comparisons.
|
||||
Include specific features, pros, and cons.
|
||||
Help readers make informed decisions.
|
||||
Use tables or structured comparisons where appropriate.</field>
|
||||
<field name="content_prompt_template">Write a detailed comparison article about: {topic}
|
||||
|
||||
Target keywords: {keywords}
|
||||
Target word count: {word_count} words
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure:
|
||||
1. Introduction explaining the comparison criteria
|
||||
2. Overview of each option
|
||||
3. Feature-by-feature comparison
|
||||
4. Pros and cons for each
|
||||
5. Recommendation based on different use cases
|
||||
6. FAQ section addressing common questions</field>
|
||||
</record>
|
||||
|
||||
<!-- Industry News Template -->
|
||||
<record id="seo_template_news" model="otk.seo.template">
|
||||
<field name="name">Industry News/Trends</field>
|
||||
<field name="sequence">40</field>
|
||||
<field name="content_type">blog_post</field>
|
||||
<field name="description">Thought leadership content about industry trends, news analysis, and expert insights.</field>
|
||||
<field name="default_tone">professional</field>
|
||||
<field name="default_word_count">medium</field>
|
||||
<field name="include_images">True</field>
|
||||
<field name="default_image_count">1</field>
|
||||
<field name="default_image_style">photorealistic</field>
|
||||
<field name="include_toc">False</field>
|
||||
<field name="include_faq">False</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_h3</field>
|
||||
<field name="system_prompt">You are an industry expert writing insightful analysis.
|
||||
Provide context and expert perspective.
|
||||
Back up claims with reasoning.
|
||||
Make content relevant and timely.
|
||||
Maintain a professional, authoritative tone.</field>
|
||||
<field name="content_prompt_template">Write an industry analysis/trends article about: {topic}
|
||||
|
||||
Target keywords: {keywords}
|
||||
Target word count: {word_count} words
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure:
|
||||
1. Hook introducing the trend or news
|
||||
2. Background and context
|
||||
3. Analysis of implications
|
||||
4. Expert insights and predictions
|
||||
5. What this means for the reader
|
||||
6. Call to action</field>
|
||||
</record>
|
||||
|
||||
<!-- Case Study Template -->
|
||||
<record id="seo_template_case_study" model="otk.seo.template">
|
||||
<field name="name">Case Study</field>
|
||||
<field name="sequence">50</field>
|
||||
<field name="content_type">blog_post</field>
|
||||
<field name="description">Success story format showcasing real-world results and implementations.</field>
|
||||
<field name="default_tone">professional</field>
|
||||
<field name="default_word_count">long</field>
|
||||
<field name="include_images">True</field>
|
||||
<field name="default_image_count">2</field>
|
||||
<field name="default_image_style">photorealistic</field>
|
||||
<field name="include_toc">True</field>
|
||||
<field name="include_faq">False</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_h3</field>
|
||||
<field name="system_prompt">You are a content writer creating compelling case studies.
|
||||
Follow the problem-solution-results format.
|
||||
Include specific metrics and outcomes where possible.
|
||||
Make the story relatable and inspiring.
|
||||
Focus on the transformation and value delivered.</field>
|
||||
<field name="content_prompt_template">Write a case study article about: {topic}
|
||||
|
||||
Target keywords: {keywords}
|
||||
Target word count: {word_count} words
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure:
|
||||
1. Executive summary / Key results
|
||||
2. The Challenge - What problem needed solving
|
||||
3. The Solution - How it was addressed
|
||||
4. Implementation - Steps taken
|
||||
5. Results - Measurable outcomes
|
||||
6. Lessons learned
|
||||
7. Call to action</field>
|
||||
</record>
|
||||
|
||||
<!-- FAQ Article Template -->
|
||||
<record id="seo_template_faq" model="otk.seo.template">
|
||||
<field name="name">FAQ Article</field>
|
||||
<field name="sequence">60</field>
|
||||
<field name="content_type">blog_post</field>
|
||||
<field name="description">Question-and-answer format content addressing common queries about a topic.</field>
|
||||
<field name="default_tone">conversational</field>
|
||||
<field name="default_word_count">medium</field>
|
||||
<field name="include_images">False</field>
|
||||
<field name="default_image_count">0</field>
|
||||
<field name="default_image_style">illustration</field>
|
||||
<field name="include_toc">True</field>
|
||||
<field name="include_faq">False</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_only</field>
|
||||
<field name="system_prompt">You are a helpful expert answering frequently asked questions.
|
||||
Address each question thoroughly but concisely.
|
||||
Use clear, accessible language.
|
||||
Anticipate follow-up questions.
|
||||
Make answers actionable where possible.</field>
|
||||
<field name="content_prompt_template">Write an FAQ article about: {topic}
|
||||
|
||||
Target keywords: {keywords}
|
||||
Target word count: {word_count} words
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure:
|
||||
1. Brief introduction about the topic
|
||||
2. 8-12 frequently asked questions with detailed answers
|
||||
3. Each question as an H2 header
|
||||
4. Answers should be 50-150 words each
|
||||
5. Conclusion with additional resources or contact info</field>
|
||||
</record>
|
||||
|
||||
<!-- Product Description Template -->
|
||||
<record id="seo_template_product_desc" model="otk.seo.template">
|
||||
<field name="name">Product Description</field>
|
||||
<field name="sequence">70</field>
|
||||
<field name="content_type">product_desc</field>
|
||||
<field name="description">Compelling product descriptions that highlight features, benefits, and value propositions.</field>
|
||||
<field name="default_tone">persuasive</field>
|
||||
<field name="default_word_count">short</field>
|
||||
<field name="include_images">False</field>
|
||||
<field name="default_image_count">0</field>
|
||||
<field name="default_image_style">photorealistic</field>
|
||||
<field name="include_toc">False</field>
|
||||
<field name="include_faq">False</field>
|
||||
<field name="include_cta">True</field>
|
||||
<field name="header_structure">h2_only</field>
|
||||
<field name="system_prompt">You are an expert copywriter creating compelling product descriptions.
|
||||
Focus on benefits, not just features.
|
||||
Use sensory and emotional language.
|
||||
Address customer pain points.
|
||||
Include a clear call to action.
|
||||
Make content scannable with bullet points for features.</field>
|
||||
<field name="content_prompt_template">Write a compelling product description for: {topic}
|
||||
|
||||
Product details: {product_name}
|
||||
Target keywords: {keywords}
|
||||
Tone: {tone}
|
||||
Language: {language}
|
||||
|
||||
Structure:
|
||||
1. Attention-grabbing opening line
|
||||
2. Key benefits (what problems it solves)
|
||||
3. Main features as bullet points
|
||||
4. Social proof or trust elements
|
||||
5. Clear call to action</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Translation Config for SEO Content -->
|
||||
<record id="translation_config_seo_content" model="otk.translation.config">
|
||||
<field name="model_id" ref="model_otk_seo_content"/>
|
||||
<field name="active">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Translation Config for SEO Template -->
|
||||
<record id="translation_config_seo_template" model="otk.translation.config">
|
||||
<field name="model_id" ref="model_otk_seo_template"/>
|
||||
<field name="active">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Translation Config for Brand Voice -->
|
||||
<record id="translation_config_brand_voice" model="otk.translation.config">
|
||||
<field name="model_id" ref="model_otk_seo_brand_voice"/>
|
||||
<field name="active">True</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user