Changelog

Découvrez ici nos dernières fonctionnalités !
Picture

Valeur par défaut dans les filtres dynamiques

Vous pouvez maintenant spécifier la valeur par défaut que dois prendre un filtre dynamique. Si cette valeur n'est pas dans les valeurs possibles pour cette donnée, elle sera ignorée.

Juillet 4
Picture

Ajout d'un menu dans le Viewer

Le viewer a maintenant une barre bleue sur la gauche. En mettant la souris sur cette barre, l'utilisateur peut se delogger ou revenir à sa liste de dashboards.

Juin 25
Picture

Fonction period_to_date

Les fonctions period_to_date (e.g. year_to_date) définissent des périodes pour faire les calculs de type year to year. Par exemple year_to_date(0) est l'année en cours jusqu'à aujourd'hui. Alors que year_to_date(-1) est l'année précédente, jusqu'au même jour qu'aujourd'hui de l'année dernière. Le principe est identique avec les trimestres, les mois et les semaines.

Vous pouvez utiliser ces fonctions de la même manière que year(0), year(-1)...

Le ratio year to year est maintenant simplement obtenue avec : sum_if([value], [date] in year_to_date(0)) / sum_if([value], [date] in year_to_date(-1))

Juin 21
Picture

Fonctionnalités pour exporter des données depuis un dashboard

Vous pouvez maintenant créer des boutons dans un dashboard pour exporter les données directement depuis une source. C'est notamment très utile pour fournir au viewer un fichier XLS importé ou bien la possibilité d'exporter en CSV une table de plusieurs millions de lignes.

Juin 18
Picture

Documentation de notre API REST

Nous avons complété la documentation disponible de notre API REST (https://doc.serenytics.com/developer/api_reference/rest/). Vous pouvez maintenant utiliser cette API pour lister/créer des répertoires, créer des sources de données...

Juin 5
Picture

Fonction datetime_from_string

Cette fonction vous permet de convertir une chaîne de caractère en date, en lui spécifiant le format de la chaîne de caractères.

Mai 30
Picture

Ajout de packages pour les scripts Python

Les packages mws et jinja2 sont maintenant disponibles dans les scripts Python. Mws vous permet de récupérer les données de Amazon Marketplace Web Services. Et Jinja2 vous permet de générer du code HTML, par exemple pour mettre du contenu dans vos emails.

Mai 29
Picture

Option pour cacher le titre d'un widget

Vous pouvez maintenant activer une option pour cacher le titre d'un widget. C'est utile lorsque vous devez afficher de nombreux widgets et que leur contenu est évident et ne nécessite pas de titre.

Mai 28
Picture

Gestion de plusieurs métriques dans les tableaux croisés dynamiques

Vous pouvez maintenant ajouter plusieurs métriques dans les tableaux croisés dynamiques, et afficher tous les totaux qui vous sont utiles (par lignes, colonnes, métriques). Pour chaque métrique, vous pouvez afficher la valeur absolue ou le pourcentage du total de la ligne, ou de la colonne.

Mai 17
Picture

Ajout des fonctions upper_case et lower_case

Ces fonctions vous permettent de convertir la casse d'une chaîne de caractères.

Avril 10
Picture

Copier-coller d'un onglet complet

Vous pouvez maintenant copier/coller un onglet complet d'un dashboard. Cela permet notamment de préparer un nouvel onglet à part, et de le copier dans le dashboard de production une fois qu'il est terminé et validé.

Février 14
Picture

Highlight de tous les éditeurs de code

Tous les endroits où vous pouvez ajouter du code dans l'application ont l'highlighter de code activé. L'écriture de code est bien plus agréable (par exemple le HTML ou le CSS).

Février 5
Picture

Chargement du cache pour plusieurs valeurs de filtres dynamiques

Pour l'instant, vous pouviez pré-charger le cache d'un dashboard uniquement avec les filtres par défaut. C'est à dire que si vous aviez un filtre dynamique par pays, le cache était rempli avec l'ensemble des pays. Mais quand l'utilisateur filtrais sur un pays particulier, le cache n'était pas rempli, et les requêtes devaient être exécutées sur le stockage de données. Dans certains cas, les dashboards pouvaient être longs à charger.

Vous pouvez maintenant préciser les combinaisons de valeurs des filtres dynamiques à utiliser pour pré-charger le cache d'un dashboard. Cela vous permet de charger les combinaisons de filtrage les plus courantes (par exemple les 5 pays les plus couramment utilisés dans un filtre par pays).

Si le nombre de combinaisons est très grand, il faut choisir les plus fréquemment utilisées. Vous ne pouvez pas tout pré-charger. Si par exemple, vous avez deux filtres sur un champ date (date_début et date_fin). Il est impossible de charger toutes les combinaisons. Mais si vous avez une liste de pays et un filtre sur les 12 derniers mois, vous pouvez maintenant pré-charger ces données sans difficulté.

Janvier 9
Picture

Filtrage d'un dashboard selon l'utilisateur

Vous pouvez maintenant filtrer les données présentées dans un dashboard selon l'utilisateur.

Pour chaque utilisateur, vous pouvez définir des meta-data (sa région, sa business unit...). Ces meta-data peuvent être chargées automatiquement depuis une source de données (chaque colonne deviendra une meta-data automatiquement).

Pour filtrer un dashboard selon une meta-data de l'utilisateur, la syntaxe à utiliser est très simple. Il suffit d'écrire dans le champ valeur d'un filtre :

$$login.meta_data_name$$
par exemple
$$login.region$$
Décembre 18
Picture

Exporter le contenu du data-warehouse interne dans un fichier CSV

Vous pouvez maintenant exporter les données d'une table du data-warehouse interne au format CSV, quelle que soit la taille de la table.

Vous pouvez utiliser cette fonctionnalité pour vos data-preparations. Par exemple, cela vous permet de prendre n'importe quelles sources de données, de faire des jointures, du nettoyage, de rajouter des colonnes et de télécharger le résultat au format CSV.

Décembre 14
Picture

Appliquer des étapes d'ETL depuis tout type de source

Jusqu'à maintenant, les étapes d'ETL ne prenaient en source d'entrée que des tables de notre data-warehouse interne. Vous pouvez maintenant utiliser n'importe quel type de source en entrée (SQL, fichiers, Google Analytics...).

Vous pouvez par exemple choisir des tables de votre serveur SQL, faire une jointure, grouper les lignes selon certaines dimensions, les filtrer, choisir les colonnes, ajouter de nouvelles colonnes calculées, et au final stocker le résultat dans notre dataware-house interne.

Et vous pouvez enchaîner plusieurs étapes d'ETL, les schéduler ou les déclencher par API.

Un exemple classique est le cas où vous avez des données de ventes dans une table SQL avec une ligne par vente et vous avez dans un fichier XLS des objectifs par commercial, au trimestre. Les étapes d'ETL permettent de fusionner ces données pour avoir une table finale dans notre datawarehouse interne avec une ligne par trimestre, pour chaque commercial, avec la somme de ses ventes et son objectif.

Décembre 12
Picture

Free-tables plus performantes

Sur certains dashboards avec beaucoup de KPIs dans des free-tables, l'application pouvait ralentir. Nous avons complètement recodé ce composant pour améliorer ses performances. Pour les détails techniques : nous sommes passé d'AngularJS à Elm.

Le temps de chargement a été divisé par 10 sur des grands dashboards avec plusieurs free-tables (avec les données en cache). Et le studio est devenu beaucoup plus fluide pour éditer ce type de dashboards.

Décembre 7
Picture

Nouvelle version du studio

Nous avons complètement revu le design du studio. L'UI est devenue beaucoup plus agréable. Le menu d'édition d'un dashboard est beaucoup plus moderne, les tabs sont dynamiques, les icônes sont animées...

Novembre 29
Picture

Options de design des tables

Vous pouvez maintenant activer/désactiver les bordures et les stripes (alternance de lignes blanche et grises) sur les tables.

Cela vous donne la possibilité de créer des tables plus légères, plus modernes.

Novembre 27
Picture

Serenytics devient collaboratif

Vous pouvez maintenant travailler ensemble sur vos projets au sein d'un compte Serenytics. Chaque répertoire peut être partagé en lecture ou en écriture aux autres membres de votre équipe.

Cela vous permet par exemple de partager les sources de données et dashboards marketing seulement à l'équipe marketing, et de reproduire ce modèle pour toutes les équipes. Vous pouvez aussi par exemple restreindre l'accès à la configuration des sources de données à une personne de votre IT.

Octobre 17
Picture

Interactions entre dashboard

Dans un tableau, vous pouvez maintenant ajouter un lien qui redirige vers un autre dashboard en passant un filtre à ce dashboard.

Par exemple, vous pouvez construire un tableau avec une ligne par campagne d'emailing. Et lorsque l'utilisateur clique sur l'une de ces lignes, un nouveau dashboard s'ouvre avec toutes les informations à propos de cette campagne.

La fonction pour construire ce lien s'appelle link_to_dashboard. Vous pouvez par exemple écrire :

link_to_dashboard("Infos campagne", "176a8ac8-5c85-4fd0-b960-bad858f986e0", "new", "campaign_id", line[1])
Octobre 16
Picture

Nouveau widget croissance

Nous avons amélioré le template growth des widgets KPIs. Vous n'avez qu'à fournir en entrée deux valeurs absolues, le widget va afficher ces deux valeurs et leur taux de croissance.

Octobre 2
Picture

Animations

Pour chaque widget, dans les options de rendu graphique, vous pouvez maintenant choisir d'animer le widget. Si l'option est activée, au chargement et pendant les interactions, les données de ce widget seront animées.

Octobre 2
Picture

Nouveau widget gauge

Dans un widget KPI, lorsque vous choisissez le template Circle, vous pouvez maintenant choisir le mode arc pour afficher un pourcentage sous forme d'arc de cercle.

Septembre 28
Picture

Connecteur Google Search Console

Vous pouvez connecter votre compte Google pour suivre dans Serenytics les informations SEO d'un ou plusieurs sites webs. Le connecteur récupère les informations de Clicks, Impressions, CTR et Positions. Vous pouvez aussi filtrer sur les mots clés de votre choix ou le pays.

Septembre 15
Picture

Tri des valeurs d'un filtre dynamique

Vous pouvez maintenant choisir l'ordre (descendant ou ascendant) dans lequel sont affichées les valeurs d'un filtre dynamique. Cela permet par exemple de mettre la date la plus récente en première position.

Septembre 15
Picture

Connecteur Google Analytics simplifié

Vous avez maintenant accès à toutes les dimensions et les métriques de Google Analytics dans un menu déroulant. Vous n'avez plus à taper manuellement leurs noms.

Septembre 4
Picture

Filtrage dynamique avec une variable

Un filtre dynamique peut maintenant être utilisé pour définir une variable. Cette variable peut ensuite être utilisée pour filtrer comme vous le souhaitez vos widgets. Le point fort de cette nouvelle fonctionnalité est que vous pouvez appliquer une fonction sur la variable avant de la passer à un widget.

Par exemple, cela permet de définir un filtre sur un mois d'étude, et de filtrer certains widgets sur ce mois, mais d'autres sur le mois précédent (M-1) ou encore sur le même mois mais de l'année précédente (M-12). Si la variable du filtre a été nommée myMonth, vous pouvez créer un filtre pour M-1 pour un widget avec la syntaxe :

{{dateAdd(myMonth, -1, "month")}}

Vous pouvez alors simplement réaliser ce genre de tableau :

Août 24
Picture

Combinaison de courbes et de barres

Dans un histogramme ou des courbes, vous pouvez maintenant spécifier pour une série si vous voulez la représenter en barre ou en courbe.

Vous pouvez aussi spécifier si cette série doit utiliser la légende de droite ou de gauche du widget. Cela vous permet d'afficher dans un même widget des informations liées mais avec des valeurs très différentes.

Juillet 26
Picture

Calculs entre plusieurs séries d'un histogramme ou de courbes

De la même manière qu'entre les colonnes d'un tableau, vous pouvez maintenant effectuer des calculs entre les séries d'un histogramme ou de courbes. La syntaxe est identique. Pour obtenir une série avec le ratio entre deux courbes, vous pouvez par exemple écrire :

line[2] / line[3]
Juillet 19
Picture

Jointures multi-clés de type AND

Pour réaliser des jointures entre des tables SQL, vous pouviez pour l'instant utiliser des colonnes présentes dans vos données ou des formules calculées.

Pour des raisons de performance, nous avons rajouté la possibilité de spécifier plusieurs clés de jointures entre deux tables (les deux clés sont combinées avec un AND).

Juillet 18
Picture

ETL paramétrique

Certaines formules sont parfois dépendantes d'un paramètre. Par exemple la fonction "a fait un achat dans les 12 derniers mois" dépend du mois auquel on évalue cette fonction.

Pour gérer cette complexité, Serenytics vous permet maintenant d'ajouter des paramètres dans vos fonctions (par exemple un paramètre "mois de calcul") et de lancer le calcul de vos étapes d'ETL plusieurs fois (une fois pour chaque valeur de paramètre). Les résultats de chaque exécution sont concaténés dans une table dans notre datawarehouse interne. En quelques clics, vous mettez en place des traitements de données très avancés. Cela vous permet par exemple de construire l'historique du nombre de clients actifs dans une base clients.

Juillet 4
Picture

Mode Push

Par défaut, vous ne pouvez pas déplacer un widget par dessus un autre widget. Ce mode par défaut est adapté dans la plupart des situations sauf dans quelques cas. Par exemple, ce n'est pas vraiment adapté quand vous souhaitez remonter un widget du bas de votre dashboard tout en haut.

Avec le nouveau mode Push, vous pouvez déplacer un widget à n'importe quel endroit du dashboard, les autres widgets vont se déplacer automatiquement pour libérer de l'espace pour le widget que vous déplacez.

Juin 30
Picture

Undo / Redo

Nous avions vécu jusqu'à présent sans Undo/Redo. Cet oubli est réparé. Vous pouvez maintenant faire des erreurs dans le design de votre dashboard et revenir en arrière.

Juin 30
Picture

Filtre dynamique temporel configurable

Par défaut, vous pouvez proposer au viewer de filtrer sur les dates. Il aura accès à un composant standard de filtrage. Mais si vous voulez lui permettre de filtrer "par mois sur les 12 derniers mois", "par jour sur les 31 derniers jours" et "par heure sur les 6 dernières heures", vous pouvez maintenant configurer vous-même ce filtre, très simplement.

Juin 22
Picture

Formule split()

La formule split vous permet de découper une chaîne de caractères au niveau d'un séparateur et d'extraire le morceau de la chaîne qui vous est utile, par exemple :

split([addresse], "-", 2)
Juin 8
Picture

Filtre dynamique à choix multiples

Nous avons déployé une nouvelle version des filtres dynamiques. Vous pouvez maintenant sélectionner plusieurs valeurs dans la liste des valeurs possibles (exactement comme sous Excel).

Juin 8
Picture

Simplification de l'UX pour Google Analytics

Dans un connecteur Google Analytics, vous avez maintenant accès à la liste de vos comptes et propriétés. Vous n'avez plus à recopier manuellement ces champs depuis GA. La configuration d'une source est bien plus simple avec cette nouvelle fonctionnalité.

Juin 7
Picture

Connecteur Google MCF (Multi-Channel Funnels)

Vous pouvez maintenant connecter vos données Google Multi-Channel Funnels depuis Serenytics.

Juin 7
Picture

Formule ToNumber()

Dans les formules Front-End, la formule ToNumber vous permet de convertir une chaîne de caractères en valeur numérique. C'est très utile notamment à l'intérieur d'un template HTML pour supprimer toute la mise en norme qui a pu être ajoutée à une valeur (par exemple les symboles du type % ou €).

<span class="fa fa-angle-double-{{(toNumber(value1)-toNumber(value2))>=0 ?
                        'up' : 'down'}}"> 
                
Mai 12
Picture

Afficher une barre d'objectif

Vous pouvez maintenant afficher une barre horizontale pour indiquer un objectif sur vos graphiques de type histogramme ou courbe.

Mai 12
Picture

Cacher une série au chargement

Pour un histogramme ou des courbes, vous pouvez cacher une série au démarrage. Cela permet de présenter à l'utilisateur uniquement les données les plus importantes pour lui lorsqu'il charge son dashboard. Il peut ensuite afficher toutes les séries s'il le souhaite.

Mai 12
Picture

Filtres multi-sources

Vous pouvez maintenant créer un filtre dynamique global qui va s'appliquer sur plusieurs sources. Par exemple, si vous avez deux sources de données qui ont une colonne Pays (par exemple une base SQL et un fichier Excel), vous n'avez qu'à spécifier que le filtre devra s'appliquer sur les deux sources. Vous n'avez plus besoin de créer une jointure des données en amont.

Mai 6
Picture

Page Admin

Avec la nouvelle page Admin, vous pouvez maintenant créer vous-mêmes les utilisateurs de votre (ou vos) organisation(s). Cela simplifie notamment beaucoup le process d'ajout de viewers et de partage de dashboards.

Mai 4
Picture

Réglage des largeurs des colonnes d'une free table

Vous pouvez maintenant régler les largeurs des colonnes d'une free-table. Et vous pouvez notamment utiliser cette fonctionnalité pour cacher une colonne (en mettant une largeur de zéro). Cela permet d'utiliser une valeur dans un calcul, mais de ne pas l'afficher.

Avril 21
Picture

Nouveaux widgets KPIs

Nous avons ajouté de nouveaux templates pour les widgets KPIs. Vous pouvez maintenant en un clic changer le rendu de votre KPI (pour afficher un cercle proportionnel à une valeur, afficher une valeur et son taux de croissance en dessous...).

Avril 19
Picture

Jointures FULL OUTER

Vous pouvez maintenant configurer des jointures de type FULL OUTER pour obtenir toutes les données issues de deux tables.

Avril 18
Picture

Portail en marque blanche

Vous pouvez créer votre propre portail de reporting, avec une URL du type : mon_nom-app.serenytics.com. Le portail peut être brandé avec votre icône au lieu de celle de Serenytics.

Mars 31
Picture

Désactiver les marqueurs sur les courbes

Jusqu'à présent, tous les points de données des courbes étaient représentés par un marqueur (un cercle). Vous pouvez maintenant désactiver cet affichage pour obtenir des courbes lisses.

Mars 29
Picture

HTML interprété pour Free-Table

Le code HTML d'une free-table est maintenant interprété. Cela signifie beaucoup plus de souplesse pour écrire vos propres widgets KPIs.

Par exemple, dans le widget ci-dessous, l'icône (vers le haut ou vers le bas) est choisie par le code :

<span class="fa fa-angle-double-{{value1>=0 ? 'up' : 'down'}}"></span>

Si la valeur est positive, l'icône affichée sera fa-angle-double-up et sinon, ce sera fa-angle-double-up (parmi les icônes Font Awesome). Et bien sûr, ce système d'interprétation utilise notre moteur de formule avec de nombreuses fonctions utiles (voir notre documentation).

Mars 21
Picture

Custom Widget & D3.js

Vous pouvez maintenant intégrer simplement un code source complet (par exemple en d3.js) pour créer vos propres widgets. Le moteur Serenytics va prendre en charge toute la partie de récupération des données. Vous bénéficiez de sa puissance (multisources, formules, cache, aggrégation, filtrage...).

Les données sont ensuite accessibles simplement dans votre code sous forme d'un tableau. Vous n'avez qu'à coder la partie rendu de votre widget.

La librairie la plus connue pour cela est D3.js. Nous avons déjà quelques exemples dans notre documentation pour vous guider. Vous n'avez qu'à trouver sur le web le code de votre widget favori, faire un copier-coller et à l'adapter légèrement pour qu'il affiche les données fournies par Serenytics.

Voici un exemple de widget issu du site : https://bl.ocks.org/

Mars 16
Picture

Jointures sur colonnes calculées

Si vos objectifs sont définis dans un fichier Excel et vos données dans une autre source, il vous fallait pour l'instant les synchroniser dans notre datawarehouse pour ensuite les fusionner (i.e. faire une jointure).

Vous pouvez maintenant réaliser cette jointure, même si les clés de jointure sont des formules calculées, sans passer par l'étape de synchronisation. C'est beaucoup plus simple et rapide à mettre en oeuvre.

Mars 15
Picture

Simplification du système de cache

Pour avoir des performances optimales, c'est maintenant très simple. Vous n'avez qu'à activer le cache pour les sources de données qui s'y prêtent, avec la durée de cache souhaitée et ensuite créer une tâche de rechargement de cache pour vos dashboards.

Pour un dashboard avec des données quotidiennes (par exemple des analyses Google Analytics), vous activez le cache sur toutes vos sources Google Analytics. Et ensuite, vous créez une tâche de rechargement de cache planifiée tous les jours, par exemple à 1h du matin.

Mars 11
Picture

Connecteurs YouTube Analytics, DoubleClick, AdWords...

Nous avons ajouté de nombreux nouveaux connecteurs et une nouvelle interface pour mieux les identifier.

Mars 9
Picture

Cartes par régions

Vous pouvez maintenant créer des cartes qui associent une couleur par région. Les régions disponibles sont les pays et les régions et départements français. L'interface vous indique quelles régions de vos données ne sont pas reconnues par notre moteur.

Mars 5
Picture

Cercles sur carte avec couleur selon une autre dimension

Toujours sur les cartes, vous pouvez maintenant attribuer la taille d'un cercle à une première dimension et lier sa couleur à une seconde dimension.

Mars 3
Picture

Nouvelle formule pour créer une colonne de type date

Lorsque votre donnée contient une colonne année et une colonne mois, pour appliquer un filtre temporel (par exemple ">= month(-3)"), vous devez créer dynamiquement une colonne de type date. C'est maintenant possible avec la fonction date :

date([annee], [mois])
Fév 24
Picture

Regroupement de points sur une carte

Lorsque vous avez de nombreux points à positionner sur une carte, afficher tous ces points n'est pas lisible et peu performant.

Nous avons donc déployé une nouvelle version qui permet de regrouper les points les plus proches de manière automatique. En fonction du zoom, les points sont visibles individuellement ou bien regroupés.

Fév 13
Picture

Connecteur GA multi-segments

Notre connecteur Google Analytics vous permet maintenant d'obtenir les données de plusieurs segments Google Analytics (Built-In ou Custom) en une seule requête.

Cela vous permet de créer simplement un graphique avec des courbes représentant plusieurs segments, par exemple :

Fév 7
Picture

Tâche de synchronisation d'une source dans un storage

Vous pouvez maintenant très simplement synchroniser n'importe quelle source de données dans notre datawarehouse interne (i.e. un storage Serenytics).

Pour cela, il suffit de configurer et planifier une tâche de type "Synchronize a data source into a Serenytics storage" :

Jan 30
Picture

Fonction last_value()

last_value est une fonction qui retourne la dernière valeur d'une colonne triée selon une autre colonne. Cela permet par exemple de récupérer la dernière température, le dernier achat, le dernier espace disque disponible d'un jeu de données.

La fonction existe aussi avec une condition : last_value_if.

Par exemple pour obtenir la dernière température en se limitant aux lignes qui ont un statut à "valid" :

last_value_if([temperature], [timestamp], [status] == "valid")

Jan 26
Picture

Nouvelle documentation

La nouvelle version de notre documentation, plus lisible et plus complète est en ligne: https://doc.serenytics.com/

Jan 26
Picture

Accès à toutes les cellules d'une free-table dans une formule

Avec la variable data, vous pouvez accéder à toutes les cellules d'une free-table dans une formule.

Dans l'exemple ci-dessous, la ligne Atteinte Objectif est définie par la formule de calcul :

data[2, 2] / data[3, 2]

Jan 23
Picture

HTML mode pour les free-tables

Les free-tables vous permettent de faire des tables de manière très libre. Vous pouvez maintenant fournir vous mêmes le code HTML de chaque cellule.

Le HTML peut afficher des valeurs (résultats de requêtes de données) mais aussi modifier dynamiquement le rendu en fonction de ces valeurs. Celles-ci sont accessibles via la syntaxe {{valueN}}.

Avec ce mode HTML lié aux données, vous pouvez créer de très nombreux KPIs :

Jan 23
Picture

Variables globales

Dans certains projets, vous pouvez être amené à créer beaucoup de sources et de nombreuses formules sur ces sources. Dans ce cas, il arrive souvent que ces formules dépendent d'une même variable (e.g. le mois de données à prendre en compte). Mais il fallait jusque-là toutes les modifier pour mettre à jour un rapport.

Vous pouvez maintenant ajouter dans vos formules des variables globales. Si vous modifier cette variable, toutes les formules sont mises à jour automatiquement.

Jan 10
Picture

Formules dans les free-tables

La free-table est un outil très puissant pour créer une table où chaque cellule est une requête indépendante vers une source de données. Il était jusque-là possible de configurer une cellule soit en mode texte soit en mode valeur (i.e. requête de données).

Nous avons rajouté un mode formule qui vous permet de réaliser des calculs à partir des résultats des autres cellules. Par exemple, dans l'exemple ci-dessous, la cellule de Croissance du CA est obtenue par :

(line[2]-line[3])/line[3]

Jan 9
Picture

Formules de formules

Grande évolution pour notre moteur de calcul : vous pouvez maintenant définir des formules qui font appel à d'autres formules.

Par exemple, vous définissez une première formule produit GOLD:

[catégorie] in ["Deluxe", "Marque Luxe", "Luxurious"]

Et ensuite, vous pouvez créer une nouvelle formule qui réutilise la première, par exemple Ratio CA des produits GOLD :

Jan 5
Picture

Filtrage des requêtes Google Analytics

L'API Google Analytics peut être lente si vous faites une requête qui demande beaucoup de données. Pour l'instant, les filtres n'optimisaient pas votre requête car ils étaient appliqués sur la donnée ramenée dans Serenytics (i.e. après le call d'API).

Vous pouvez maintenant appliquer un filtre qui va s'appliquer directement lors de l'appel à Google Analytics. Cela peut réduire très fortement le nombre de lignes à ramener et ainsi accélérer vos requêtes.

Jan 4
Picture

Affichage des tâches par catégories

Pour organiser le système de tâches, celles-ci sont maintenant groupées par catégories dans le menu Automation.

Déc 16
Picture

Jointures sur formules calculées

Pour faire une jointure entre deux sources, vous deviez pour l'instant avoir une colonne dans chaque table contenant la clé de jointure. Or, il arrivait souvent qu'en cherchant à joindre deux tables d'origines différentes (par exemple des données de Google Analytics et des données d'un CRM), cette clé était légèrement différente.

Ce n'est plus un problème maintenant avec la possibilité de réaliser des jointures sur des colonnes calculées. Vous pouvez créer des colonnes calculées et ensuite les utiliser comme clés de jointure.

Déc 15
Picture

Nouvelle tâche de chargement de fichiers depuis un SFTP

Vous pouvez maintenant charger des fichiers CSV (ou CSV.gz) depuis un serveur SFTP dans un storage Serenytics via une Tâche. Vous n'avez qu'à remplir l'interface et scheduler l'éxécution. La configuration permet de spécifier un pattern de fichier.

Déc 9
Picture

Gestion des NULLs et des chaînes vides

La gestion des champs non définis (NULL en base de données) ou vides doit toujours être faite de manière claire pour éviter les erreurs dans les tableaux de bords.

Pour cela, nous avons rajouté les fonctions suivantes dans les colonnes calculées :

  • is_defined : renvoie vrai si la valeur est NULL
  • is_empty : renvoie vrai si la valeur est non NULL mais est une chaîne vide

Déc 8
Picture

Histogrammes et courbes en mode cumulatif

Vous pouvez maintenant configurer une série de données en mode cumulatif pour un histogramme ou une courbe. Le réglage se fait par série dans la section Mise en forme.

Déc 7
Picture

Tableau libre

Dans Serenytics, vous pouviez pour l'instant créer des tableaux simples ou des tableaux croisés dynamiques. Mais impossible de créer un tableau où chaque cellule était une formule calculée sur une source de données distincte.

Avec le tableau libre, c'est maintenant possible. Vous pouvez configurer cellule par cellule votre tableau. Chaque cellule est :

  • un champ texte (ou HTML)
  • ou une formule calculée sur vos données

Nov 29
Picture

Nouvelle API pour éditer les dashboards

Pour certains projets, il est parfois nécessaire de modifier de manière automatisée un grand nombre de dashboards. C'est maintenant possible avec notre API. Comme toujours, ces APIs sont wrappées dans des fonctions de notre client en Python :

  • client.get_webapps()
  • webapp.set_custom_css()
  • webapp.set_custom_html_header()
  • webapp.folder_name

Nov 24
Picture

Ajoutez des infobulles d'aide à vos widgets

Dans les options de Rendu Graphique, vous avez maintenant une option pour activer une infobulle sur le widget sélectionné. Le contenu de l'infobulle peut être du texte ou un contenu HTML. Cette aide apparaitra dès que l'utilisateur laissera sa souris au dessus du widget.

Nov 21
Picture

Nouvelles formules pour caster les types de données

Dans certains cas, vous pouvez avoir besoin de transformer le type d'une colonne de données d'un format numérique vers une chaîne de caractères ou l'inverse. C'est maintenant possible avec les deux fonctions de cast :

  • string()
  • numeric()

Cela vous permet par exemple d'écrire la formule :

"Année -- " + string(extract_date_part([date], "year")

Nov 21
Picture

Nouvelle tâche de rechargement du cache d'un dashboard

Pour les analyses basées sur des dizaines ou centaines de millions de lignes, la meilleure solution pour que les dashboards s'affichent immédiatement est de les pré-charger en cache. Jusqu'à maintenant, il fallait pour cela écrire un script Python. C'est maintenant possible de manière très simple via une interface graphique (menu Automation).

Nov 18
Picture

Nouvelle tâche de worflow de traitements de données

Via le menu Automation, vous pouvez maintenant créer une tâche qui vous permet d'enchainer plusieurs étapes (quel que soit le type de ces étapes : script Python, ETL step ou Tâche).

Cela permet par exemple d'exécuter à la chaine :

  • Un script qui nettoie et charge la donnée brute
  • Un script qui calcule des pré-agrégats
  • Un script qui envoie par email plusieurs dashboards

Nov 18
Picture

Nouvelle tâche d'envoi automatisé de dashboard par email

L'envoi automatique d'un email avec un dashboard au format PDF en pièce jointe est maintenant extrêmement simple. Il suffit d'aller dans le menu Automation, de créer une nouvelle Tâche, et ensuite, de choisir dans la bibliothèque la Tâche d'envoi d'email.

Vous avez ensuite une interface graphique avec les champs suivants à remplir :

  • Sujet
  • Contenu de l'email (HTML)
  • Liste des destinataires
  • Le dashboard à attacher en PDF

Vous n'avez plus qu'à régler la fréquence de l'envoi du dashboard.

Nov 16
Picture

Nouveau menu Automation et nouvelles Tâches automatisées

La planification de traitements est un point fort de notre plateforme. Pour l'instant, vous pouviez créer des scripts en Python ou des étapes d'ETL (avec agrégat, filtrage et formules) et les exécuter directement ou via notre scheduler. Pour de multiples besoins, cela obligeait à coder en Python des scripts, même pour des besoins simples (par exemple envoyer un dashboard par email tous les lundis matin).

Dans la nouvelle version, nous avons remplacé le menu Scripts par le menu Automation. Dans ce menu, vous avez maintenant trois types d'automations:

  • Script Python
  • Etape ETL
  • Tâche

Les deux premiers étaient déjà présents dans le logiciel. La nouveauté vient de l'entrée Tâche. Ces Tâches vont vous permettre de rajouter via une interface graphique (donc de manière très simple) des automatisations, comme par exemple l'envoi régulier d'un dashboard par email, le chargement d'un dashboard en cache, l'enchainement de plusieurs scripts...

Nov 16
Picture

Fonction d'envoi d'email depuis un dashboard

Un dashboard se doit d'être actionnable (c'est à dire que les informations affichées doivent permettre une action, et non pas, à l'opposé, présenter une masse d'informations impossible à appréhender).

Dans cette optique, nous avons rajouté une fonction mailto qui permet d'envoyer un email. Dans un tableau, avec cette fonction et notre système de formules, vous pouvez générer automatiquement le destinataire, le sujet et le contenu de l'email selon vos données. Idéal pour mettre en place un système de rappel aussi simple qu'efficace.

Nov 15
Picture

Filtres dynamiques hiérarchiques

Nos filtres dynamiques sont maintenant hiérarchisés. Si vous avez un filtre par région et un filtre par département, lorsque vous sélectionnez une région, seuls les départements de cette région seront visibles dans le second filtre.

Nov 10
Picture

Organisez vos projets en répertoires

Vous pouvez maintenant agencer vos sources de données, vos dashboards et vos scripts en répertoires.

Nov 7
Picture

Filtres dynamiques conservés à l'impression pdf

Lors de la génération d'un dashboard en pdf (via un clic sur l'icône print), les filtres dynamiques sont conservés. Les valeurs de ces filtres sont encodées dans l'URL d'un dashboard. Si vous copiez-collez l'url d'un dashboard sur lequel des filtres dynamiques sont remplis, le dashboard s'ouvrira avec les mêmes valeurs pour les filtres dynamiques.

Nov 3
Picture

Nouvelles fonctions de formatage de dates et de valeurs numériques

Nous avons ajouté trois nouvelles fonctions de formatage de données:

  • formatDate: formate n'importe quelle date vers n'importe quel format de date (e.g. formatDate("2016-09-22", "YYYY-MMMM-dddd") renvoie "2016-September-Thursday").
  • formatDateWithLocale: formate n'importe quelle date vers n'importe quel format de date avec une locale (e.g. formatDateWithLocale("2016-09-22","dddd DD MMMM YYYY", "fr") renvoie "jeudi 22 septembre 2016").
  • padLeft: ajoute des caractères au début (à gauche) de la chaîne pour atteindre la taille passée en paramètre (e.g. padLeft("3",3, "0") renvoie "003").

Oct 27
Picture

Configurez le CSS par widget

Avec Serenytics, vous pouvez éditer le CSS complet d'un dashboard pour l'adapter à votre charte graphique. Vous pouvez maintenant faire cela par widget, de manière individuelle.

Pour faire cela, au lieu d'utiliser par exemple le champ CSS srn-widget, utilisez le champ srn-widget-7 pour modifier seulement le widget d'id 7 (l'id du widget sélectionné apparait en-dessous de l'éditeur de CSS).

Oct 24
Picture

Machine learning ready !

La librairie python scikit-learn a été ajoutée à la liste des modules disponibles pour les scripts Serenytics en python. Cela vous permet de déployer n'importe quel algorithme parmi la très longue liste de scikit-learn en production, dans le cloud.

Oct 10
Location

Nouveau type de formule qui renvoie une unique valeur numérique

Dans une source de données, vous pouvez maintenant ajouter une formule valeur, par exemple : sum([Prix]) va calculer la somme des valeurs de la colonne Prix. Tous les agrégats sont disponibles: sum, avg, dcount, min, max, quantile.

Vous pouvez aussi ajouter une condition à l'agrégat, par exemple : sum_if([Prix], [Pays] == "FRANCE"). Et bien sûr, vous pouvez utiliser des conditions plus complexes : sum_if([Prix], ([Pays] == "FRANCE" or [Produit] in ['Prod1', 'Prod2']) and [Discount]==0). Et vous pouvez combiner ces agrégats (par exemple pour calculer un ratio), ou bien les utiliser à l'intérieur de la condition d'une formule conditionnelle.

Oct 4
Movie

Nouvelles méthodes pour filtrer sur les dates

Pouvoir filtrer efficacement sur les dates est très utile dans de nombreux projets. C'est pourquoi nous avons déployé une nouvelle version de la gestion des dates sur Serenytics.

Maintenant, month(0) indique le mois en cours, month(-1) le mois précédent, month(1) le mois suivant... Vous pouvez utiliser les mots-clés suivants : minute, hour, day, month, quarter et year. Pour comparer des résultats du trimestre en cours à ceux du même trimestre de l'année précédente, il faut par exemple utiliser quarter(0) et quarter(-4).

Sep 28
Picture

Nouvelle fonction substring

Cette fonction vous permet d'extraire une sous partie d'une chaîne de texte contenue dans une colonne.

Sep 26
Picture

Filtrage booléen

Dans le cas où vous avez une colonne de type booléen (true/false) ou une colonne obtenue par une formule qui renvoie un booléen, vous pouvez maintenant filtrer le résultat dans le dashboard avec les opérateurs 'is_true' et 'is_false'.

Sep 22