Sortie de Crème CRM en version 2.0

20
4
avr.
2019
Commercial

Le 11 janvier 2019 est sortie la version 2.0 du logiciel de gestion de la relation client Crème CRM, la précédente version étant la 1.8 (sortie le 24 mai 2018).

Icône de Crème CRM

Au programme, principalement le passage à Python 3. Les nouveautés sont détaillées dans la suite de la dépêche.

Sommaire

Description du logiciel

Crème CRM est un logiciel de gestion de la relation client, généralement appelé CRM (pour Customer Relationship Management). Il dispose évidemment des fonctionnalités basiques d’un tel logiciel :

  • un annuaire, dans lequel on enregistre contacts et sociétés : il peut s’agir de clients, bien sûr, mais aussi de partenaires, prospects, fournisseurs, adhérents, etc. ;
  • un calendrier pour gérer ses rendez‐vous, appels téléphoniques, conférences, etc. ; chaque utilisateur peut avoir plusieurs calendriers, publics ou privés ;
  • les opportunités d’affaires, gérant tout l’historique des ventes ;
  • les actions commerciales, avec leurs objectifs à remplir ;
  • les documents (fichiers) et les classeurs.

Crème CRM dispose en outre de nombreux modules optionnels le rendant très polyvalent :

  • campagnes de courriels ;
  • devis, bons de commande, factures et avoirs ;
  • tickets, génération des rapports et graphiques…

L’objectif de Crème CRM est de fournir un logiciel libre de gestion de la relation client pouvant convenir à la plupart des besoins, simples ou complexes. À cet effet, il propose quelques concepts puissants qui se combinent entre eux (entités, relations, filtres, vues, propriétés et blocs), et il est très configurable (bien des problèmes pouvant se résoudre par l’interface de configuration) ; la contrepartie est qu’il faudra sûrement passer quelques minutes dans l’interface de configuration graphique pour avoir quelque chose qui vous convienne vraiment (la configuration par défaut ne pouvant être optimale pour tout le monde). De plus, afin de satisfaire les besoins les plus particuliers, son code est conçu pour être facilement étendu, tel un cadriciel (framework).

Du côté de la technique, Crème CRM est codé notamment avec Python/Django et fonctionne avec les bases de données MySQL, SQLite et PostgreSQL.

Principales nouveautés de la version 2.0

Voici les changements les plus notables de cette version :

Passage à Python 3

Crème 1.8 fonctionne avec Python 2.7, et la version de Django utilisée est la 1.11, dernière version à gérer à la fois Python 2 et Python 3. Crème 2.0 reste sur Django 1.11, mais utilise désormais Python 3.5 (et supérieur, évidemment). Ce changement majeur justifie le passage au numéro de version 2.0.

Le passage à Python se sera fait attendre (comme il n’apporte rien de visible aux utilisateurs, on trouve toujours des fonctionnalités plus prioritaires à faire…). Mais au final, il s’est avéré plutôt facile dans les faits, grâce :

  • au travail des développeurs Django qui ont pris sur eux de faire le code un peu moche nécessaire pour être compatible Python 2 et Python 3 ;
  • au travail dans les versions précédentes de Crème pour utiliser les fonctionnalités de Python 3 retro‐portées dans Python 2.7 ;
  • une bonne couverture par les tests unitaires.

Après avoir étudié les journaux des modifications des différentes versions de Python 3 (3.0 → 3.5), il n’aura fallu que quelques heures pour que les 100 000 lignes veuillent bien globalement fonctionner (en désactivant un module dissident). Puis, une dizaine de jours pour que l’ensemble des tests unitaires s’exécutent sans aucune erreur.

Une bonne chose de faite !

Les vues basées sur des classes

C’est aussi une modification sous le capot.

Dans Django, une vue est le code, rattaché à un motif d’URL, qui va gérer une requête HTTP et renvoyer une réponse HTTP (qui contient typiquement du HTML, parfois du JSON, etc.). Historiquement, les vues étaient des fonctions Python, mais depuis quelques années ces vues peuvent êtres écrites sous la forme de classes.

À cause de son âge de création, le code de Crème utilisait quasi‐exclusivement les vues sous forme de fonctions. Dans Crème 2.0, une grande partie des vues ont été converties pour être des classes, avec les motivations suivantes :

  • Crème est conçu de manière à avoir un cœur qui fait la majorité du travail le plus pénible, et des apps (nomenclature qui désigne des modules pour Django) qui vont introduire chacune de nouveaux types d’entités ; on va donc retrouver des vues très similaires dans les différentes apps, les vues basées sur des classes permettent une bien meilleure factorisation que les vues sous forme de fonctions ;
  • un des objectifs de Crème est de fournir une base facilement adaptable à des besoins spécifiques ; si elles sont bien écrites, les vues basées sur des classes peuvent facilement être étendues, et même modifiées depuis du code externe (par exemple, en stockant nombre de paramètres en tant qu’attributs de classe plutôt que de valeurs en dur dans le code).

Les anciennes vues génériques sont marquées comme obsolètes et seront supprimées dans Crème 2.1 . Les développeurs sont donc encouragés à utiliser les nouvelles vues génériques utilisant des classes.

Les actions dans les listes améliorées

Dans les vues en listes des entités (ou « fiches »), il est possible d’effectuer des actions (modifier, supprimer…) ; ces actions se font soit sur une seule fiche, soit sur plusieurs à la fois. Le code des actions a été amélioré, apportant des fonctionnalités nouvelles aux développeurs. Mais ses améliorations profitent aussi aux utilisateurs.

L’interface des actions multiples a été améliorée ; on voit ici que si aucune fiche n’est sélectionnée, alors les entrées du menu action sont désactivées (et un message d’aide vous indique de sélectionner au moins une fiche) :

Actions multiples sans fiche sélectionné

De nouvelles actions, qui jusqu’à présent n’étaient accessibles que depuis les vues détaillées, sont disponibles :

  • le clonage de fiches ;
  • le téléchargement sous forme de fichiers PDF des factures et devis ;
  • le téléchargement sous forme de fichiers CSV ou XLS des rapports ;
  • le téléchargement des documents ;
  • les courriels peuvent être envoyés à nouveau, courriel par courriel, ou bien plusieurs à la fois.

Liste des contacts avec menu d’action

Le futur

Django 2.2 vient de sortir, c’est la nouvelle version avec support à long terme (LTS) et elle sera utilisée dans Crème 2.1.

Nous avons parlé des vues basées sur des classes au‐dessus, il se trouve que les vues de listes utilisent encore des fonctions, mais avec Crème 2.1 elles utiliseront elles aussi des classes. Ce changement permettra l’introduction d’autres améliorations attendues depuis longtemps dans les listes.

Aller plus loin

  • # API ?

    Posté par  (site web personnel) . Évalué à 4. Dernière modification le 04 avril 2019 à 21:19.

    Une API est-elle disponible, pour interface la bête avec des outils internes ?

    J'hésite fortement à virer des parties de code maison par un outil plus complet, mais il faut que ça puisse s'interfacer.

    Edit: suffisait de chercher, c'est indiqué là, tout en bas. https://cremecrm.com/fonctionnalites
    Reste à en trouver la doc.

    Merci !

    alf.life

    • [^] # Re: API ?

      Posté par  (site web personnel) . Évalué à 7.

      Il n'y a pas (encore) d'API au sens Rest si c'est votre question. Il y a bien longtemps un de nos clients en voulait une rapidement, et j'avais donc fait une v0.1 ; mais finalement ledit client à changé d'avis et nous n'avons jamais eu l'occasion de tester en production et donc d'intégrer ce code.

      Ils arrivent régulièrement à mes collègues qui s'occupent des intégrations client de devoir s'intégrer avec des outils maison (comme on peut s'en douter) ; et pourtant on n'a pas encore eu une vraie occasion de coder une API Rest générique. En effet parfois ces outils maison pondent des fichiers plats (qu'on va par exemple lire la nuit) ; parfois ce sont ces outils qui ont une API sur laquelle on doit s'interfacer ; et parfois mes collègues rajoutent une mini API (avec Django Rest Framework) pour les besoins spécifiques.

      Donc ça arrivera soit le jour où on estimera que ça nous ferait globalement gagner du temps d'en mettre une générique (plutôt que d'en faire des had-oc), soit le jour ou un utilisateur sera prêt à investir pour (en temps/code ou en argent)—sachant que ce n'est sûrement pas énorme (mais bon comme toujours, pour faire bien, il faut un minimum de temps).

      En espérant avoir répondu correctement à votre question.

      • [^] # Re: API ?

        Posté par  (site web personnel) . Évalué à 4.

        Un usage que nous aurions de l'API : Faire communiquer notre ERP<->CremeCrm pour remonter les devis, les commandes, les factures pour éviter la double saisie.

        Par exemple sur le terrain un commercial saisie un devis, il est remonté dans l'ERP et l'ADV valide, modifie le devis et il redescend dans CremeCRM pour que le commercial puisse le consulter.

        C'est le genre de chose qu'on peut faire avec des fichiers plats mais le processus est lourd et encore plus à l'heure où les ERP se sont ouvert à l'extérieur via des webservices ou autres techno.

        Born to Kill EndUser !

        • [^] # Re: API ?

          Posté par  (site web personnel) . Évalué à 3.

          C'est le genre de chose qu'on peut faire avec des fichiers plats mais le processus est lourd et encore plus à l'heure où les ERP se sont ouvert à l'extérieur via des webservices ou autres techno.

          Le cas qu'on a pu avoir c'est par exemple un client avec un vieil ERP développé en interne et tournant sous AS400 ; l'équipe en interne impose que la communication se fasse avec un fichier plat généré toutes les nuit par l'ERP. Si on a le choix de la technique on partira évidemment plus sur des web-services.

          J'aimerai beaucoup avoir l'occasion de travailler sur la communication avec d'autres logiciels libres ; en pratique ce n'est malheureusement une demande de nos clients actuels (ce qui touche à la problématique du financement des logiciels libres).

  • # Captures d'écran

    Posté par  (site web personnel) . Évalué à 3.

    Hello,

    Vous devriez mettre à jour les captures qui sont ici : https://www.cremecrm.com/portfolio/3c . Ca a l'air beaucoup plus joli/actuel dans la capture que vous avez mis dans la dépêche.

    C'est marrant parce que je n'ai aucune utilité de ce type de logiciel mais je suis toujours content quand je vois arriver une de vos dépêches : c'est sympa les logiciels qui mûrissent sur le long terme.

    • [^] # Re: Captures d'écran

      Posté par  (site web personnel) . Évalué à 3.

      Vous devriez mettre à jour les captures qui sont ici […]

      Vous avez raison ; l'interface a pas mal évolué (notamment avec la 1.7 sortie l'année dernière) et mon collègue qui s'occupe du site est assez débordé.

      […] je suis toujours content quand je vois arriver une de vos dépêches : c'est sympa les logiciels qui mûrissent sur le long terme.

      Merci beaucoup ! C'est évidemment une fierté pour nous d'arriver à développer un logiciel libre avec nos petits moyens ; ça fait plaisir de voir que des gens aiment mes dépêches (je sais qu'il est plus facile de prendre la plume quand on est mécontent).

    • [^] # Re: Captures d'écran

      Posté par  . Évalué à 1.

      idem. Je m'en sers pas, mais je le trouve sympathique ce logiciel.
      Bonne continuation

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.