Commit Graph

197 Commits

Author SHA1 Message Date
Marcos Fargas
a7e2723a3e feat(integrations): add skills endpoint, enrich creative context with client info, and support meta in creatives 2026-10-12 18:40:11 +02:00
Marcos Fargas
52cebab3e6 feat(integrations): support history_days in fatigue candidates and ensure data envelope for WF2 2026-10-12 18:17:23 +02:00
Marcos Fargas
a17b1eae56 docs(integrations): complete API specification and n8n HMAC verification snippet 2026-10-12 13:47:47 +02:00
Marcos Fargas
958c59a8ec feat(creatives): task 5 - approval actions, outgoing webhooks with HMAC, and publish patch 2026-10-12 13:44:54 +02:00
Marcos Fargas
7b702cd4cc fix(integrations): support safe default keys when Dokploy env vars are not injected 2026-10-12 13:39:14 +02:00
Marcos Fargas
0f9f03fad5 feat(creatives): task 4 - claude integration endpoints (generation-requests, creatives, context, events) 2026-10-12 13:35:50 +02:00
Marcos Fargas
9f1721c921 fix(integrations): support parsedBody in authenticateIntegrationRequest 2026-10-12 13:22:38 +02:00
Marcos Fargas
b3936932d3 fix: import path without ts extension for standard Next compiler 2026-10-12 13:19:13 +02:00
Marcos Fargas
503f8322d1 fix(integrations): ensure explicit string array type for metaAdIds 2026-10-12 13:17:36 +02:00
Marcos Fargas
e650c9971e feat(creatives): task 3 - ingest and fatigue endpoints (clients, metrics/daily, candidates, mark) 2026-10-12 13:15:48 +02:00
Marcos Fargas
62d1f3a5f6 feat(creatives): task 2 - integrations auth and visibility scope with sanitization 2026-10-12 13:13:46 +02:00
Marcos Fargas
f08bcf2bb8 feat(creatives): task 1 - migration, models and seed for creatives module 2026-10-12 13:10:34 +02:00
4Ventures
3cb3296518 Load the full free Google Fonts gallery in Zona de marca typography.
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>
2026-10-10 02:00:09 +02:00
4Ventures
1715b0ac67 Expand Zona de marca into a full brand kit with asset uploads.
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>
2026-10-10 01:35:08 +02:00
4Ventures
e49111f63e Add Zona de marca brandbooks and strategist calendar generation.
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>
2026-10-10 01:05:15 +02:00
4Ventures
59f42eafe0 Anchor calendar previews to each client historical editorial line.
Remix same-month prior years and recurring series instead of generic season placeholders like Black Friday.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 23:57:41 +02:00
4Ventures
8723753066 Associate Detuatuformacion Meta ad account with De Tú A Tú.
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>
2026-10-09 10:20:00 +02:00
4Ventures
f316497650 Add in-app editorial calendar creator with month zoom and preview.
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>
2026-10-08 18:12:10 +02:00
4Ventures
501f8203e8 Replace BPS Excel stub with multi-client calendar template.
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>
2026-10-08 17:38:38 +02:00
4Ventures
025fc85175 Harden Meta publish against dirty captions and IG duplicates.
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>
2026-10-08 17:17:07 +02:00
4Ventures
67969b12cb Add batch importer for Drive RRSS editorial calendars.
Import requested months for BPS, Brava, TYD, Halal, Noberplast and 4Ventures from the shared Excel export.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 16:43:07 +02:00
4Ventures
71110915af Ship CRM health, cohort CAC, GHL/Shopify sync, and agency alerts.
Add WooCommerce health monitoring, 60d cohort CAC in CRM and portfolio,
incremental GHL upsert, Shopify orders→deals, and daily health-alert cron.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 12:28:38 +02:00
4Ventures
4baf256750 Make Clientify CRM sync daily and reliable via incremental upsert.
Webhooks alone miss WooCommerce deals; replace wipe+cap sync with lookback upsert and a dedicated Dokploy cron.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 11:02:51 +02:00
4Ventures
b4e843762e Show Google Ads platform leads separately from CRM-sourced leads.
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>
2026-10-08 10:35:11 +02:00
4Ventures
b53161dc4d Include paid ad channels with spend in CRM % a cliente table.
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>
2026-10-08 10:11:30 +02:00
4Ventures
8ef21d98d7 Show global and per-channel CAC in CRM and Métricas.
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>
2026-10-08 09:48:48 +02:00
4Ventures
e3fe157fa5 Harden per-client isolation for calendars, Meta, creatives, and KPIs.
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>
2026-10-07 15:57:21 +02:00
4Ventures
83de3fb3aa Fix calendar drag snap-back, IG filter, and default to 2026.
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>
2026-10-07 15:29:49 +02:00
4Ventures
2759aa87f6 Enable live Meta caption updates and partial IG/FB deletes from the pipeline.
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>
2026-10-07 13:46:48 +02:00
4Ventures
26dc411647 Harden scheduled Meta publish and auto-link Drive for pipeline creatives.
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>
2026-10-07 13:33:41 +02:00
4Ventures
0d65614518 Fix Drive media PATCH body type for Next build.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 12:48:44 +02:00
4Ventures
233d3f202e Mirror pipeline creatives into each client's Drive folder tree.
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>
2026-10-07 12:44:07 +02:00
4Ventures
5b895d830b Add creative image upload to the new pipeline piece form.
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>
2026-10-07 12:14:14 +02:00
4Ventures
b4d86e1e28 Enable in-place pipeline edits with calendar sync and timed publish cron.
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>
2026-10-06 18:33:10 +02:00
4Ventures
ade2762b01 Wire Meta IG/FB publish from pipeline with feed view and delete.
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>
2026-10-06 18:18:15 +02:00
4Ventures
c2bbbfcd06 Link pipeline creatives to RRSS calendar pieces with pick-or-create UI.
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>
2026-10-06 18:01:11 +02:00
4Ventures
12ecde1b3b Add agency-only schedule fields and queue for pipeline creatives.
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>
2026-10-06 17:54:00 +02:00
4Ventures
392af11060 Make uploaded calendars live with drag-and-drop days and readable chips.
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>
2026-10-06 17:07:09 +02:00
4Ventures
91380e2285 Revert unsolicited creative pipeline review-only changes.
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>
2026-10-06 16:54:38 +02:00
4Ventures
d073df12d1 Treat Brava-style SEMANA/Story/POST Excel as the official calendar template.
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>
2026-10-06 16:46:17 +02:00
4Ventures
b395243ce7 Add CSV/Excel calendar upload that maps posts into the monthly RRSS view.
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>
2026-10-06 16:26:34 +02:00
4Ventures
ed275f475a Fix leftover lookback constant so the Ads/Métricas build compiles.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 15:37:36 +02:00
4Ventures
a5bfec698b Align Ads and Métricas on the same paginated ad_daily warehouse.
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>
2026-10-06 15:33:06 +02:00
4Ventures
fac9867202 Fix calendar plan merge typing so production build can compile.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 15:25:24 +02:00
4Ventures
965a58540e Ship monthly goals, calendar creative zoom, and legal pages.
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>
2026-10-06 15:17:15 +02:00
4Ventures
d411de0086 Split Google Ads copy into titles, long titles and descriptions.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:44:38 +02:00
4Ventures
b9ddc7b806 Show every Google PMax text, image and YouTube asset in Ads zoom.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:38:24 +02:00
4Ventures
8db642fa2a Label LinkedIn/TikTok as a saved profile, not live social metrics.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:19:10 +02:00
4Ventures
dfb44d240e Align CRM, Ads, Social and Organic dashboards with the metrics visual system.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:12:27 +02:00
4Ventures
4d662430c0 Redesign the metrics scorecard for scanability and clearer comparisons.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 13:01:10 +02:00