This article gives an example of how data entered into a Google Form can be pushed into Aptible Comply using Google Apps Script. The "tags" can be interrogated by an Automation and drive specific alerts if the Event is logged as an "Issue" based on the rules configured within Aptible.
Example Script
This is an example script and assumes prior knowledge of Google Apps Scripts. The security and performance of Events API actions are ultimately the responsibility of the Aptible customer. Our team is always looking to document and learn about novel use cases for the API, so please reach out to your CSM for support and with feedback.
The example script is for taking the responses to a security training form, and logging it as evidence. Other examples of Google Forms that could have relevance for security/compliance processes include:
- Security incident reporting
- Customer complaints
- Access requests
- Employee onboarding and offboarding requests
While this example is for Google Apps Script and a Google Form, a similar flow will happen regardless of what external data source is being connected to Aptible. The data will need to be processed/structured and then posted at the endpoint.
//Google Apps Script (based on JavaScript) takes the results of a completed Google Form and posts it into Aptible as evidence
function SubmitGoogleFormData(e) {
try {
// Get the columns
var
ss = SpreadsheetApp.getActiveSheet(), // get the active sheet
lr = ss.getLastRow(), // get the last row
resp = ss.getRange(lr, 2, 1, 1).getValue(), // column 2 response
user = ss.getRange(lr, 3, 1, 1).getValue(), // column 3 Email Address
notes = ss.getRange(lr, 4, 1, 1).getValue(), // column 4 Notes
// Create the payload
payload = {
'event': {
'tags': [resp],
'event_asset_ids': [user],
'event_type': 'Completed Security Annual Training',
'payload': [notes] }
}
// Set up authorization
var headers = {
'X-API-KEY': 'events_api_key',// Replace with evebts_api_key key for Aptible Program you would like to connect to
};
// build call
var call = {
'method': 'post',
'contentType': 'application/json',
'headers': headers,
'payload': JSON.stringify(payload),
}
// Set API method URL
var url = "https://comply-api.aptible.com/api/v1/events";
// Make the call
var response = UrlFetchApp.fetch(url, call);
// Log the response (useful for debugging)
Logger.log(JSON.stringify(response), call);
} catch (error) {
Logger.log(error.toString(), call);
}
}