Link Leads Lake records to campaign on each run
- get_leads_this_month() now returns (count, [record_ids]) - update_campaign_leads_lake() updates the multipleRecordLinks field 'Leads Lake' in Google Ads Campaigns with the lead IDs found for that course this month - run.py calls the update after fetching leads per campaign Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ec3802eccf
commit
2191a498d7
@ -147,9 +147,9 @@ class AirtableClient:
|
||||
|
||||
return {"created": created, "updated": updated}
|
||||
|
||||
def get_leads_this_month(self, cursoid_text: str) -> int:
|
||||
def get_leads_this_month(self, cursoid_text: str) -> tuple[int, list[str]]:
|
||||
"""
|
||||
Cuenta todos los leads validados del mes actual para un curso.
|
||||
Devuelve (count, [record_ids]) de leads del mes actual para un curso.
|
||||
Filtra por attr_cursoid (que coincide con CursoID Text de la campaña).
|
||||
"""
|
||||
now = datetime.now()
|
||||
@ -161,5 +161,10 @@ class AirtableClient:
|
||||
f"{{creado}}>='{mes_inicio}'"
|
||||
f")"
|
||||
)
|
||||
records = self.leads.all(formula=formula)
|
||||
return len(records)
|
||||
records = self.leads.all(formula=formula, fields=["airtable id"])
|
||||
ids = [r["id"] for r in records]
|
||||
return len(ids), ids
|
||||
|
||||
def update_campaign_leads_lake(self, campaign_airtable_id: str, lead_ids: list[str]) -> None:
|
||||
"""Actualiza el campo 'Leads Lake' de una campaña con los IDs de leads del mes."""
|
||||
self.campaigns.update(campaign_airtable_id, {"Leads Lake": lead_ids})
|
||||
|
||||
5
run.py
5
run.py
@ -81,8 +81,9 @@ def run():
|
||||
print(f"📚 {campaign['curso']}")
|
||||
print(f" Campaign ID: {cid} | PPL: {campaign['ppl']}€ | Cap: {campaign['capping_mensual']} leads")
|
||||
|
||||
# 1. Leads reales desde Airtable
|
||||
leads = at.get_leads_this_month(campaign["cursoid_text"])
|
||||
# 1. Leads reales desde Airtable + vincular en campo Leads Lake
|
||||
leads, lead_ids = at.get_leads_this_month(campaign["cursoid_text"])
|
||||
at.update_campaign_leads_lake(campaign["airtable_id"], lead_ids)
|
||||
|
||||
# 2. Métricas de Google Ads
|
||||
metrics = gads.get_campaign_metrics(cid)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user