Project Overview

/demo_project

8 scripts 8 services 13 secrets 7 entry points

This project automates key aspects of the sales process, from identifying new business leads and enriching their contact information, to centralizing this data in Google Sheets. It then leverages this organized information to automatically generate customized business proposals, significantly streamlining lead management and sales outreach.

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_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_enrich_emails_py -->|"file_io"| n_update_sheet_py
  n_gmaps_lead_pipeline_py -->|"import"| n_scrape_google_maps_py
  n_gmaps_lead_pipeline_py -->|"file_io"| n_enrich_emails_py
  n_gmaps_lead_pipeline_py -->|"file_io"| n_read_sheet_py
  n_gmaps_lead_pipeline_py -->|"file_io"| n_update_sheet_py
  n_read_sheet_py -->|"file_io"| n_enrich_emails_py
  n_read_sheet_py -->|"file_io"| n_gmaps_lead_pipeline_py
  n_read_sheet_py -->|"file_io"| n_update_sheet_py
  n_update_sheet_py -->|"file_io"| n_enrich_emails_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_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

enrich_emails.py key entry

This automation script reads contact information from a Google Sheet, uses the Anymailfinder service to find missing email addresses for those contacts, and then updates the Google Sheet with the newly found email addresses.

137 steps | Decision Output File API Google Auth Google Sheets HTTP Client
gmaps_lead_pipeline.py key entry

This automation script enhances business lead data by finding contact details on their websites. It then stores and updates this enriched lead information in a Google Sheet.

114 steps | Transform Decision File Output Google Auth Google Sheets
modal_webhook.py

This automation system orchestrates various business processes, leveraging AI, Google Sheets, and other web services to find sales leads, generate customized proposals, and analyze YouTube content. It also handles scheduled tasks and provides updates through Slack.

445 steps | API Decision Output Transform Anthropic Apify FastAPI Google Auth Google API Google Sheets Modal HTTP Client
update_sheet.py entry

This automation takes information from a local data file and uses it to update a specified Google Sheet, automatically resizing the sheet as needed. It can also notify a designated user about the update.

51 steps | Decision Output File API Google Auth Google Sheets
read_sheet.py entry

This automation connects to Google Sheets to read specific lead data from a designated spreadsheet or tab. It then saves this lead information into a separate file for future use.

31 steps | Decision Transform File Output Google Auth Google Sheets
create_proposal.py entry

This script automates the creation of business proposals using PandaDoc. It gathers necessary client and project details, validates them, and then generates a new proposal document.

68 steps | Decision Transform API Output HTTP Client
scrape_google_maps.py entry

This automation uses the Apify service to search Google Maps and collect business information. It gathers details such as business names, addresses, phone numbers, and websites, then saves this data for your review.

30 steps | Decision Output Transform File Apify
scrape_apify.py entry

This automation uses the Apify service to search for and collect specific information, such as business leads, based on your criteria. It then saves all the gathered details into a file for easy access.

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

Secrets

  • ANTHROPIC_API_KEY
  • ANYMAILFINDER_API_KEY
  • APIFY_API_TOKEN
  • DEBUG
  • GOOGLE_APPLICATION_CREDENTIALS
  • GOOGLE_TOKEN_JSON
  • INSTANTLY_API_KEY
  • PANDADOC_API_KEY
  • PANDADOC_RECIPIENT_ROLE
  • PANDADOC_TEMPLATE_UUID
  • PANDADOC_TIMEOUT
  • SLACK_WEBHOOK_URL
  • USER_EMAIL