Google Form vers Cadulis


Configurez un formulaire Google

Rendez-vous sur https://docs.google.com/forms et créez un formulaire

Cadulis Google form

Ajoutez les champs qui vous intéressent ;)

Créer un accès sur Cadulis

Rendez-vous sur https://app.cadulis.com

Allez dans Paramètres > Accès externes > Créer un accès externe

Choisissez le type “Webservice REST”

Autoriser la création d’activité

Dans la section API Rest vous avez appris à créer votre accès webservice?

Cochez la case pour permettre de Créer une activité et selon votre besoin Créer un client

Enregistrez.

Copiez votre clé API disponible dans l’encart correspondant

Configurez le script GoogleForm pour injecter dans Cadulis

Désormais nous souhaitons injecter les réponses du formulaire Google Form directement dans Cadulis. Nous allons automatiser cela grâce à l'éditeur de scripts.

Depuis votre formulaire GoogleForm, cliquez sur et choisissez Editeur de scripts

Code

Ajoutez un fichier et utilisez le code suivant, en prenant soin de remplacer clé API par celle obtenue plus haut

Ci-dessous, pensez à remplacer en début du script apiKey et activityTypeId :

  • apiKey est la clé API obtenue plus haut sur votre accès externe Cadulis
  • activityTypeId est l’identifiant de votre type d’activité. Cet identifiant se trouve dans l’url lorsque vous cliquez sur le type d’activité dans le catalogue.

function onFormSubmit(e) {  
    // apiKey: Replace with the key of the external access of your Cadulis configuration
    var apiKey = 'XXXXXXXX';
    // activityTypeId: Replace with the id of activity type (in catalog) you want to create an activity
    var activityTypeId = 1234;

    var form = FormApp.getActiveForm();
    var allResponses = form.getResponses();
    var latestResponse = allResponses[allResponses.length - 1];
    var responseId = latestResponse.getId();
    var response = latestResponse.getItemResponses();

    var responseMap = {};
    
    // Generate a string containing all questions by ttle and their answer
    var responseString = '# ' + responseId + "\n\n";
    for (var i = 0; i < response.length; i++) {
        var question = response[i].getItem().getTitle();
        var answer = response[i].getResponse();
        responseString += question + ' : ' + answer + "\n";
        responseMap[question] = answer;
    }
    
    // generate a unique reference from Google Form response ID
    var cref = responseId.substring(0, 15) + '-' + responseId.substring(responseId.length - 15);
    
    // prepare Cadulis data
    var formData = {
        'cref': cref,
        'reference': cref,
        'intervention_type':{
            'id': activityTypeId
        },
        'comment': responseString,
        'title': 'Réponse sur Google Form'
    };
    
    var options = {
        "method": "post",
        "contentType": "application/json",
        "payload": JSON.stringify(formData)
    };
    
    console.log(formData);
    var url = 'https://api.cadulis.com/connectors/' + apiKey + '/interventions';
    var result = UrlFetchApp.fetch(url, options);
    console.log(result.getContentText());
}

Déclenchement

Pour que ce script soit utilisé à chaque enregistrement de formulaire, rendez-vous dans le menu de gauche et choisissez Déclencheurs

Dans “Type dévénement”, choisissez Lors de l'envoi du formulaire, et enregistrez.

Et voilà : à chaque réponse sur Google Form, une activité sera créée dans Cadulis !