read_sheet.py

entry point
31 steps Google Auth Google Sheets cli: __main__ guard cli: argparse

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.

Flow

Click any step to see details

graph TB
  subgraph n_read_sheet_extract_sheet_id["extract_sheet_id()"]
    n_read_sheet_32{"if '/d/' in url"}:::decision
    n_read_sheet_33[["Transform: .split()"]]:::transform
    n_read_sheet_33[["Transform: .split()"]]:::transform
    n_read_sheet_32 --> n_read_sheet_33
    n_read_sheet_33 --> n_read_sheet_33
  end
  subgraph n_read_sheet_get_credentials["get_credentials()"]
    n_read_sheet_53{"if os.path.exists('token.json')"}:::decision
    n_read_sheet_54{"try/except block"}:::decision
    n_read_sheet_55[/"File: open('token.json')"/]:::fileio
    n_read_sheet_56[/"File: json.load()"/]:::fileio
    n_read_sheet_59(["Output: print()"]):::output
    n_read_sheet_62{"if not creds or not creds.valid"}:::decision
    n_read_sheet_63{"if creds and creds.expired and creds.refresh_token"}:::decision
    n_read_sheet_71[/"File: open('token.json')"/]:::fileio
    n_read_sheet_53 --> n_read_sheet_54
    n_read_sheet_54 --> n_read_sheet_55
    n_read_sheet_55 --> n_read_sheet_56
    n_read_sheet_56 --> n_read_sheet_59
    n_read_sheet_59 --> n_read_sheet_62
    n_read_sheet_62 --> n_read_sheet_63
    n_read_sheet_63 --> n_read_sheet_71
  end
  subgraph n_read_sheet_read_google_sheet["read_google_sheet()"]
    n_read_sheet_88{"try/except block"}:::decision
    n_read_sheet_90["API: gspread.authorize()"]:::api
    n_read_sheet_97{"if worksheet_name"}:::decision
    n_read_sheet_105(["Output: print()"]):::output
    n_read_sheet_105[["Transform: len()"]]:::transform
    n_read_sheet_109(["Output: print()"]):::output
    n_read_sheet_109[["Transform: str()"]]:::transform
    n_read_sheet_88 --> n_read_sheet_90
    n_read_sheet_90 --> n_read_sheet_97
    n_read_sheet_97 --> n_read_sheet_105
    n_read_sheet_105 --> n_read_sheet_105
    n_read_sheet_105 --> n_read_sheet_109
    n_read_sheet_109 --> n_read_sheet_109
  end
  subgraph n_read_sheet_save_leads["save_leads()"]
    n_read_sheet_124{"if not leads"}:::decision
    n_read_sheet_125(["Output: print()"]):::output
    n_read_sheet_134[/"File: open()"/]:::fileio
    n_read_sheet_135[/"File: json.dump()"/]:::fileio
    n_read_sheet_137(["Output: print()"]):::output
    n_read_sheet_124 --> n_read_sheet_125
    n_read_sheet_125 --> n_read_sheet_134
    n_read_sheet_134 --> n_read_sheet_135
    n_read_sheet_135 --> n_read_sheet_137
  end
  subgraph n_read_sheet_main["main()"]
    n_read_sheet_151{"if leads"}:::decision
    n_read_sheet_153{"if filename"}:::decision
    n_read_sheet_155(["Output: print()"]):::output
    n_read_sheet_156(["Output: print()"]):::output
    n_read_sheet_156[["Transform: len()"]]:::transform
    n_read_sheet_157{"if leads"}:::decision
    n_read_sheet_158(["Output: print()"]):::output
    n_read_sheet_158[["Transform: .join()"]]:::transform
    n_read_sheet_151 --> n_read_sheet_153
    n_read_sheet_153 --> n_read_sheet_155
    n_read_sheet_155 --> n_read_sheet_156
    n_read_sheet_156 --> n_read_sheet_156
    n_read_sheet_156 --> n_read_sheet_157
    n_read_sheet_157 --> n_read_sheet_158
    n_read_sheet_158 --> n_read_sheet_158
  end
  click n_read_sheet_32 call showStepDetail("read_sheet.py", 32)
  click n_read_sheet_33 call showStepDetail("read_sheet.py", 33)
  click n_read_sheet_33 call showStepDetail("read_sheet.py", 33)
  click n_read_sheet_53 call showStepDetail("read_sheet.py", 53)
  click n_read_sheet_54 call showStepDetail("read_sheet.py", 54)
  click n_read_sheet_55 call showStepDetail("read_sheet.py", 55)
  click n_read_sheet_56 call showStepDetail("read_sheet.py", 56)
  click n_read_sheet_59 call showStepDetail("read_sheet.py", 59)
  click n_read_sheet_62 call showStepDetail("read_sheet.py", 62)
  click n_read_sheet_63 call showStepDetail("read_sheet.py", 63)
  click n_read_sheet_71 call showStepDetail("read_sheet.py", 71)
  click n_read_sheet_88 call showStepDetail("read_sheet.py", 88)
  click n_read_sheet_90 call showStepDetail("read_sheet.py", 90)
  click n_read_sheet_97 call showStepDetail("read_sheet.py", 97)
  click n_read_sheet_105 call showStepDetail("read_sheet.py", 105)
  click n_read_sheet_105 call showStepDetail("read_sheet.py", 105)
  click n_read_sheet_109 call showStepDetail("read_sheet.py", 109)
  click n_read_sheet_109 call showStepDetail("read_sheet.py", 109)
  click n_read_sheet_124 call showStepDetail("read_sheet.py", 124)
  click n_read_sheet_125 call showStepDetail("read_sheet.py", 125)
  click n_read_sheet_134 call showStepDetail("read_sheet.py", 134)
  click n_read_sheet_135 call showStepDetail("read_sheet.py", 135)
  click n_read_sheet_137 call showStepDetail("read_sheet.py", 137)
  click n_read_sheet_151 call showStepDetail("read_sheet.py", 151)
  click n_read_sheet_153 call showStepDetail("read_sheet.py", 153)
  click n_read_sheet_155 call showStepDetail("read_sheet.py", 155)
  click n_read_sheet_156 call showStepDetail("read_sheet.py", 156)
  click n_read_sheet_156 call showStepDetail("read_sheet.py", 156)
  click n_read_sheet_157 call showStepDetail("read_sheet.py", 157)
  click n_read_sheet_158 call showStepDetail("read_sheet.py", 158)
  click n_read_sheet_158 call showStepDetail("read_sheet.py", 158)
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
                    
API Call File I/O Database Decision Output Transform

All Steps

Step Detail

Select a step from the diagram or list to see its details.

Services

  • Google Auth (google.oauth2)
  • Google Sheets (gspread)

Secrets

  • GOOGLE_APPLICATION_CREDENTIALS

Imports

External

  • argparse
  • datetime
  • dotenv
  • google.auth.transport.requests
  • google.oauth2.credentials
  • google_auth_oauthlib.flow
  • gspread
  • json
  • os
  • pickle
  • sys