feat: add Instagram, Facebook, TikTok and LinkedIn slots

Organic social channels per client in the agency hub, separate from
paid Meta Ads.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
4Ventures
2026-09-22 18:58:29 +02:00
parent 670679d09c
commit eb00256bea
5 changed files with 66 additions and 8 deletions

View File

@@ -54,18 +54,18 @@ type AlertRow = {
const MATRIX_PROVIDERS = [
'meta_ads',
'google_ads',
'clientify',
'instagram',
'tiktok',
'linkedin',
'google_drive',
'wordpress',
] as const;
const SHORT: Record<string, string> = {
meta_ads: 'Meta',
google_ads: 'GAds',
clientify: 'CRM',
instagram: 'IG',
tiktok: 'TT',
linkedin: 'LI',
google_drive: 'Drive',
wordpress: 'WP',
};
function healthBadge(h: string) {
@@ -241,8 +241,8 @@ export default function AgencyPortfolioBoard() {
Panel de control · clientes y conexiones
</h3>
<p className="text-[11px] text-gray-500 mt-0.5">
Cada cliente con su Meta, Google Ads, Clientify, Drive y web
(WordPress…). Activa/apaga canales en Conexiones.
Cada cliente con ads, redes (IG/TikTok/LinkedIn), Drive y web.
Activa/apaga canales en Conexiones.
</p>
</div>
<button

View File

@@ -31,6 +31,10 @@ const PLACEHOLDERS: Record<string, string> = {
wordpress: 'https://sitio.com + Application Password',
prestashop: 'https://tienda.com + API key',
shopify: 'mitienda.myshopify.com + Admin API token',
instagram: '@handle o Instagram Business Account ID',
facebook: 'Page ID / facebook.com/…',
tiktok: '@handle o Advertiser / Business ID',
linkedin: 'Company Page ID / linkedin.com/company/…',
};
export default function ClientIntegrationsPanel({
@@ -106,6 +110,7 @@ export default function ClientIntegrationsPanel({
const groups = [
{ id: 'paid', title: 'Paid media' },
{ id: 'social', title: 'Redes sociales (orgánico)' },
{ id: 'analytics', title: 'Analítica y medición' },
{ id: 'crm', title: 'CRM' },
{ id: 'email', title: 'Email / lifecycle' },
@@ -291,6 +296,15 @@ export default function ClientIntegrationsPanel({
fase.
</p>
)}
{(p.id === 'instagram' ||
p.id === 'facebook' ||
p.id === 'tiktok' ||
p.id === 'linkedin') && (
<p className="text-[10px] text-gray-500">
Orgánico (páginas/perfiles). Distinto de Meta Ads /
TikTok Ads. OAuth live y publicación: siguiente fase.
</p>
)}
</li>
);
})}