/EmailFlow

📨 An Automation software for Email Marketing Campaigns

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

EmailFlow: Automated Email Marketing and CRM Integration 📧

wakatime

Overview

EmailFlow is a robust email marketing automation tool designed to streamline your marketing campaigns. With EmailFlow, you can automate the sending of emails, manage your email lists effortlessly, and grow your audience through effective sign-up forms.

Features

  • Automatic Email Sending: Send emails to your entire list or specific segments with a single click.
  • Email List Management: Easily read and import existing email lists provided by users and store them in memory.
  • Add New Email Addresses: Seamlessly add new email addresses to your list.
  • Newsletter Sign-Up Forms: Create and manage sign-up forms to capture new customer emails directly.

Getting Started

Prerequisites

Before you begin, ensure you have the following:

  • Python 3.7 or higher
  • Access to your email service provider's API (e.g., SendGrid, Mailgun)

Installation

To install EmailFlow, use pip:

pip install emailflow

Configuration

  1. API Keys: Store your email service provider API keys in environment variables.

    export EMAIL_API_KEY='your_email_api_key'
  2. Configuration File: Create a configuration file config.yaml with your settings.

    email_service:
      provider: 'SendGrid'
      api_key: 'your_email_api_key'

Usage

Automatic Email Sending

  1. Initialize the EmailFlow Client:

    from emailflow import EmailFlow
    
    config_path = 'config.yaml'
    emailflow = EmailFlow(config_path)
  2. Send an Email with a Click:

    emailflow.send_email(
        subject='Monthly Newsletter',
        from_email='noreply@yourbusiness.com',
        template_id='newsletter_template'
    )

Email List Management

  1. Read and Import Existing Email List:

    email_list = ['customer1@example.com', 'customer2@example.com']  # Example list
    emailflow.import_email_list(email_list)
  2. Add New Email Addresses:

    new_emails = ['newcustomer@example.com']
    emailflow.add_emails(new_emails)

Creating and Managing Sign-Up Forms

  1. Set Up a Newsletter Sign-Up Form:

    sign_up_form = emailflow.create_sign_up_form(
        form_name='Newsletter Sign-Up',
        fields=['name', 'email'],
        success_message='Thank you for signing up!'
    )
  2. Retrieve Emails from Sign-Up Forms:

    sign_ups = emailflow.get_sign_up_emails(form_name='Newsletter Sign-Up')

Compliance and Privacy

EmailFlow provides tools to help you stay compliant with various data protection regulations:

  • Consent Management: Track and manage customer consents.
  • Unsubscribe Handling: Automatically handle unsubscribe requests.
  • Data Protection: Ensure data is stored and processed securely.

Contributing

We welcome contributions to EmailFlow. Please follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes and commit them (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request.

License

EmailFlow is licensed under the MIT License. See the LICENSE file for more details.

Contact

For support or inquiries, please contact us at support@yourbusiness.com.

With EmailFlow, streamline your email marketing campaigns and engage your customers like never before. 🚀