GenPark Automated Email Marketing Agent is a goal-driven email sequence generator with built-in A/B testing capabilities. It helps create, optimize, and automate email marketing campaigns by generating contextually relevant email sequences and testing variations to maximize engagement and conversion rates.
Installation
# Clone the repository
git clone https://github.com/alphaparkinc/genpark-automated-email-marketing-agent-skill.git
cd genpark-automated-email-marketing-agent-skill
# Install dependencies
pip install -r requirements.txt
Configuration
Set up required environment variables:
export OPENAI_API_KEY=your_openai_api_key
export SENDGRID_API_KEY=your_sendgrid_api_key # Optional, for sending emailsexport GENPARK_DB_PATH=./data/sequences.db # Optional, defaults to local SQLite
Core Components
Email Sequence Generator
Generate goal-driven email sequences based on campaign objectives:
from genpark.utils import RateLimiter
# Wrap API calls with rate limiting
rate_limiter = RateLimiter(max_calls=100, time_window=60)
with rate_limiter:
sequence = generator.generate_sequence(goal)
Email Deliverability Issues
from genpark.validation import EmailValidator
validator = EmailValidator()
# Validate email list before sending
valid_emails = []
for email in recipient_list:
if validator.is_valid(email) andnot validator.is_disposable(email):
valid_emails.append(email)
else:
print(f"Skipping invalid email: {email}")
# Use validated list
campaign = executor.launch_campaign(
sequence=sequence,
recipients=valid_emails
)
Test Results Not Significant
# Check test status and sample size
test_status = ab_manager.get_test_status(test.test_id)
ifnot test_status.has_minimum_sample:
print(f"Need {test_status.required_sample - test_status.current_sample} more samples")
ifnot test_status.is_significant:
print(f"Current confidence: {test_status.confidence_level:.2%}")
print("Continue test or increase sample size")
Database Connection Issues
import os
from genpark.database import DatabaseManager
# Custom database path
db_manager = DatabaseManager(db_path=os.getenv("GENPARK_DB_PATH", "./data/campaigns.db"))
# Test connectionif db_manager.test_connection():
print("Database connected successfully")
else:
print("Database connection failed - check path and permissions")
Example Usage Script
import os
from genpark.sequence_generator import EmailSequenceGenerator
from genpark.ab_testing import ABTestManager
from genpark.campaign import CampaignExecutor
from genpark.models import CampaignGoal, EmailVariant
defmain():
# Initialize components
generator = EmailSequenceGenerator(api_key=os.getenv("OPENAI_API_KEY"))
ab_manager = ABTestManager()
executor = CampaignExecutor(sendgrid_api_key=os.getenv("SENDGRID_API_KEY"))
# Define goal
goal = CampaignGoal(
objective="product_launch",
target_audience="early_adopters",
desired_action="purchase",
sequence_length=5
)
# Generate sequence
sequence = generator.generate_sequence(goal)
# Create A/B test for first email
test = ab_manager.create_test(
test_name="launch_email_test",
variants=[
EmailVariant(subject=sequence.emails[0].subject, body=sequence.emails[0].body, variant_name="A"),
EmailVariant(subject="Alternative: " + sequence.emails[0].subject, body=sequence.emails[0].body, variant_name="B")
],
split_ratio=0.5
)
# Launch campaign
campaign = executor.launch_campaign(
sequence=sequence,
recipients=["test@example.com"],
ab_test=test
)
print(f"Campaign {campaign.campaign_id} launched successfully!")
if __name__ == "__main__":
main()