Documentação do software de gestão, planeamento e otimização das intervenções

Google Form para Cadulis


Configure um formulário Google

Aceda a https://docs.google.com/forms e crie um formulário

Cadulis Google form

Adicione os campos que considerar relevantes ;)

Criar um acesso no Cadulis

Aceda a https://app.cadulis.com

Vá a Definições > Acessos externos > Criar um acesso externo

Escolha o tipo “Webservice REST”

Autorizar a criação de atividade

Na secção API Rest aprendeu a criar o seu acesso webservice?

Assinale a caixa para permitir Criar uma atividade e, conforme a sua necessidade, Criar um cliente

Guarde.

Copie a sua chave API disponível no respetivo bloco

Configure o script GoogleForm para injetar no Cadulis

Agora pretendemos injetar as respostas do formulário Google Form diretamente no Cadulis. Vamos automatizar este processo através do editor de scripts.

No seu formulário GoogleForm, clique em e escolha Editor de scripts

Código

Adicione um ficheiro e utilize o código seguinte, tendo o cuidado de substituir a chave API pela obtida anteriormente

Em baixo, lembre-se de substituir no início do script apiKey e activityTypeId :

  • apiKey é a chave API obtida acima no seu acesso externo Cadulis
  • activityTypeId é o identificador do seu tipo de atividade. Este identificador encontra-se no URL ao clicar no tipo de atividade no catálogo.

function onFormSubmit(e) {  
    // apiKey: Substitua pela chave do acesso externo da sua configuração Cadulis
    var apiKey = 'XXXXXXXX';
    // activityTypeId: Substitua pelo id do tipo de atividade (no catálogo) que pretende criar
    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 = {};
    
    // Gerar uma string com todas as perguntas pelo título e respetiva resposta
    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;
    }
    
    // gerar uma referência única a partir do ID da resposta do Google Form
    var cref = responseId.substring(0, 15) + '-' + responseId.substring(responseId.length - 15);
    
    // preparar os dados para o Cadulis
    var formData = {
        'cref': cref,
        'reference': cref,
        'intervention_type':{
            'id': activityTypeId
        },
        'comment': responseString,
        'title': 'Resposta no 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());
}

Acionamento

Para que este script seja utilizado em cada registo do formulário, aceda ao menu à esquerda e escolha Acionadores

Em “Tipo de evento”, selecione No envio do formulário e guarde.

E pronto: por cada resposta no Google Form, será criada uma atividade no Cadulis!