Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements in templates #468

Open
wants to merge 6 commits into
base: live
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Resources/mailing/es/face_to_face_event.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
group: tips
name: 'Face to face event'
purpose: 'Mail template to be sent to owner of a project to recommend creating a face to face event'
type: 'md'
title: "Convierte tu presencialidad a donaciones"
text: >
¡Hola de nuevo %USERNAME%!
¿Cómo está yendo todo?
Quizás has pensado en hacer difusión presencial: en tu local, en tu pueblo, en tu barrio,, o quizás aprovechar una feria, un evento o un espacio físico que te hayan cedido otros. ¡Es una oportunidad genial para difundir tu iniciativa y tu campaña de crowdfunding!
*Consejo 1*: Piensa que además de captar su interés en persona, tendrás también que *dirigirles a tu página de Goteo*. Cuanto más fácil les hagas ese camino, mejor. Piensa en imprimir cartelería, y sobre todo, incluye el enlace a tu página de Goteo o, mejor, directamente un *código QR*.
*Consejo 2*: Si te encuentras con el problema de que tu comunidad no está acostumbrada al entorno digital, tienes que ser muy didáctico y paciente. Puedes compartir nuestro [Tutorial Paso a Paso para donar](https://fundacion.goteo.org/blog/tutorial-paso-a-paso-para-aportar-a-un-proyecto), o incluso recorrer junto con esta(s) persona(s) tu página de Goteo y enséñales tú mismo, desde tu dispositivo, lo fácil que es donar a través de Goteo.
¡Ánimo!
El equipo de Goteo.
11 changes: 11 additions & 0 deletions Resources/mailing/es/invest_in_social_networks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
group: tips
name: 'Invest in Social Networks'
purpose: 'Mail template to be sent to owner of a project to recommend investing in social networks'
type: 'md'
title: "Invierte en redes"
text: >
Hola %USERNAME%,
¿Cuál es la red social que mejor te está funcionando? ¿Cuál ha sido el post que más interacciones ha tenido? Si no te has parado a analizar, es el momento. Una campaña de crowdfunding te puede servir para reafirmar tu estilo comunicativo.
Consejo: Te recomendamos que pruebes a promocionar algunos de tus posts en redes. Por muy poco dinero y segmentando bien por territorios y/o públicos, quizás llegues a nueva gente de una forma inesperada. Es buen momento ahora, sobre todo si tu campaña lleva más del 50-60% recaudado. Los nuevos públicos tienen más opciones de sumarse si ven que la campaña tira bien por si sola.
Pequeña cita por aquí: “Los ganadores no son los mejores sino los que dominan el juego” Roberto Serra.
El equipo de Goteo
13 changes: 13 additions & 0 deletions Resources/mailing/es/online_event.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
group: tips
name: 'Online event'
purpose: 'Mail template to be sent to owner of a project to recommend creating an online event'
type: 'md'
title: "Convoca un evento online de recaudación"
text: >
¡Hola de nuevo %USERNAME%!
Ya son %AMOUNT% euros recaudados, ¡venga!
A estas alturas ya estamos más que acostumbradas a los eventos online, ¿has pensado en sacarle partido para tu crowdfunding?
*Consejo*: ¿Por qué no organizar una pequeña charla con varios invitados (beneficiarios, colaboradores, proyectos similares, expertos, etc.) para *dialogar de una problemática común relacionada con %PROJECTNAME%*, y hablar del compromiso social que os mueve? Funciona muy bien cuando se aprovecha la diversidad de experiencias y puntos de vista de los participantes, moderando el debate con unas preguntas abiertas. Es una *excusa perfecta* para presentar vuestro proyecto y seguir difundiendo vuestro crowdfunding ;-))
*Ejemplo*: La campaña de [Climática](https://www.goteo.org/project/climatica) por ejemplo, organizó en su recta final de campaña una [gala de remontada retransmitida en directo](https://www.youtube.com/watch?v=glgXJER_6ZY). ¡Por lo pelos celebran el mínimo en directo!
Una cita inspiradora: “El agua habla sin cesar y nunca se repite” (Octavio Paz).
El equipo de Goteo
15 changes: 15 additions & 0 deletions Resources/mailing/es/press.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
group: tips
name: 'Invest in Social Networks'
purpose: 'Mail template to be sent to owner of a project to recommend broadcasting in the media'
type: 'md'
title: "Trucos para dar difusión en prensa"
text: >
Hola %USERNAME%,
Seguro que has pensado en utilizar la prensa para difundir tu crowdfunding. A ver si estos pequeños trucos te sirven:
*1- Busca los medios y los periodistas adecuados:* Si tu proyecto es local, seguramente te será fácil tener acceso a la prensa escrita, radio o televisión que cubre las noticias de la zona. ¡Fenomenal si es el caso! Sino, no te cortes en buscar esos contactos que vayan a darte acceso. Por otro lado, también puedes buscar prensa especializada en las temáticas relacionadas con tu proyecto. Y si quieres probar con prensa más generalista, ayuda mucho que tengas ya identificados las secciones de redacción o incluso a los periodistas que se enfocan en tus temas. Una buena búsqueda en internet o redes te puede dar buenas pistas ;-)
*2- No hables directamente del crowdfunding, habla primero de tu proyecto:* Recuerda que para un periodista, un crowdfunding en sí no suele ser noticia. Así que empieza por contar la historia que hay detrás de tu proyecto, su misión, su compromiso social. También es importante que resaltes lo innovador del proyecto, el valor añadido que aporta al contexto en el que se encuentra y a la sociedad. Y sobre todo transmite la pasión y compromiso de todo el equipo impulsor. Después y a raíz de eso, presenta el crowdfunding y llama a la donación, y menciona cuántos días de campaña te quedan ;-P ¡Ah! Por supuesto asegúrate de que tu página de Goteo queda indicada en la pieza informativa.
*3- Encuentra el mejor momento:* Para que la publicación en prensa luego tenga impacto en tu campaña, es importante que se produzca cuando la recaudación ya esté bien avanzada, para que pueda producirse el efecto llamada. Con por ejemplo 50-60% del objetivo mínimo recaudado, ya podrías atraer a nuevos públicos que se verían atraídos por el hecho de que es un proyecto que funciona bien y ya ha atraído a mucha más gente.
*Ejemplo:* A Abueland le salió genial. Mira la pieza que sacaron unos informativos de televisión regional: https://twitter.com/RTVEclm/status/1443601278408400900
¡Esperamos haberte ayudado!
El equipo de Goteo.

98 changes: 28 additions & 70 deletions src/Goteo/Console/EventListener/ConsoleWatcherListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -204,18 +204,19 @@ public function onProjectActive(FilterProjectEvent $event) {
case 3: // Una acción a diario, por pequeña que sea
carlos-mg89 marked this conversation as resolved.
Show resolved Hide resolved
case 4: // Llama a todas las puertas
case 5: // Busca dónde está tu comunidad
case 8: // Agradece en público e individualmente
$this->send($project, "tip_$days_active", ['owner']);
break;

case 8:
case 25:
$this->send($project, "tip_8", ['owner']);
break;

// periodico condicional
case 6: // Publica novedades!
// y se repite cada 6 días (fechas libres) mientras no haya posts
case 12:
case 18:
case 24:
case 30:
case 36:
case 28:
// si ya hay novedades, nada
if (Blog::hasUpdates($project->id)) {
$this->info("Project already has blog updates", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
Expand All @@ -228,11 +229,7 @@ public function onProjectActive(FilterProjectEvent $event) {
// comprobación periódica pero solo un envío
case 7: // Apóyate en quienes te van apoyando, si más de 20 cofinanciadores
// o en cuanto llegue a 20 backers (en fechas libres)
case 14:
case 17:
case 21:
case 24:
case 27:
case 26:
davidbeig marked this conversation as resolved.
Show resolved Hide resolved
if ($project->num_investors >= 20) {
$this->send($project, "20_backers", ['owner']);
} else {
Expand Down Expand Up @@ -270,12 +267,7 @@ function ($a, $b) {


case 11: // Refresca tu mensaje de motivacion
// si no tiene video motivacional
if (empty($project->video)) {
$this->send($project, "tip_11", ['owner']);
} else {
$this->warning("Not sending message to project as already has motivational video", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
}
$this->send($project, "tip_11", ['owner']);
break;

case 15: // Sigue los avances y calcula lo que falta
Expand All @@ -287,7 +279,7 @@ function ($a, $b) {
}
break;

case 25: // No bajes la guardia!
case 20: // No bajes la guardia!
// si no ha llegado al mínimo
if ($project->amount < $project->mincost) {
$this->send($project, "two_weeks", ['owner']);
Expand All @@ -305,7 +297,7 @@ function ($a, $b) {
}
break;

case 38: // Al proyecto le faltan 2 días para archivarse
case 36: // Al proyecto le faltan 4 días para archivarse
// si no ha llegado al mínimo pero está por encima del 70%
if ($project->amount < $project->mincost && $project->percent >= 70) {
$this->send($project, "2_days", ['owner']);
Expand All @@ -316,59 +308,25 @@ function ($a, $b) {

// Extra
case 26: // Send information about contract in order to prepare documentacion
davidbeig marked this conversation as resolved.
Show resolved Hide resolved
$this->info("Sending information about contract", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
$this->send($project, "14_days", ['owner']);
break;
}
$this->info("Sending information about contract", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
$this->send($project, "14_days", ['owner']);
break;

// Avisos periodicos
// si lleva más de 15 días: si no se han publicado novedades en la última semana
// Ojo! que si no ha enviado ninguna no lanza este sino la de cada 6 días
if (!$blog_tip_sent && $days_active > 15) {
// veamos si ya le avisamos hace una semana
// Si ya se mandó esta plantilla (al llegar a los 20 por primera vez) no se envía de nuevo
$sql = "
SELECT
id,
DATE_FORMAT(
from_unixtime(unix_timestamp(now()) - unix_timestamp(date))
, '%j'
) as days
FROM mail
WHERE mail.email = :email
AND mail.template = 23
ORDER BY mail.date DESC
LIMIT 1";
$query = Project::query($sql, array(':email' => $project->getOwner()->email));
$lastsend = $query->fetchObject();
if (!$lastsend->id || $lastsend->days > 7) {
// veamos cuanto hace de la última novedad
$sql = "
SELECT
DATE_FORMAT(
from_unixtime(unix_timestamp(now()) - unix_timestamp(date))
, '%j'
) as days
FROM post
INNER JOIN blog
ON post.blog = blog.id
AND blog.type = 'project'
AND blog.owner = :project
WHERE post.publish = 1
ORDER BY post.date DESC
LIMIT 1";
$query = Project::query($sql, array(':project' => $project->id));
$lastUpdate = $query->fetchColumn(0);
if ($lastUpdate > 7) {
$this->send($project, "no_updates", ['owner']);
} elseif (is_numeric($lastUpdate)) {
$this->warning("Not sending message to project published news less than one week ago", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
} else {
$this->warning("Not sending message to project without any news", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
}
} else {
$this->warning("Not sending message to project already advised less than one week ago", [$project, 'days_active' => $days_active, 'days_funded' => $days_funded]);
}
case 17:
$this->send($project, "face_to_face_event", ['owner']);
break;

case 22:
$this->send($project, "online_event", ['owner']);
break;

case 24:
$this->send($project, "press", ['owner']);
break;

case 30:
$this->send($project, "invest_in_social_networks", ['owner']);
break;
}
}

Expand Down
Loading