Grounded en el código real · AI-first · con Fable

Los mejores flows EVER — el negocio entendido a fondo, la operación re-pensada

Cada operación funciona por UI y por AI (click ✏️ o pídele al Copilot → misma proposal → mismo drawer → mismo execute). El poder del motor se hace legible, auditable y reversible — nunca se recorta.

◆ Parte 1 — El modelo mental del negocio

Relo es un arbitraje de resultados: vende resultados a marcas y los compra a afiliados, más baratos. Ese spread es TODO el negocio.

Cliente paga a Relo
$431.70
Samsung · 5% de una venta de $8,634
−
Relo paga al partner
$30.00
Mobupps · $30/unidad
=
Relo se queda
$401.70
el margen · ~93%

Regla de oro: el margen es visible en cada decisión de dinero ("$87 de cada $100 ✓") y el partner JAMÁS ve el revenue, solo su comisión. Segunda verdad: el dinero tiene dos temperaturas — Generado (lo que trackea la fuente, gross) vs Validado (lo que el cliente confirmó facturable). Los "6 números" de hoy son este par mal etiquetado seis veces.

El objetivo manda — la matriz que gobierna el vocabulario

Objetivo ↓ / Fuente →AppsFlyerPixelGA4Postback
VentasSamsung ✓posibleposibleposible
LeadsposibleQuote ✓posibleposible
Clicks—posibleposibleCPC
Impresiones—posible—CPM

El objetivo dicta si dices "Órdenes" o "Leads", si el KPI es ticket o CPL, el modelo de comisión ($/u · %rev · $/lead · CPC · CPM) y cuántos niveles expande la tabla. El admin nunca debe hablar samsungués con un cliente de leads.

La cadena de precedencia — el embudo de 7 pisos

EL modelo mental clave: cada orden cae por un embudo y en cada piso puede cambiar de forma. (Ejemplo: orden $8,634 · CID atb-tabs · segmento TAB.)

1
Filtro de segmentos
¿el partner tiene TAB habilitado? (null=todo · []=nada · subset)
2
Reclasificación
(atb-tabs, TAB) → MX — "esto se factura como Mobile"
3
Filtro de billing
¿este CID tiene bloqueado este segmento? → se cae la fila
4
Resolución de tarifa ◄ jerarquía interna
congelada ► tier (escalera retroactiva, ignora CID) ► override por CID ► override partner-wide ► PSC ► default cliente
5
Carve por CID
atb-tabs tiene su propio cap $25K, aparte del cap MX
6
Cap de segmento
el resto se topa contra el cap MX del partner
7
Comisión final 💰
Σ(carves topados) + min(resto, cap segmento)

Dos cosas contraintuitivas que hay que mostrar, no explicar: los tiers son retroactivos (BEdig WR: 938 u → cruza 150 → TODAS al 4% = $26,319.40 al centavo); los caps son estrategia (la bolsa se sobre-asigna a propósito; la cascada frena; solo el piso de margen 85% bloquea, con escape auditado).

El loop mensual — el negocio ES un ciclo

①
Planear
día ~25 · bolsa → caps
→
②
Tráfico
caps queman · auto-pause
→
③
Validar
ledger · gen vs val
→
④
Cerrar
cierres = motor vivo
→
⑤
Pagar
approve → factura → paid

Hoy partido en 3 zonas de nav sin hilo. El rediseño lo hace la cinta del ciclo: una tira permanente en el Hoy con la estación activa iluminada.

Relo es una máquina de spread donde una sola venta puede cambiar de segmento, de tarifa y de tope tres veces antes de convertirse en comisión — y el trabajo del admin es que ese poder sea legible, auditable y reversible en cada uno de los ~30 clicks que hace al día.
F1

El Pulso — mirar → actuar

absorbe: el daily glance · el 80% de los días es este flow y nada más
Modelo mental"En 10 segundos sé si hoy sangra dinero; en 2 clicks lo detengo."
1
Inicio global

Roster de clientes como mini-dashboards, cada uno en el idioma de su objetivo: Samsung ventas·AF $4.5M ✓ / Quote leads·Pixel 1,204 · ⚠️ fuente callada 2d 🔴

2
Hoy de Samsung — command center

Bento 8 KPIs (Revenue $4.52M · Órdenes 512 · Nos cuesta $148K · Nos queda $96.8K · runway 11d · Relo gana $312K/87% con la resta explícita · ROAS · Proyección · Atención) + tira de atención ámbar (1 fuego por línea, deep-link) + la cinta del ciclo (Tráfico iluminado) + la tabla maestra (Agrupar por: Deals/Campaña/Segmento/Partner, Σ solo dinero, inline ⏸➕✏️)

3
Actuar sin salir

El cap MX de Mobupps al 91% con 26 días de mes es el fuego. Click ➕ en la fila →

⬥ el fuego real, no el ruido
4
El drawer de budget — la primitiva estrella (gateway único)

Slider con recalc en vivo <300ms · la bolsa (barra apilada: generado, tu cambio resaltado, otros partners, zona rayada de overbooking, línea blanca=bolsa real) · ecuación (paga − pagamos = nos quedamos $87 de $100 ✓) · transparencia siempre ("calculado con: ticket $8,634 · 512 ventas · paga 5% · validación 55%")

⬥ empieza mañana 00:00🔄 gateway: RBAC+parity+audit🔔 draft email · toast "Deshacer" 30s
5
Volver al Pulso

La fila muestra el cap nuevo + puntito de proveniencia: hover → cap $45K · Joe · hoy 9:14 · vía Hoy · era $30K · [deshacer]

▲ La versión AI

"súbele el cap de MX a Mobupps a 45" → el Copilot construye la MISMA proposal (set_budget_cap) → renderiza el mismo drawer de confirmación → mismo execute-action → mismo audit + undo. Cero rama paralela: UI y AI son dos bocas del mismo gateway.

Por qué es la mejor versiónColapsa mirar-decidir-actuar-auditar en UNA superficie sin cambio de contexto, y muestra la consecuencia (unidades, bolsa, margen) ANTES de aplicar. Ningún Ads Manager te enseña el spread de tu decisión en vivo.
F2

El Ciclo — el loop mensual como producto

absorbe: planner + validación + cierres + pagos — es UN proceso, no 4 páginas
Modelo mental"El mes es un tren de 5 estaciones; siempre sé en cuál estoy, qué falta para avanzar, y el botón de la siguiente estación está donde estoy parado."
①
Planear (~día 25)

Tabla densa (bolsa Samsung → caps por partner×segmento, break-even, margen vs target 87%). Real: BEdig se sale → auto-distribuir su $113,314 en 2:1 → Mobupps $116,739 · Mobavenue $48,223. Tarifas = filas PSC nuevas con effective_from (nunca sobrescribir). Sprints se stagean igual.

🔄 Save por gateway + auditwarning de sobre-asignación VISIBLE
②
Tráfico (es F1, el Pulso)

Los eventos llegan solos: 🔔 auto-pause · 🔔 cascada (con su motivo encima — fin del misterio "¿quién pausó?"). El reset mid-month (hoy SQL crudo 😱) se vuelve opción del drawer: "guardar lo ganado $19,250 y abrir $7,250 fresco desde mañana".

③
Validar (cliente sube ledger)

Consola de validación + waterfall: generado $4.52M → validado $2.49M (55%) → diferencias por causa. El par Generado/Validado con la MISMA etiqueta que en todos lados.

⬥ si no llega → generated_advance ⚠️🔔 recuerda solo cuando el archivo aterrice
④
Cerrar — botón "Cerrar el mes" EN el Hoy

Preview antes de generar (partner × total × base validated/advance × delta). Los pending renderizan el motor VIVO (punto verde), no números congelados viejos.

🔄 gateway generate_cierresundo: cancela solo lo que creó y solo si sigue pending
⑤
Pagar

Pipeline pending→approved→invoice→processing→paid. Approve re-congela del motor en ese instante (lo que viste = lo que se firma). Maker/checker opcional para montos altos. Al último paid: "Julio cerrado ✓ · [Planear agosto →]" — el tren nunca para.

▲ La versión AI

"¿cómo vamos con el ciclo de julio?" → lee la cinta: "Estación Tráfico, día 4. MX al 61%, validación de junio pendiente (3 cierres advance), próxima acción: nada, todo verde." · "genera los cierres de junio" → proposal con preview → confirm → execute.

Por qué es la mejor versiónConvierte un proceso tribal (en la cabeza de Joe) en un objeto de producto con estado visible — cualquier empleado nuevo sabe dónde está el mes y cuál es el siguiente botón. Nadie tiene el ciclo como first-class citizen; todos tienen "páginas".
F3

Alta Viva — onboarding que termina respirando

absorbe: client onboarding · el cliente nace vivo o nace muerto
Modelo mental"Un cliente no está 'creado' cuando existen sus filas; está creado cuando llega su primer evento y le calculamos su primera comisión. El wizard no termina en un ✓ — termina en un latido."
2
EL PIVOTE: Objetivo + Fuente

Al elegir, el resto del wizard se transforma en vivo. Captura los 2 inputs cold-start: ¿cómo te paga el cliente? (%rev/$venta/$lead/$click/CPM) + ticket estimado. 🔄 Probar conexión DENTRO del wizard: "✓ 2,481 eventos disponibles/24h" — los MMP dejan de nacer sin verificación.

4
Partners

Atribución con colisiones en vivo ("'sub1' con contains también matchea 'sub10' de Mobavenue — ¿exact?"), segmentos, tarifa, cap.

6
EL CHECKLIST DE VIDA (reemplaza el recibo muerto)

Anillo ◔ 5/7, grupos DATOS FLUYENDO / DINERO / OPCIONAL, cada 🔴🟡 con su botón. "Ir al Hoy" siempre habilitado; el checklist te sigue. Se cierra con el primer evento real, no con presencia de config.

🔄 auto-verifica cada minuto🔔 "🎉 primer evento — está VIVO" / "🔴 24h sin eventos"
▲ La versión AI

"da de alta WidgetCo, paga 6% rev, ticket ~$2,000, ventas por pixel, copia segmentos de Samsung" → proposal onboard_client como el paso de Revisión → confirm → execute → el Copilot queda suscrito al checklist: "te aviso cuando llegue el primer evento" 🔔.

Por qué es la mejor versiónRedefine "done": ningún wizard de la industria verifica que el dato FLUYE antes de declararse exitoso. El costo del cliente-muerto-al-nacer desaparece porque la verificación es asíncrona, honesta y persigue al admin.
F4

El Deal — el contrato de dinero, con la precedencia pintada ★

absorbe: rules + attribution + overrides + caps + Tester · el cap se edita hoy en 6 lugares → aquí en UNO
Modelo mental"UN lugar donde vive el contrato Mobupps×Samsung completo, donde siempre ves QUÉ regla está ganando y por qué, y donde puedes ensayar cualquier cambio contra el motor real antes de firmarlo."
2
Fila de atribución (arriba — sin ella no hay nada)

sub1 · exact · 512 matches/7d · sin conflictos ✓ + "probar con un valor real" → pegas un CID → "✓ matchea a Mobupps por regla #1". Colisiones inline en rojo con el rival nombrado.

3
Una tabla por segmento — la precedencia como columnas

Base(PSC) → Override activo → EFECTIVA → Gastado/Cap → Queda → Runway → ⏸✏️. La EFECTIVA la resuelve el motor real. El chip del tier: "128/150 u · a 22 del 4% retroactivo · impacto +$1,240". Proveniencia en hover de CADA número (cierra el agujero de match_rules sin created_by).

4
Editar: ✏️ abre el drawer del gateway

Precargado; recalc en vivo de comisión/margen/ecuación; ⬥ vigencia (fila nueva versionada). ✗ rojo solo si rompes el piso de margen (con escape + razón auditada).

5
EL TESTER (restaurado) — la precedencia ejecutable

Pegas una orden hipotética → el motor la corre por los 7 pisos y pinta cada uno, con los perdedores: ④ Tarifa: override CID atb-tabs $250/u ◄ GANA (venció a PSC $30 · default 0.6%). Eso enseña la precedencia mejor que cualquier doc.

6
TEST MODE (restaurado) — ensayar en serio

Banda naranja abajo · editas reglas como drafts · 🔄 "Simular el mes" corre el motor real en dry-run (overlay.go) → diff "$41,200 → $46,850 (+$5,650)" → Commit (audit, un batch) o descartar. Es el maker/checker natural: draft el empleado, commit Joe.

▲ La versión AI

"ponle a BEdig un tier en WR: 3% base, 3.5% a 75, 4% a 150, retroactivo, desde abril" → proposal create_rate_override tiered con preview del ladder → confirm → execute con parity → fila nueva con proveniencia. Y al revés: "¿por qué Mobavenue cobra $250 en vez de $30?" → el Copilot corre el Tester y responde con el embudo pintado.

Por qué es la mejor versiónNingún sistema de comisiones te enseña qué regla ganó y a quiénes venció, ni te deja ensayar contra el motor de producción sin riesgo. Es operar con rayos X — y el 70% del código ya existe, solo estaba muerto.
F5

El Sprint — lanzar y ajustar campañas de verdad

absorbe: campaign launch/detail · hoy es teatro, debe ser atómico y real
Modelo mental"Una campaña es un deal con fecha de caducidad. Lanzarla = declarar objetivo+ventana, elegir partners, ponerle SU dinero — y que TODO lo que el wizard muestra realmente se escriba."
2
Quiénes y cuánto (el paso que hoy es fake, ahora real)

Tabla de partners con su deal base al lado ("Mobavenue: base MX $30/u") para decidir el deal de campaña CONTRA el contexto. Por partner: tarifa de campaña ($250/u → rate_override con cid), cap de campaña (carve $25K → budget_override con cid), reglas de segmento del sprint (TAB→MX reclassify). Todo por el gateway.

3
Revisión honesta

Cada línea viene del payload real (nada hardcodeado): N partners × M segmentos, K overrides, J carves. Preview de email/WhatsApp.

4
Lanzar — atómico

Todo o rollback; los overrides van por el gateway (auditados con created_by).

🔔 emails con draft aprobado
5
Vivir la campaña

Detalle con nombre-switcher (⭐), tabs reales, columna deal efectivo resuelto por el motor. Ajustar tarifa = el mismo drawer del Deal (se acabó el editor paralelo). La fila del sprint nunca desaparece del Pulso.

▲ La versión AI

"lanza sprint de tablets en abril con Mobavenue y BEdig, $250/u, carve $25K c/u, TAB se factura como MX" → UNA proposal compuesta (campaña + 2 rate_overrides + 2 carves + 2 reclassifies) como el paso de Revisión → confirm → execute atómico → undo compuesto.

Por qué es la mejor versiónMuestra el deal de campaña JUNTO al deal base al decidirlo (nadie pacta $250/u sin ver que el base es $30/u), y elimina la categoría de bug "el wizard dijo sí pero no escribió nada".
F6

La Respuesta — contestar a un partner en <60s

absorbe: partner support + reconciliación · cada "¿por qué me pagaron X?" es hoy 20 min de SQL mental
Modelo mental"Cada pregunta de un partner es una discrepancia entre lo que él ve y lo que el motor calculó. La respuesta perfecta = ver SU pantalla + ver el POR QUÉ del motor, lado a lado."
2
Perfil del partner, mes abril

Mobavenue: "hicimos $58K, ¿por qué el pago dice $37,447?" → la cifra canónica en el header: Generado $58,120 · Validado $41,300 · Pagado $37,447. + "Pendientes con este partner" (factura, PID con approve inline).

3
"👁 Ver como el partner" (impersonación auditada)

Ves EXACTAMENTE su portal — él ve $58K porque su vista no descuenta el carve topado ni la validación. Ya sabes de dónde viene su número.

4
Explicar el delta — el waterfall del motor

$58,120 → −$9,570 (carve atb-tabs topado $25K) → −$7,250 (validación 88%) → −$3,853 (cap MX) = $37,447. Cada resta con su piso del embudo y su link.

⬥ si el reclamo tiene razón → adjusted_commission con razón, auditado
5
Responder — partner-safe estructural

✉️ con el desglose insertable. El composer bloquea estructuralmente revenue, tarifa del cliente, margen y datos de otros partners (no por disciplina).

▲ La versión AI

"¿por qué el pago de Mobavenue de abril salió $37,447?" → el Copilot corre el waterfall con las 4 restas. → "escríbele la explicación" → draft partner-safe (conoce la política) → apruebas → send.

Por qué es la mejor versiónEl momento de mayor fricción de confianza del negocio pasa de "20 min reconstruyendo el cálculo con SQL" a "60 segundos leyendo un waterfall", y la respuesta es estructuralmente incapaz de filtrar el margen de Relo.
F7

El Link — el canónico en 10 segundos

absorbe: link generator · la pregunta más frecuente merece el flow más corto
Modelo mental"El link no es una página; es un botón que vive donde estás parado, y siempre produce EL link correcto para ESTE partner en ESTA campaña — tamper-proof por default."
2
Popover (no página)

El link ya generado con el contexto inferido. Para pixel: short link wrapper por default (t.relo.mx/c/XyZ12, cookie tamper-proof) con el raw ?sub2= como alternativa marcada "menos confiable". 🔄 "probar" → "✓ atribuiría a Mobupps (sub1·exact)" — nace verificado contra el matcher real.

3
Entregar

[Copiar] · [Copiar WhatsApp] · [Enviar ✉️]. Si vino de un ticket: [Responder con este link] cierra el loop en un click.

▲ La versión AI

"dame el link de tabs para Mobupps" → link + verificación de matching en la respuesta → "mándaselo" → draft → send. 10 segundos, cero navegación.

Por qué es la mejor versiónLa pregunta más frecuente deja de tener página: el link es contextual, verificado contra el motor de atribución, y opinionado (wrapper por default). Un link mal armado = un mes mal atribuido; aquí es difícil armarlo mal.

✦ Los momentos donde la magia pasa

1

El recalc en vivo del drawer (<300ms). Mueves el slider y VES unidades, bolsa, margen y "quién se pausa" moverse. El admin siente que opera una máquina, no que llena formularios.

2

El piso ④ del Tester mostrando a los perdedores. Override $250 ◄ GANA (venció a: PSC $30 · default 0.6%) — la precedencia se aprende usándola, en 10 segundos, para siempre.

3

El primer 🟢 del checklist de vida. 🔔 "🎉 Primer evento de WidgetCo" — el onboarding tiene un final emocional real, no un recibo.

4

El par Generado/Validado idéntico en todas partes. El día que Hoy, Deal, Pagos y el portal digan el mismo número con la misma etiqueta, mueren los "6 números" y las disputas de 20 min.

5

El toast "Deshacer" en una operación de dinero. Undo en caps/tarifas/reglas (gracias al before/after del gateway) — convierte el miedo a tocar el motor en confianza para delegarlo a empleados.

6

La proposal del Copilot aterrizando en EL MISMO drawer. Ahí el AI-first deja de ser demo y se vuelve arquitectura: pedirle al AI y hacer click son la misma operación con el mismo confirm y el mismo audit.

7

El chip "a 22 unidades del 4% retroactivo · +$1,240". El tier deja de ser sorpresa de fin de mes y se vuelve una palanca que ves acercarse.

§ Los principios de estos flows

1

Un solo gateway para todo write

Humano o AI, cada mutación de dinero pasa por propose→confirm→execute: RBAC, bounds, before/after, parity, undo, idempotencia. La UI es una boca, el Copilot otra, el motor de confianza es uno.

2

La precedencia se muestra, no se explica

Columna Efectiva resuelta por el motor real, Tester con perdedores visibles, proveniencia en hover. Hacer legible el embudo de 7 pisos ES el producto.

3

Consecuencia antes que confirmación

Ningún "¿seguro?" sin enseñar qué pasa: unidades, bolsa, margen, quién se pausa, recalculado en vivo antes de aplicar.

4

El objetivo manda el idioma

KPIs, tabs, modelos de comisión y niveles de expansión derivan del objetivo. Jamás hablarle en unidades a un cliente de leads.

5

Nunca inventar un número

🟢 completo / 🟡 estimado "calculado con…" / 🔴 falta config, se pide inline. Un sistema de dinero que estima sin decirlo pierde la confianza una vez y para siempre.

6

Overbooking es estrategia; solo el piso de margen bloquea

La bolsa sobre-asignada es termómetro (la cascada frena); el único ✗ rojo es romper el margen, con escape + razón auditada.

7

Async, nunca rehén

Verificaciones en background con 🔔; "Ir al Hoy" siempre habilitado; los checklists persiguen, no detienen.

8

Dashboards densos, flujos aireados

El Pulso te asalta con datos (tablas > cards, números mono tabulares); wizards y drawers respiran. Densidad = poder visible; aire = decisión clara.

los mejores flows ever · grounded + AI-first · con Fable · 2026-07-04· el plan maestro· la realidad