senti-beta / integrations /google_sheets.py
joseph njoroge kariuki
Deploy Senti AI to Hugging Face Spaces
021e065
class GoogleSheetsExporter:
"""
Export Senti business data to Google Sheets.
Useful for SMEs who want spreadsheet access.
"""
def export_transactions(
self,
transactions: list,
spreadsheet_id: str,
credentials_path: str
) -> bool:
try:
from google.oauth2.service_account import (
Credentials
)
from googleapiclient.discovery import build
creds = Credentials.from_service_account_file(
credentials_path,
scopes=['https://www.googleapis.com/auth/spreadsheets']
)
service = build('sheets', 'v4', credentials=creds)
# Prepare data
headers = [
'Date', 'Description', 'Amount',
'Direction', 'Category', 'Balance'
]
rows = [headers]
for tx in transactions:
rows.append([
tx.get('timestamp', '')[:10] if 'timestamp' in tx else tx.get('date', '')[:10],
tx.get('description', ''),
tx.get('amount', 0),
tx.get('direction', ''),
tx.get('category', ''),
tx.get('balance', 0)
])
service.spreadsheets().values().update(
spreadsheetId=spreadsheet_id,
range='Sheet1!A1',
valueInputOption='RAW',
body={'values': rows}
).execute()
return True
except Exception as e:
print(f"Sheets export failed: {e}")
return False