Planifier et envoyer
Programmer la génération d'un rapport et son envoi par e-mail — fréquence, destinataires, format et paramètres — et quoi faire quand la planification ne suffit pas.
Un rapport conçu est un rapport que quelqu'un doit aller chercher. Les planifications règlent le cas le plus courant sans écrire une ligne de code : « le pipeline commercial part vers la direction tous les lundis à 8 h ».
« Envoyer ce rapport par e-mail, seul, à l'heure fixée. » C'est cela, et rien de plus — ce qui demande davantage se fait avec un script, et cette page explique quand.
Nous restons dans le rapport Oportunidades por conta de l'app Gestion des Clients, avec la planification Pipeline de segunda-feira.
Les planifications d'un rapport
Les planifications vivent dans le rapport lui-même : ouvrez le rapport et regardez en bas de la colonne de gauche, dans la section Planifications. Chaque ligne est un envoi programmé, avec le résumé sous le nom — l'heure, le fuseau, le format et à qui il part.

Une planification arrêtée porte la mention désactivé. Les icônes à droite de chaque ligne servent à la modifier et à la supprimer.
Dans un rapport qui n'en a encore aucune, la liste affiche « Aucune planification. » et il ne reste qu'à créer la première :

Créer une planification
- Ouvrez le rapport et cliquez sur le + de la section Planifications (ou sur le bouton Ajouter une planification, en bas de la liste).
- Remplissez la fiche.
- Cliquez sur Enregistrer.
Quand
| Champ | Notes |
|---|---|
| Nom | Identifie la planification. C'est sous ce nom qu'elle apparaît dans l'historique. |
| Fréquence | Quotidienne, hebdomadaire ou mensuelle. |
| À l'heure | L'heure de l'envoi. |
| Jours (fréquence quotidienne) | Tous, Ouvrés ou Week-end. |
| Jour de la semaine (fréquence hebdomadaire) | De Lun à Dim. |
| Jour du mois (fréquence mensuelle) | De 1 à 31. |
| Fuseau horaire | Par défaut Europe/Lisbon. C'est dans ce fuseau que l'heure est lue. |
Nota
Dans une fréquence mensuelle, « dans les mois sans ce jour, rien ne s'exécute » — le 31 saute février, avril, juin, septembre et novembre. Pour « le dernier jour du mois », utilisez un script.
Quoi
| Champ | Notes |
|---|---|
| Format | PDF ou Excel. |
| Paramètres | Un champ par paramètre que le rapport déclare. C'est avec ces valeurs qu'il s'exécute. |
| Actif | Désactivée, la planification reste enregistrée mais ne se déclenche pas. |
Dans l'exemple, le paramètre Fase est rempli avec Proposta et
Fecho a partir de reste vide — le même rapport sert plusieurs
planifications, chacune avec son propre découpage.
Pour qui
Il y a trois façons d'indiquer la destination, et on peut utiliser les trois en même temps :
| Champ | Notes |
|---|---|
| À | « Adresses e-mail séparées par des virgules. » Pour celles et ceux qui n'ont pas de compte dans l'app. |
| Utilisateurs | « Utilisateurs de l'app. L'envoi part vers l'e-mail de leur enregistrement ; ceux qui n'en ont pas restent de côté. » |
| Rôles | « Tous les utilisateurs ayant ce rôle. Choisir le rôle plutôt que l'adresse garde la planification juste quand quelqu'un arrive ou part. » |
Dica
Préférez les Rôles. Une planification qui dit « ça part vers qui a le rôle
direcao » reste juste quand la direction change de personnes ; une liste
d'adresses écrite à la main est périmée dès le lendemain et personne ne s'en
aperçoit.
L'e-mail
Objet est la ligne de l'e-mail ; vide, il utilise le nom du rapport. Message ouvre un éditeur dédié pour le corps :

Le rapport part en pièce jointe, dans le format choisi, avec le nom du document. Le corps n'est que le message qui l'accompagne.
Ce qui se passe à l'heure fixée
- Le rapport est généré sur le serveur, avec les paramètres de la planification.
- Le fichier est joint à un e-mail et envoyé par le canal e-mail de l'app.
- Ce qui s'est passé est enregistré : le fichier généré et combien de destinataires l'ont accepté.
Si quelque chose tourne mal — le rapport échoue, le canal e-mail n'est pas configuré, un destinataire n'a pas d'adresse — cela reste enregistré et le planificateur continue. Un envoi qui échoue n'arrête pas les autres.
Atenção
L'envoi a besoin du canal e-mail actif et avec le SMTP complet dans Paramètres de l'app → Notifications. Sans lui, le rapport est généré et l'envoi échoue en silence dans l'historique. Lancez un Envoyer un test depuis ces paramètres avant de faire confiance à une planification.
Une planification sans destinataires n'envoie rien non plus — « sans destinataires » est enregistré et rien ne se passe.
Quand une planification ne suffit pas
Le raccourci sert le cas courant. Vous avez besoin d'un script Python quand vous voulez :
- envoyer seulement s'il y a des lignes (« n'envoie pas l'état des retards s'il n'y a pas de retards ») ;
- un e-mail par client, chacun avec son propre découpage ;
- enregistrer le fichier ailleurs au lieu de l'envoyer ;
- générer le document au milieu d'un processus plus large.
Le SDK des scripts fait exactement cela :
from api_manager import reports, notify
r = reports.render("Oportunidades por conta", {"fase": "Proposta"})
notify.email(
"Pipeline de la semaine",
to=["direccao@exemplo.pt"],
attachments=[{"filename": r["filename"], "content": r["base64"]}],
)
reports.render(...) reçoit le nom ou l'identifiant du rapport, les
paramètres qu'il déclare et le format ("pdf", par défaut, ou
"xlsx"), et renvoie le fichier prêt à enregistrer ou à joindre. À partir de
là, la planification est celle du script — avec toutes les options des
Planifications des scripts, y compris le
rattrapage de ce qui n'a pas pu s'exécuter.
Générer un rapport ailleurs
En dehors des planifications et des scripts, un rapport peut être généré :
| D'où | Comment |
|---|---|
| Un écran de l'app | Dans un événement TypeScript, avec le SDK des écrans — il ouvre le PDF à l'utilisateur ou renvoie les octets pour que vous leur donniez une autre destination. |
| Un workflow | L'étape E-mail joint un rapport, généré au moment de l'envoi pour l'enregistrement de cette exécution. Voir Étapes, décisions et attentes. |
| La conception | Les boutons Prévisualiser et Excel, pour vérifier pendant qu'on conçoit. |
Dans tous les cas, le rapport s'exécute avec les permissions de qui le demande : un utilisateur ne voit dans le document que les enregistrements qu'il verrait dans les écrans. La portée des données est appliquée sur le serveur, dans les rapports aussi.
Questions fréquentes
La planification est active et je n'ai rien reçu. Vérifiez, dans cet ordre : le canal e-mail de l'app est actif et testé ; la planification a des destinataires ; les destinataires ont un e-mail dans leur enregistrement ; le rapport s'exécute sans erreur (utilisez Prévisualiser avec les mêmes paramètres).
L'heure est bonne mais c'est arrivé une heure plus tard.
C'est le Fuseau horaire de la planification qui commande, pas celui du
serveur ni celui de qui lit. Vérifiez qu'il est sur Europe/Lisbon (ou sur le
fuseau que vous voulez).
Puis-je envoyer le même rapport à deux heures différentes ? Oui — créez deux planifications dans le même rapport, chacune avec son nom, son heure, ses destinataires et ses paramètres.
J'ai supprimé une planification sans le vouloir. Il n'y a pas de retour en arrière. Recréez-la : une planification n'est qu'une fiche avec une heure et des destinataires, et cela prend une minute.
