Plantillas de Email - Referencia Completa
Este documento describe todas las plantillas de email de Floutic, cuándo se envían, qué contenido incluyen y cómo se ven visualmente.
:::tip Para el equipo de marketing Cada plantilla incluye una previsualización visual y el contenido legible que recibe el usuario. :::
Tabla de Contenidos
| Categoría | Plantillas | Cantidad |
|---|---|---|
| Autenticación | verify_email, password_reset, welcome, welcome_expert, welcome_company | 5 |
| Proyectos | project_application, project_approved, project_rejected, expert_invited, expert_selected, expert_removed_from_project, proposal_not_selected, proposal_revision_requested, proposal_resubmitted, proposal_deleted, project_reopened | 11 |
| Match | match_confirmed_company, match_confirmed_expert | 2 |
| Hitos | milestone_completed, milestone_approved, milestone_rejected, milestone_awaiting_payment | 4 |
| Pagos | payment_confirmed_project_started, payment_received, payment_released, payment_refunded | 4 |
| Reseñas | review_received, request_review | 2 |
| Comunicaciones | message_received, dispute_notification | 2 |
| Admin | admin_invitation, profile_verified, profile_rejected | 3 |
| DAC7 | dac7_review_notification | 1 |
Total: 33 plantillas (incluyendo email_base.html)
Arquitectura
backend/app/templates/emails/
├── email_base.html # Template base (heredado por todos)
├── verify_email.html # Verificación de email
├── password_reset.html # Recuperación de contraseña
├── welcome.html # Bienvenida genérica
├── welcome_expert.html # Bienvenida experto
├── welcome_company.html # Bienvenida empresa
├── project_application.html # Nueva aplicación
├── project_approved.html # Proyecto aprobado
├── project_rejected.html # Proyecto rechazado
├── project_reopened.html # Proyecto reabierto
├── expert_invited.html # Invitación a proyecto
├── expert_selected.html # Experto seleccionado
├── expert_removed_from_project.html # Experto removido del proyecto
├── proposal_not_selected.html # Propuesta no seleccionada
├── proposal_revision_requested.html # Solicitud de revisión
├── proposal_resubmitted.html # Propuesta reenviada
├── proposal_deleted.html # Propuesta eliminada por admin
├── match_confirmed_company.html # Match confirmado (empresa)
├── match_confirmed_expert.html # Match confirmado (experto)
├── milestone_completed.html # Hito completado
├── milestone_approved.html # Hito aprobado
├── milestone_rejected.html # Hito rechazado
├── milestone_awaiting_payment.html # Hito pendiente de pago
├── payment_confirmed_project_started.html # Pago confirmado, proyecto iniciado
├── payment_received.html # Pago recibido
├── payment_released.html # Pago liberado
├── payment_refunded.html # Reembolso de pago
├── review_received.html # Reseña recibida
├── request_review.html # Solicitud de reseña
├── message_received.html # Mensaje recibido
├── dispute_notification.html # Notificación de disputa
├── profile_verified.html # Perfil verificado
├── profile_rejected.html # Perfil rechazado
└── dac7_review_notification.html # Notificación revisión DAC7
Template Base (email_base.html)
Todos los emails heredan de este template que proporciona:
- Estructura HTML base con estilos inline
- Header con logo de Floutic
- Bloques personalizables (content, contact_block, signature_block, footer_block)
- Footer con copyright
Autenticacion y Seguridad
1. Verificacion de Email (verify_email.html)

Cuando se envía:
- Cuando un usuario se registra
- Cuando el usuario solicita reenvío de verificación
Disparador: email_service.send_verification_email() o email_service.send_verification_email_resend()
Contenido:
Hola {{username }},
Gracias por registrarte en Floutic. Para completar tu registro, por favor verifica tu dirección de email haciendo clic en el siguiente enlace.
[ Verificar email ]
Este enlace expirará en 48 horas. Si no creaste esta cuenta, puedes ignorar este mensaje.
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
username | string | Nombre del usuario |
verification_url | string | URL de verificación (expira en 48h) |
Email de contacto: General
2. Recuperacion de Contrasena (password_reset.html)

Cuando se envía:
- Cuando el usuario solicita recuperar su contraseña
Disparador: email_service.send_password_reset_email()
Contenido:
Hola {{username }},
Hemos recibido una solicitud para restablecer tu contraseña de Floutic. Si fuiste tú, sigue este enlace para crear una nueva.
[ Restablecer contraseña ]
El enlace caduca el {{expires_at }}. Si no solicitaste este cambio, puedes ignorar este mensaje.
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
username | string | Nombre del usuario |
reset_url | string | URL para restablecer contraseña |
expires_at | string | Fecha de expiración |
3. Bienvenida Generica (welcome.html)

Cuando se envía:
- Cuando un usuario verifica su email por primera vez (rol no específico)
Disparador: email_service.send_welcome_email() cuando el rol no es "experto" o "empresa"
Contenido:
¡Bienvenido/a a Floutic, {{username }}!
Gracias por registrarte en Floutic. Tu cuenta está lista para empezar a explorar oportunidades de automatización y colaboración.
Próximo paso recomendado: inicia sesión y completa tu perfil para que podamos ofrecerte la mejor experiencia posible.
[ Ir al panel ]
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
username | string | Nombre del usuario |
login_url | string | URL del panel |
4. Bienvenida Experto (welcome_expert.html)

Cuando se envía:
- Cuando un experto verifica su email por primera vez
Disparador: email_service.send_welcome_email() con role="experto"
Contenido:
Bienvenido/a a Floutic, {{username }}
Gracias por unirte al ecosistema de expertos de Floutic 🙌
Qué puedes esperar de Floutic:
- Proyectos filtrados con clientes que valoran el trabajo de calidad
- Alcance y condiciones del proyecto claras antes de empezar
- Acompañamiento del equipo Floutic en coordinación y comunicación
Próximos pasos:
- Completa tu perfil de experto - Añade tus habilidades, herramientas, portfolio
- Pasa la verificación oficial - Incluye: IDV (DNI + LinkedIn), portfolio (≥3 proyectos), certificaciones, entrevista técnica
Soporte:
soporte_expertos@floutic.com
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
username | string | Nombre del experto |
expert_profile_url | string | URL del perfil de experto (opcional) |
Email de contacto: soporte_expertos@floutic.com
5. Bienvenida Empresa (welcome_company.html)

Cuando se envía:
- Cuando una empresa verifica su email por primera vez
Disparador: email_service.send_welcome_email() con role="empresa"
Contenido:
Bienvenido/a a Floutic, {{username }}
Gracias por confiar en Floutic 😊 A partir de ahora te acompañaremos para que tu negocio deje atrás tareas manuales y empiece a trabajar con procesos más ágiles y automatizados.
Qué puedes esperar ahora:
- Entender cómo estáis trabajando hoy (herramientas y procesos)
- Detectar primeras oportunidades claras de automatización
- Definir juntos el enfoque del proyecto y los primeros hitos
Próximos pasos: Para comenzar con buen pie, lo ideal es tener una breve sesión Discovery (30–45 minutos) con el equipo Floutic.
[ Reservar sesión Discovery ]
Para sacar el máximo partido a la sesión, te ayudará tener a mano:
- Acceso a tus herramientas clave (CRM, email marketing, hojas de cálculo)
- Una idea de los procesos que más tiempo consumen
- Ejemplos de tareas repetitivas que te gustaría automatizar
Soporte:
soporte_empresas@floutic.com
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
username | string | Nombre de la empresa |
kickoff_url | string | URL del calendario Discovery (opcional) |
Email de contacto: soporte_empresas@floutic.com
Proyectos
6. Nueva Aplicacion (project_application.html)

When it is sent:
- When an expert applies to a project
Trigger: notification_manager.send_project_application_notification()
Recipient: Company
Variables:
| Variable | Type | Description |
|---|---|---|
company_name | string | Company name |
project_title | string | Project title |
expert_name | string | Expert name |
project_url | string | Project URL |
Email de contacto: hola@floutic.com
7. Proyecto Aprobado (project_approved.html)

When it is sent:
- When an admin approves a project
Trigger: notification_manager.send_project_approved_notification()
Recipient: Company
Variables:
| Variable | Type | Description |
|---|---|---|
company_name | string | Company name |
project_title | string | Project title |
project_url | string | Project URL |
8. Proyecto Rechazado (project_rejected.html)

When it is sent:
- When an admin rejects a project
Trigger: notification_manager.send_project_rejected_notification()
Recipient: Company
Variables:
| Variable | Type | Description |
|---|---|---|
company_name | string | Company name |
project_title | string | Project title |
reason | string | Rejection reason (optional) |
project_url | string | Project URL |
9. Proyecto Reabierto (project_reopened.html)
Cuando se envía: Cuando un proyecto cancelado es reabierto por un administrador.
Destinatario: Ambos — experto Y empresa. Contenido diferenciado por rol.
Disparador: notification_manager.send_project_reopened_notification() → email_service.send_project_reopened_email()
Contenido por rol:
- Experto (
is_expert=True): "El proyecto en el que participas ha sido reabierto", recomendaciones sobre hitos pendientes y coordinación con la empresa, CTA "Ver estado del proyecto" - Empresa (
is_expert=False): "Tu proyecto ha sido reabierto", recomendaciones sobre verificación de entregas y coordinación con el experto, CTA "Gestionar mi proyecto"
Variables:
| Variable | Type | Description |
|---|---|---|
recipient_name | string | Nombre del destinatario |
project_title | string | Título del proyecto |
project_url | string | URL del proyecto |
is_expert | bool | true para experto, false para empresa |
10. Experto Invitado (expert_invited.html)

When it is sent:
- When an admin invites a specific expert to a project
Trigger: notification_manager.send_expert_invited_notification()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
project_title | string | Project title |
project_budget | number | Project budget |
project_deadline | string | Deadline date (optional) |
project_url | string | Project URL |
11. Experto Seleccionado (expert_selected.html)

When it is sent:
- When a company selects an expert for their project
Trigger: notification_manager.send_expert_selected_notification()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
project_title | string | Project title |
company_name | string | Company name |
project_url | string | Project URL |
12. Propuesta No Seleccionada (proposal_not_selected.html)

Cuando se envía:
- Cuando una empresa elige a otro experto para el proyecto
Disparador: notification_manager.send_proposal_not_selected_notification()
Destinatario: Experto
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
expert_name | string | Nombre del experto (display_name si está configurado, fallback a username) |
project_title | string | Título del proyecto |
projects_url | string | URL de proyectos disponibles |
Email de contacto: hola@floutic.com
13. Solicitud de Revision (proposal_revision_requested.html)

When it is sent:
- When a company requests changes to a proposal
Trigger: notification_manager.send_proposal_revision_requested_notification()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
project_title | string | Project title |
feedback | string | Feedback message (optional) |
project_url | string | Project URL |
Email de contacto: hola@floutic.com
14. Propuesta Reenviada (proposal_resubmitted.html)

When it is sent:
- When an expert resubmits a modified proposal
Trigger: notification_manager.send_proposal_resubmitted_notification()
Recipient: Company
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
project_title | string | Project title |
project_url | string | Project URL |
Email de contacto: hola@floutic.com
15. Experto Removido del Proyecto (expert_removed_from_project.html)
Cuando se envía:
- Cuando un administrador remueve a un experto de un proyecto
Disparador: notification_manager.send_expert_removed_notification()
Destinatario: Experto
Contenido:
Hola {{expert_name }},
Te informamos que has sido removido del proyecto "{{project_title }}". Tu propuesta ha sido rechazada como resultado de esta acción.
Entendemos que esto puede ser decepcionante, especialmente si ya habías invertido tiempo en tu propuesta.
💪 ¡No te desanimes! Hay muchos proyectos esperando un experto con tu talento.
¿Qué puedes hacer ahora?
- Explora nuevos proyectos que se ajusten a tu perfil
- Mantén tu perfil actualizado
- La próxima oportunidad puede ser la ideal para ti
[ Ir a mi dashboard ]
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
expert_name | string | Nombre del experto |
project_title | string | Título del proyecto |
dashboard_url | string | URL del dashboard del experto |
Email de contacto: hola@floutic.com
16. Propuesta Eliminada (proposal_deleted.html)
Cuando se envía:
- Cuando un administrador elimina una propuesta de un proyecto. Se envía tanto al experto como a la empresa.
Disparador: notification_manager.send_proposal_deleted_notification()
Destinatario: Experto y Empresa (email diferenciado según destinatario)
Contenido:
Para el experto: Un administrador ha eliminado tu propuesta para el proyecto "{{project_title }}".
Para la empresa: Un administrador ha eliminado una propuesta de {{expert_name }} para el proyecto "{{project_title }}".
[ Ir a mi dashboard ]
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
recipient_name | string | Nombre del destinatario |
expert_name | string | Nombre del experto (nullable — si es null, se envía a la empresa) |
project_title | string | Título del proyecto |
company_name | string | Nombre de la empresa (opcional) |
dashboard_url | string | URL del dashboard |
Email de contacto: General
17. Match Confirmado - Empresa (match_confirmed_company.html)

Cuando se envía:
- Cuando se confirma el match entre una empresa y un experto
Disparador: notification_manager.send_match_confirmed_company_email()
Destinatario: Empresa
Contenido:
Match confirmado: te presentamos a tu experto Floutic
Hola {{company_name }},
Buenas noticias: ya hemos encontrado el experto de Floutic que mejor encaja con tu proyecto de automatización 🎯
Tu experto asignado:
- Nombre: {{expert_name }}
- Perfil: {{expert_role }}
- Experiencia: {{expert_experience }}
Canal de comunicación: Hemos creado un canal compartido para que podáis comunicaros de forma directa y organizada.
[ Abrir canal de chat ]
Próximos pasos:
- Preséntate brevemente en el canal con contexto del negocio
- Compartid el resumen de hitos y prioridades de la sesión Discovery
- Acordad el primer hito a ejecutar
- Contacta a Floutic si hay algo que no encaja:
soporte_empresas@floutic.com
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
company_name | string | Nombre de la empresa |
expert_name | string | Nombre del experto |
expert_role | string | Rol/especialidad del experto |
expert_experience | string | Experiencia del experto |
chat_url | string | URL del canal de chat (opcional) |
project_title | string | Título del proyecto (opcional) |
Email de contacto: soporte_empresas@floutic.com
18. Match Confirmado - Experto (match_confirmed_expert.html)

Cuando se envía:
- Cuando se confirma el match entre un experto y a client
Disparador: notification_manager.send_match_confirmed_expert_email()
Destinatario: Experto
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
expert_name | string | Nombre del experto |
client_name | string | Nombre del cliente |
client_sector | string | Sector del cliente (opcional) |
project_summary | string | Resumen del proyecto |
project_reference | string | Referencia Floutic |
match_reason | string | Razón del match |
chat_url | string | URL del canal de chat (opcional) |
Email de contacto: soporte_expertos@floutic.com
Hitos
19. Hito Completado (milestone_completed.html)

When it is sent:
- When an expert marks a milestone as completed
Trigger: notification_manager.send_milestone_completed_notification()
Recipient: Company
Variables:
| Variable | Type | Description |
|---|---|---|
company_name | string | Company name |
milestone_title | string | Milestone title |
expert_name | string | Expert name |
project_title | string | Project title |
milestone_url | string | Milestone URL |
Email de contacto: hola@floutic.com
20. Hito Aprobado (milestone_approved.html)

When it is sent:
- When a company approves a milestone
Trigger: notification_manager.send_milestone_approved_email()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
milestone_title | string | Milestone title |
project_title | string | Project title |
project_url | string | Project URL |
Email de contacto: hola@floutic.com
21. Hito Rechazado (milestone_rejected.html)

When it is sent:
- When a company rejects a milestone and requests revision
Trigger: notification_manager.send_milestone_rejected_email()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
milestone_title | string | Milestone title |
project_title | string | Project title |
rejection_reason | string | Reason for rejection (optional) |
project_url | string | Project URL |
Email de contacto: hola@floutic.com
22. Hito Pendiente de Pago (milestone_awaiting_payment.html)

When it is sent:
- When a milestone is ready to be paid
Trigger: notification_manager.send_milestone_awaiting_payment_notification()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
milestone_title | string | Milestone title |
project_title | string | Project title |
project_url | string | Project URL |
Email de contacto: hola@floutic.com
Pagos
23. Pago Confirmado — Proyecto Iniciado (payment_confirmed_project_started.html)
Cuando se envía:
- Cuando el pago inicial se confirma y el proyecto transiciona de
payment_pendingain_progress - Se activa en 3 caminos: confirmación manual (
confirm_initial_payment), webhook Stripe (handle_stripe_webhook), o sincronización (sync_payment_status)
Disparador: notification_manager.send_payment_confirmed_project_started_notification()
Destinatario: Experto
Contenido:
¡Pago confirmado, {{expert_name }}!
El pago del proyecto "{{project_title }}" de la empresa {{company_name }} se confirmó correctamente. Ya puedes comenzar a trabajar.
💰 Importe asegurado: €{{amount }} Los fondos están bajo custodia de Floutic. ¡El proyecto está en marcha!
[ Abrir proyecto ]
Recomendaciones rápidas para un buen inicio:
- Preséntate en el canal de chat y confirma los hitos acordados
- Agenda la primera sesión de trabajo o kick-off con el cliente
- Documenta entregables y dependencias desde el primer día
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
expert_name | string | Nombre del experto |
project_title | string | Título del proyecto |
company_name | string | Nombre de la empresa |
amount | number | Importe asegurado en euros |
project_url | string | URL del proyecto |
Email de contacto: hola@floutic.com
24. Pago Recibido (payment_received.html)

When it is sent:
- When payment is received in escrow
Trigger: notification_manager.send_payment_received_notification()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
amount | number | Payment amount |
project_title | string | Project title |
payment_url | string | Payment URL |
25. Pago Liberado (payment_released.html)

When it is sent:
- When payment is released to the expert
Trigger: notification_manager.send_payment_released_email()
Recipient: Expert
Variables:
| Variable | Type | Description |
|---|---|---|
expert_name | string | Expert name |
amount | number | Payment amount |
amount_formatted | string | Formatted amount |
project_title | string | Project title |
milestone_title | string | Milestone title (optional) |
project_url | string | Project URL |
26. Reembolso de Pago (payment_refunded.html)
Cuando se envía: Cuando se procesa un reembolso de pago (vía webhook charge.refunded o manualmente).
Destinatario: Ambos — experto Y empresa. Cada uno recibe contenido diferente según el parámetro is_expert.
Disparador: notification_manager.send_payment_refunded_notification() → email_service.send_payment_refunded_email()
| Variable | Tipo | Descripción |
|---|---|---|
{{ user_name }} | string | Nombre del destinatario |
{{ amount_formatted }} | string | Importe reembolsado formateado (ej: "150.00") |
{{ project_title }} | string | Título del proyecto |
{{ milestone_title }} | string|null | Título del hito (opcional) |
{{ project_url }} | string | URL al proyecto en Floutic |
{{ is_expert }} | bool | true para experto, false para empresa |
Contenido por rol:
- Experto: Informa que el pago fue devuelto a la empresa, estado del hito, recomendaciones sobre pagos futuros y cómo contactar soporte.
- Empresa: Confirma el reembolso, plazo de devolución (5-10 días hábiles), dónde ver justificante, cómo reanudar el proyecto.
Asunto: Reembolso procesado: €{amount}
Resenas
27. Resena Recibida (review_received.html)

Cuando se envía: Cuando alguien deja una reseña.
Destinatario: Ambos — experto Y empresa. Contenido diferenciado por rol.
Disparador: notification_manager.send_review_received_notification() → email_service.send_review_received_notification()
Contenido por rol:
- Experto (
is_expert=True): Saludo sobre trabajo y compromiso, beneficios de posicionamiento en marketplace, CTA "Ver mi perfil" - Empresa (
is_expert=False): Saludo sobre calidad de proyectos, beneficios de confianza de marca y atracción de expertos, CTA "Ver mi panel"
Variables:
| Variable | Type | Description |
|---|---|---|
reviewed_name | string | Name of reviewed user |
reviewer_name | string | Name of reviewer |
rating | number | Rating (1-5 stars) |
project_title | string | Project title |
review_url | string | URL to view review |
profile_url | string | URL del perfil/panel del destinatario |
is_expert | bool | true para experto, false para empresa |
28. Solicitud de Resena (request_review.html)

When it is sent:
- Automatically when a project is completed
Trigger: email_service.send_review_request_email()
Recipient: Company
Variables:
| Variable | Type | Description |
|---|---|---|
company_name | string | Company name |
project_title | string | Project title |
project_reference | string | Project reference |
feedback_url | string | Feedback form URL (optional) |
review_url | string | URL to leave review |
Email de contacto: soporte_empresas@floutic.com
Comunicaciones
29. Mensaje Recibido (message_received.html)

When it is sent:
- When a new message arrives in the project chat
Trigger: notification_manager.send_message_received_email()
Recipient: User not in the chat
Variables:
| Variable | Type | Description |
|---|---|---|
recipient_name | string | Recipient name |
sender_name | string | Sender name |
project_title | string | Project title |
preview | string | Message preview (optional) |
project_url | string | Project URL |
30. Notificación de Disputa (dispute_notification.html)

Cuando se envía: Cuando se crea o resuelve una disputa.
Destinatario: Admin, experto Y empresa. Contenido diferenciado por rol.
Disparador: notification_manager.send_dispute_created_notification() / send_dispute_resolved_notification() → email_service.send_dispute_notification_email()
Contenido por rol:
- Admin (
recipient_role="admin"): Framing de acción requerida, recomendaciones de revisión administrativa, CTA "Gestionar disputas" - Experto (
recipient_role="expert"): Framing de participante, recomendaciones de presentación de evidencia, CTA "Ver detalles de la disputa" - Empresa (
recipient_role="company"): Framing de propietario del proyecto, recomendaciones de resolución, CTA "Ver detalles del proyecto"
Variables:
| Variable | Type | Description |
|---|---|---|
recipient_name | string | Recipient name |
project_title | string | Project title |
message | string | Dispute message |
project_url | string | Project URL |
recipient_role | string | Rol del destinatario ("admin", "expert", "company") |
Email de contacto: hola@floutic.com
Administracion
31. Invitacion de Administrador (admin_invitation.html)
Cuando se envía:
- Cuando un administrador invita a otro administrador
Disparador: email_service.send_admin_invitation_email()
Destinatario: Email del invitado
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
inviter_name | string | Nombre del invitador |
invitation_url | string | URL de la invitación |
message | string | Mensaje personalizado (opcional) |
expires_hours | number | Horas hasta expiración |
Esta plantilla usa HTML inline en email_service.py, no tiene archivo de template separado.
32. Perfil Verificado (profile_verified.html)
Cuando se envía:
- Cuando el perfil de un experto es verificado
Disparador: notification_manager.send_profile_verified_email()
Destinatario: Experto
Esta plantilla usa HTML inline en email_service.py.
33. Perfil Rechazado (profile_rejected.html)
Cuando se envía:
- Cuando el perfil de un experto es rechazado
Disparador: notification_manager.send_profile_rejected_email()
Destinatario: Experto
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
username | string | Nombre del usuario |
profile_type | string | Tipo de perfil |
reason | string | Razón del rechazo |
profile_url | string | URL del perfil |
Esta plantilla usa HTML inline en email_service.py.
DAC7
34. Notificación de Revisión DAC7 (dac7_review_notification.html)
Cuando se envía:
- Cuando un admin envía notificaciones masivas a expertos con ingresos para un año fiscal
Disparador: email_service.send_dac7_review_notification()
Destinatario: Experto
Contenido:
Hola {{expert_name }},
De acuerdo con la normativa DAC7, necesitamos que revises y confirmes tus datos fiscales y de ingresos correspondientes al año {{year }}.
Resumen:
- Ingresos totales: {{total_earned }}
- Año fiscal: {{year }}
- Fecha límite de revisión: {{review_deadline }}
[ Revisar mis datos fiscales ]
Variables:
| Variable | Tipo | Descripcion |
|---|---|---|
expert_name | string | Nombre del experto |
year | integer | Año fiscal |
total_earned | number | Total de ingresos netos en el año |
review_deadline | string | Fecha límite para confirmar revisión |
dashboard_link | string | URL del tab Información Fiscal |
Email de contacto: soporte_expertos@floutic.com
Configuracion
Variables de Entorno
# SMTP Configuration
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
EMAIL_FROM_NAME=Floutic
EMAIL_FROM_ADDRESS=noreply@floutic.com
# Frontend URLs (para enlaces en emails)
FRONTEND_URL=https://app.floutic.com
# URLs de calendarios (opcionales)
COMPANY_KICKOFF_CALENDAR_URL=https://calendly.com/floutic/discovery
EXPERT_ONBOARDING_CALENDAR_URL=https://calendly.com/floutic/onboarding
Colores del Sistema
| Elemento | Color | Uso |
|---|---|---|
| Header | #002b5b | Azul oscuro corporativo |
| Primario | #00b4d8 | Botones y enlaces |
| Fondo claro | #f5f7fb | Bloques de información |
| Texto principal | #333333 | Contenido |
| Texto secundario | #666666 | Notas pequeñas |
| Exito | #2e7d32 | Mensajes positivos |
Ejemplo de Uso
from app.services.email_service import email_service
# Enviar email de bienvenida
await email_service.send_welcome_email(
user_email="empresa@example.com",
username="Empresa Test",
role="empresa"
)
# Enviar email de solicitud de reseña
await email_service.send_review_request_email(
company_email="empresa@example.com",
company_name="Empresa Test",
project_title="Proyecto Automatización",
project_reference="#123 - Proyecto Automatización",
project_id=123,
expert_id=456
)
# Enviar email de match confirmado
await notification_manager.send_match_confirmed_company_email(
company_email="empresa@example.com",
company_name="Empresa Test",
expert_name="Juan García",
expert_role="Automatización Zapier",
expert_experience="5 años en automatización de procesos",
project_title="Automatización de ventas",
chat_url="https://app.floutic.com/chat/abc123"
)
Enlaces de Contacto por Rol
| Rol | Uso | |
|---|---|---|
| Empresas | soporte_empresas@floutic.com | Consultas de empresas |
| Expertos | soporte_expertos@floutic.com | Consultas de expertos |
| General | hola@floutic.com | Consultas generales |
Disparadores por Archivo
email_service.py
send_verification_email()send_verification_email_resend()send_welcome_email()send_password_reset_email()send_review_request_email()send_admin_invitation_email()send_profile_verified_email()send_profile_rejected_email()send_payment_refunded_email()
notification_manager.py
send_project_application_notification()send_project_approved_notification()send_project_rejected_notification()send_expert_invited_notification()send_expert_selected_notification()send_expert_removed_notification()send_proposal_not_selected_notification()send_proposal_revision_requested_notification()send_proposal_resubmitted_notification()send_proposal_deleted_notification()send_match_confirmed_company_email()send_match_confirmed_expert_email()send_milestone_completed_notification()send_milestone_approved_email()send_milestone_rejected_email()send_milestone_awaiting_payment_notification()send_payment_confirmed_project_started_notification()send_payment_received_notification()send_payment_released_email()send_payment_refunded_notification()send_review_received_notification()send_message_received_email()send_dispute_notification_email()
DAC7
send_dac7_review_notification()
Ultima actualizacion: Abril 2026