Browse ~1950 OFL fonts with search, category filters and live preview; one click adds a font to the brand kit.
Co-authored-by: Cursor <cursoragent@cursor.com>
Expert sections plus logos, fonts, color tokens and file kit so ads, calendars and B2B content share one brand system.
Co-authored-by: Cursor <cursoragent@cursor.com>
Per-tenant brandbooks power ads, RRSS calendars, LinkedIn B2B and blog; Nov calendars now create from trends + client DNA instead of copying history.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remix same-month prior years and recurring series instead of generic season placeholders like Black Friday.
Co-authored-by: Cursor <cursoragent@cursor.com>
Support multiple Meta ad accounts per tenant in creatives/sync UI so ECP and Detuatuformacion can both be linked.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency can pick a month, generate a brand/seasonality preview, and add/edit/delete pieces with the same fields as the creative pipeline, optionally syncing drafts there.
Co-authored-by: Cursor <cursoragent@cursor.com>
Official download now generates a blank workbook with catalog autofill, notas_internas ignored on import, and the same template for every tenant.
Co-authored-by: Cursor <cursoragent@cursor.com>
Strip production notes before posting, persist each network id immediately, refuse IG republish if delete fails, and place FB photos via feed for better timeline visibility.
Co-authored-by: Cursor <cursoragent@cursor.com>
Import requested months for BPS, Brava, TYD, Halal, Noberplast and 4Ventures from the shared Excel export.
Co-authored-by: Cursor <cursoragent@cursor.com>
Webhooks alone miss WooCommerce deals; replace wipe+cap sync with lookback upsert and a dedicated Dokploy cron.
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarifies BPS case: Google Ads conversions exist while Clientify has no source=google contacts; ventas stay on ecommerce until UTM/gclid maps the deal.
Co-authored-by: Cursor <cursoragent@cursor.com>
Google (and other channels with ads but no CRM-sourced leads) now appear with 0 leads so investment and CAC stay visible.
Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse won deals + ad spend for every tenant: CAC column in the metrics channel table, and a CRM hero + channel breakdown with the same formula.
Co-authored-by: Cursor <cursoragent@cursor.com>
Validate view-as tenants, scope service-role mutations by tenant_id, add documents RLS, refuse portfolio-wide data dumps, and block Meta publish when a Page/IG is linked to another client.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prefer the latest year in the archive, normalize Instagram casing so stories show under IG/FB, sync pipeline dates on move, and stop stale plan re-renders from undoing a successful drag.
Co-authored-by: Cursor <cursoragent@cursor.com>
Facebook edits in place when possible; Instagram deletes and republishes. Trash and delete-meta no longer block when only one network succeeds.
Co-authored-by: Cursor <cursoragent@cursor.com>
Schedule save auto-approves and publishes when due; cron recovers stale jobs every 5m. Drive sync auto-matches client folders under Clientes when not linked.
Co-authored-by: Cursor <cursoragent@cursor.com>
On upload, create Pipeline-creatividades_{slug}/YYYY/MM under the linked client folder and name files DD-MM-YYYY_formato_hook[-N].
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency can pick cover (and carousel slides) when creating a piece instead of only after the card exists.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency can edit title/copy on existing cards (optional RRSS sync); Dokploy runs pipeline-publish every 10 minutes with daily-sync as backup.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency can publish now or on schedule, remove live posts from Meta, and browse pieces newest-first like an IG board.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency can choose a scheduled calendar post to prefill title, copy, pillar and date, or create/edit one in the calendar while adding it to the pipeline.
Co-authored-by: Cursor <cursoragent@cursor.com>
Approved pieces can be timed for IG/FB from the agency board; cron queues due jobs and calendar uses scheduled_at. Meta publish comes next.
Co-authored-by: Cursor <cursoragent@cursor.com>
Posts persist to the tenant calendar document when moved; contrast on the month grid no longer uses dark text on dark fills.
Co-authored-by: Cursor <cursoragent@cursor.com>
Restore CreativesPipeline on /creatives and the previous board/API behavior (published pieces visible again; no forced reject note).
Co-authored-by: Cursor <cursoragent@cursor.com>
Harden week-grid parsing (placeholders, status rows, month wrap) and ship an October-shaped plantilla for agency uploads.
Co-authored-by: Cursor <cursoragent@cursor.com>
Agency can import editorial calendars per tenant; pieces land on each day with the same month grid and day zoom as existing plans.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ad Tracker only loaded 2000 newest rows, so Brava showed 0 € while Métricas summed the full month. Both now page the same table for the selected range.
Co-authored-by: Cursor <cursoragent@cursor.com>
Editable targets vs actual, pipeline review-only with client reject notes, and published pieces opening from the calendar day.
Co-authored-by: Cursor <cursoragent@cursor.com>
Hide duplicate GSC/GA4 views and the manual day-load CTA so Orgánico matches Search Console, Analytics, and Métricas.
Co-authored-by: Cursor <cursoragent@cursor.com>
Stop seeding Agua Miia’s October plan for every client and restrict the portal publish action to that tenant only.
Co-authored-by: Cursor <cursoragent@cursor.com>
The second panel was still live because Next failed on an unwrapped ternary; the unified scorecard can deploy now.
Co-authored-by: Cursor <cursoragent@cursor.com>
Split ads, CRM and web into numbered blocks, drop the Windsor second panel, and keep Google campaigns as a single extra table.
Co-authored-by: Cursor <cursoragent@cursor.com>
Warehouse leads/deals from GHL contacts and opportunities so Métricas and CRM can use the same scorecard as Clientify.
Co-authored-by: Cursor <cursoragent@cursor.com>
Absorb client approval, month filters and editorial pieces into Pipeline; redirect /panel-cliente and remove duplicate menu entry.
Co-authored-by: Cursor <cursoragent@cursor.com>