result = await materialize_campaign(db, c, recipient_rows) c.total_recipients = result.get("total", 0) await db.commit() res = await start_campaign(db, c) if not res.get("ok"): raise HTTPException(status_code=409, detail=res.get("reason", "Cannot start")) await log_audit(db, user.id, "campaign.start", "campaign", c.id, {"queued": res.get("queued")}) return {"status": "running", "queued": res.get("queued")}