Project Overview

/demo_project

10 automations 10 scripts 8 services 15 credentials 15 secrets 9 starting scripts 9 entry points

This project automates core business operations by sourcing and enriching sales leads, generating personalized proposals, and managing data synchronization. It leverages services like Google Sheets for central data, Apify for lead acquisition, AnyMailFinder for contact verification, and PandaDoc for proposals and invoice reconciliation, ensuring streamlined workflows and timely communication via Slack.

How Scripts Connect (click to expand)

Click a script to see its flow


            
Starting script Supporting script

Dependency Graph

Click a script to see its flow

graph LR
  n_create_proposal_py["create_proposal.py"]:::entry
  n_enrich_emails_py["enrich_emails.py"]:::entry
  n_error_demo_messy_pipeline_py["error_demo_messy_pipeline.py"]:::entry
  n_error_demo_realistic_etl_py["error_demo_realistic_etl.py"]:::entry
  n_gmaps_lead_pipeline_py["gmaps_lead_pipeline.py"]:::entry
  n_modal_webhook_py["modal_webhook.py"]
  n_read_sheet_py["read_sheet.py"]:::entry
  n_scrape_apify_py["scrape_apify.py"]:::entry
  n_scrape_google_maps_py["scrape_google_maps.py"]:::entry
  n_update_sheet_py["update_sheet.py"]:::entry
  n_enrich_emails_py -->|"file_io"| n_gmaps_lead_pipeline_py
  n_enrich_emails_py -->|"file_io"| n_read_sheet_py
  n_gmaps_lead_pipeline_py -->|"import"| n_scrape_google_maps_py
  n_gmaps_lead_pipeline_py -->|"file_io"| n_read_sheet_py
  n_read_sheet_py -->|"file_io"| n_gmaps_lead_pipeline_py
  n_update_sheet_py -->|"file_io"| n_gmaps_lead_pipeline_py
  n_update_sheet_py -->|"file_io"| n_read_sheet_py
  click n_create_proposal_py "/script/create_proposal.py"
  click n_enrich_emails_py "/script/enrich_emails.py"
  click n_error_demo_messy_pipeline_py "/script/error_demo_messy_pipeline.py"
  click n_error_demo_realistic_etl_py "/script/error_demo_realistic_etl.py"
  click n_gmaps_lead_pipeline_py "/script/gmaps_lead_pipeline.py"
  click n_modal_webhook_py "/script/modal_webhook.py"
  click n_read_sheet_py "/script/read_sheet.py"
  click n_scrape_apify_py "/script/scrape_apify.py"
  click n_scrape_google_maps_py "/script/scrape_google_maps.py"
  click n_update_sheet_py "/script/update_sheet.py"
classDef api fill:#dbeafe,stroke:#2563eb,color:#1e3a5f
classDef fileio fill:#dcfce7,stroke:#16a34a,color:#14532d
classDef dbop fill:#f3e8ff,stroke:#9333ea,color:#3b0764
classDef decision fill:#ffedd5,stroke:#ea580c,color:#7c2d12
classDef output fill:#f3f4f6,stroke:#6b7280,color:#1f2937
classDef transform fill:#ccfbf1,stroke:#0d9488,color:#134e4a
classDef entry fill:#dcfce7,stroke:#16a34a,stroke-width:3px,color:#14532d
classDef compact fill:#f0f4ff,stroke:#6366f1,color:#312e81,stroke-width:2px
            
Entry point Helper script

Scripts

gmaps_lead_pipeline.py key start entry

This script processes business leads, likely originating from Google Maps, by finding and adding contact information from their websites. It then stores this enhanced lead data in a Google Sheet, ensuring that only new, unique leads are added.

2 issues
114 steps | Setup (7) Data (68) Storage (2) Error (4) Reporting (33)
114 steps | Transform Decision File Output Google Auth Google Sheets
modal_webhook.py key

This automation centralizes several business operations, from automatically sourcing new sales leads and finding their contact information to generating personalized business proposals using AI. It also analyzes YouTube content for relevant insights and can respond to requests via webhooks, updating Google Sheets and notifying teams through Slack.

6 issues
445 steps | Setup (49) Data (304) Storage (4) Error (28) Reporting (60)
445 steps | API Decision Output Transform Anthropic Apify FastAPI Google Auth Google API Google Sheets Modal HTTP Client
enrich_emails.py key start entry

This automation script reads contact information from a Google Sheet, uses the AnyMailFinder service to find or verify email addresses, and then updates the Google Sheet with the discovered email details.

3 issues
137 steps | Setup (7) Data (73) Storage (2) Error (7) Reporting (48)
137 steps | Decision Output File API Google Auth Google Sheets HTTP Client
error_demo_realistic_etl.py start entry

This automation script gathers invoice information from PandaDoc, payment details from Stripe, and status updates from a Google Sheet. It then matches these records, updates the relevant invoices in PandaDoc and the Google Sheet with the reconciliation results, and sends a summary notification to Slack.

2 issues
114 steps | Setup (6) Data (55) Storage (3) Error (8) Reporting (42)
114 steps | Output Decision API Transform Google Auth Google Sheets HTTP Client
error_demo_messy_pipeline.py start entry

This automation reads lead information from a Google Sheet, uses external services to find contact details and generate summaries for each lead, and then updates a Google Sheet with this enriched data. It also sends a summary of its work to Slack and creates a local backup.

2 issues
91 steps | Setup (6) Data (24) Storage (4) Error (12) Reporting (45)
91 steps | Output Decision Transform API Google Auth Google Sheets HTTP Client
read_sheet.py start entry

This automation script securely connects to Google Sheets to read and extract lead data, which it then saves into a local file.

1 issue
31 steps | Setup (5) Data (15) Storage (1) Error (2) Reporting (8)
31 steps | Decision Transform File Output Google Auth Google Sheets
update_sheet.py start entry

This automation script reads information from a data file and uses it to update a specific Google Sheet, making sure the sheet is resized as needed to fit all the new data.

1 issue
51 steps | Setup (6) Data (24) Error (4) Reporting (17)
51 steps | Decision Output File API Google Auth Google Sheets
create_proposal.py start entry

This automation script streamlines the creation of new business proposals by gathering client and project details from various sources. It then automatically generates a standardized proposal document using the PandaDoc system, ensuring it's ready for immediate use.

2 issues
68 steps | Setup (8) Data (35) Storage (1) Error (6) Reporting (18)
68 steps | Decision Transform API Output HTTP Client
scrape_google_maps.py start entry

This automation uses the Apify service to search Google Maps for business information. It then collects relevant details like titles, addresses, phones, and websites, and saves them for your review.

1 issue
30 steps | Setup (1) Data (15) Storage (1) Error (1) Reporting (12)
30 steps | Decision Output Transform File Apify
scrape_apify.py start entry

This automation uses the Apify platform to gather lead information, optionally filtering for specific details like email addresses. It then saves these collected leads into a local file for your use.

1 issue
24 steps | Setup (1) Data (11) Storage (1) Error (1) Reporting (10)
24 steps | Decision Output Transform File Apify

Services

  • HTTP Client requests
  • Google Auth google.oauth2
  • Google Sheets gspread
  • Anthropic anthropic
  • Apify apify_client
  • FastAPI fastapi
  • Google API googleapiclient
  • Modal modal

Credentials Secrets

  • Anthropic credentials
  • Anymailfinder credentials
  • Apify credentials
  • Configuration: DEBUG
  • Google credentials
  • Instantly credentials
  • OpenAI credentials
  • PandaDoc credentials
  • Slack credentials
  • Stripe credentials
  • Configuration: USER_EMAIL
  • ANTHROPIC_API_KEY
  • ANYMAILFINDER_API_KEY
  • APIFY_API_TOKEN
  • DEBUG
  • GOOGLE_APPLICATION_CREDENTIALS
  • GOOGLE_TOKEN_JSON
  • INSTANTLY_API_KEY
  • OPENAI_API_KEY
  • PANDADOC_API_KEY
  • PANDADOC_RECIPIENT_ROLE
  • PANDADOC_TEMPLATE_UUID
  • PANDADOC_TIMEOUT
  • SLACK_WEBHOOK_URL
  • STRIPE_API_KEY
  • USER_EMAIL