DEV Community

Brad
Brad

Posted on

7 Python Scripts That Run My Small Business on Autopilot

If you're running a small business, chances are you're spending 20-30 hours a week on tasks Python could handle overnight.

I learned this the hard way. After building out my automation system, I tracked exactly which scripts save the most time - and built a toolkit around them.

Here are 7 of the most impactful ones:

1. Daily Revenue Summary (runs at 6 AM)

Instead of logging into 5 different dashboards every morning, this script pulls from Stripe, PayPal, and your bank API and emails a clean summary to your inbox.

import requests
import smtplib
from datetime import datetime, timedelta

def get_daily_revenue():
    # Pulls from multiple payment processors
    stripe_revenue = fetch_stripe_revenue()
    paypal_revenue = fetch_paypal_revenue()
    total = stripe_revenue + paypal_revenue
    send_summary_email(total)

# Run daily at 6 AM via cron:
# 0 6 * * * python revenue_summary.py
Enter fullscreen mode Exit fullscreen mode

Time saved: 15 min/day = 91 hours/year

2. Automatic Invoice Generator + Sender

When a project milestone is hit, the script generates a PDF invoice, attaches it to a professional email, and sends it. No manual work.

from reportlab.pdfgen import canvas
import smtplib
from email.mime.multipart import MIMEMultipart

def generate_and_send_invoice(client_name, amount, services):
    pdf_path = create_invoice_pdf(client_name, amount, services)
    send_invoice_email(client_name, pdf_path)
    log_invoice_to_sheets(client_name, amount)

generate_and_send_invoice("Acme Corp", 2500, ["Web Development", "SEO"])
Enter fullscreen mode Exit fullscreen mode

Time saved: 20 min/invoice x 10 invoices/month = 40 hours/year

3. Lead Scraper + CRM Updater

Pulls new leads from your contact forms, scores them, and adds them to your CRM with tags. New leads get a welcome email within 5 minutes.

def process_new_lead(lead_data):
    score = calculate_lead_score(lead_data)
    if score > 7:
        add_to_crm(lead_data, tag="hot_lead")
        send_welcome_sequence(lead_data['email'], sequence="premium")
    else:
        add_to_crm(lead_data, tag="nurture")
        send_welcome_sequence(lead_data['email'], sequence="standard")
Enter fullscreen mode Exit fullscreen mode

Time saved: Instant response vs 2-hour average = 3x conversion improvement

4. Social Media Content Scheduler

Write content once a week, schedule it across 4 platforms. The script handles formatting differences, optimal timing, and hashtag optimization.

def schedule_week_of_content(content_list):
    for content in content_list:
        twitter_post = format_for_twitter(content)
        linkedin_post = format_for_linkedin(content)
        schedule_post(twitter_post, platform="twitter",
                      time=get_optimal_time("twitter"))
        schedule_post(linkedin_post, platform="linkedin",
                      time=get_optimal_time("linkedin"))
Enter fullscreen mode Exit fullscreen mode

Time saved: 3 hours/week = 156 hours/year

5. Expense Categorizer + Report Generator

Connects to your business bank account, categorizes expenses, and generates a monthly P&L automatically.

def categorize_transaction(description, amount):
    categories = {
        'software': ['aws', 'github', 'figma', 'notion'],
        'marketing': ['facebook ads', 'google ads', 'mailchimp'],
        'office': ['staples', 'amazon', 'ikea'],
    }
    for category, keywords in categories.items():
        if any(kw in description.lower() for kw in keywords):
            return category
    return 'uncategorized'
Enter fullscreen mode Exit fullscreen mode

Time saved: 4 hours/month = 48 hours/year

6. Client Onboarding Automator

When a new client signs a contract, the script creates their project folder, sends credentials, and schedules the kickoff call - all in 30 seconds.

def onboard_new_client(contract_data):
    client = contract_data['client']
    folder_id = create_drive_folder(client['name'])
    credentials = generate_client_credentials(client)
    send_welcome_email(client['email'], credentials, folder_id)
    create_project_tasks(client, template="standard_onboarding")
    print(f"Client {client['name']} onboarded in 30 seconds")
Enter fullscreen mode Exit fullscreen mode

Time saved: 2 hours/client x 5 clients/month = 120 hours/year

7. Weekly Business Health Report

Every Monday at 7 AM, a 2-page PDF lands in my inbox with revenue trends, top performers, churn rate, and 3 suggested actions.

def generate_health_report():
    data = {
        'revenue': get_weekly_revenue(),
        'top_products': get_top_performers(),
        'churn_rate': calculate_churn_rate(),
        'outstanding': get_outstanding_invoices(),
    }
    suggestions = ai_generate_suggestions(data)
    pdf = create_report_pdf(data, suggestions)
    email_report(pdf)
Enter fullscreen mode Exit fullscreen mode

Time saved: 3 hours/week = 156 hours/year


The Total Math

Script Hours Saved/Year
Daily Revenue Summary 91
Invoice Generator 40
Lead Scraper ~60
Content Scheduler 156
Expense Categorizer 48
Client Onboarding 120
Health Report 156
TOTAL 671 hours

That's 28 days of working time freed up every year.


Get All 7 Scripts (Plus More)

I packaged all of these (plus 12 more with full documentation) into the Python Business Automation Toolkit.

  • All 19 scripts with working code
  • Setup instructions for each integration
  • Configuration files you can customize in 10 minutes
  • Lifetime updates

Currently $29. The time you save in the first week alone is worth 100x that.

Get the Python Business Automation Toolkit

What's the one task in your business you wish was automated? Drop it in the comments - I might write the script in a follow-up post.

Top comments (0)