Getting Ready
Follow the instructions from the first two sections of the Creating Your First User article to setup and configure the Mambo PHP SDK.
The Script
Below you will find a script that loads behaviour based activities into Mambo based on a CSV file. The CSV file can also be found below so that you can follow the same structure for your data. Note that both files are also available for download.
In order to use the script you will need to take the following steps:
- Configure the fields in the script that require your input (see below)
- Add your behaviour activities to the CSV file
- Setup the Mambo PHP SDK as explained in Creating Your First User
There are 4 fields in the script that require your input:
- serverUrl: this is the location of your Mambo installation. For example, if you are using the SaaS platform that would be https://api.mambo.io
- publicKey: this is your public API Key. In the SaaS platform this can be accessed here: https://api.mambo.io/#keys
- privateKey: this is your private API Key. In the SaaS platform this can be accessed here: https://api.mambo.io/#keys
- siteUrl: this is the site for which you are creating the users. In the SaaS platform this can be accessed here: https://api.mambo.io/#config/sites
Once everything is configured you can run your CSV loader with the following command:
php behaviour_loader.php sample_behaviour_data.csv
The behaviour_loader.php script:
<?php
// Import the library files
require_once('sdk/Mambo.php');
// --------------- CONFIGURATION START ----------------
// Configure server and security variables
$serverUrl = "INSERT_MAMBO_SERVER_URL";
$publicKey = "INSERT_MAMBO_PUBLIC_KEY";
$privateKey = "INSERT_MAMBO_PRIVATE_KEY";
$siteUrl = "INSERT_MAMBO_SITE_URL";
// --------------- CONFIGURATION END ----------------
// Initialise the clients credentials and end point URL, this only needs to be done once
MamboClient::setCredentials( $publicKey, $privateKey );
MamboClient::setEndPointBaseUrl( $serverUrl );
// Use default timezone to parse dates
date_default_timezone_set("UTC");
// Check if a CSV file was supplied
if( $argc != 2 ) {
exit("Please provide a CSV file name as an argument i.e. php behaviour_loader my_file.csv");
}
// Open the CSV file
$csvFileName = $argv[1];
$handle = fopen( $csvFileName, "r" );
if( $handle === FALSE ) {
exit("Failed to open the CSV file: " + $csvFileName);
}
// Process the CSV file
$row = 0;
while( ( $data = fgetcsv( $handle, 1000, "," ) ) !== FALSE )
{
$row++;
debugLog( "---------------------------------" );
debugLog( "Parsing row number: " . $row );
if( $row == 1 ) {
debugLog( "Head row: skipping" );
continue;
}
createActivity( $data );
debugLog( "Completed row number: " . $row );
}
// Close the CSV file
fclose( $handle );
exit();
// --------------- Helper Functions ----------------
// Try to create the activity
function createActivity( $data )
{
global $siteUrl;
$uuid = $data[0];
debugLog( "Creating activity for user: " . $uuid );
$activityData = createActivityData( $uuid, $data );
$activity = MamboActivitiesService::createSync( $siteUrl, $activityData );
validateActivityCreation( $uuid, $activity );
return $uuid;
}
function createActivityData( $uuid, $data )
{
$verb = $data[1];
$createdOnOverride = $data[2];
$reason = $data[3];
$attrs = new ActivityBehaviourAttrs();
$attrs->setVerb( $verb );
$data = new ActivityRequestData();
$data->setUuid( $uuid );
$data->setAttrs( $attrs );
if( !empty( $createdOnOverride ) ) {
$data->setCreatedOnOverride( $createdOnOverride );
}
if( !empty( $reason ) ) {
$data->setReason( $reason );
}
return $data;
}
function validateActivityCreation( $uuid, $activity ) {
if( isset( $activity->error ) ) {
debugLog( "An unexpected error occurred! Dumping output and terminating." );
var_dump( $activity );
exit();
}
}
// Basic output to the terminal
function debugLog( $text ) {
echo $text . "\n";
}
The sample_behaviour_data.csv:
uuid,behaviour_verb,createdOnOverride,reason
1,response_nps,2019-01-01T13:15:00.000Z,
2,mobile_sale,,
The fields in the CSV file represent:
- UUID: this is the unique user ID. You can set which ever ID works best for your systems. Ideally this would be your unique corporate identity or the identity used during SSO to identify users across systems.
- Behaviour Verb: each behaviour you create in the Mambo platform will have a verb associated to it. Use this field to add the relevant behaviour verb.
- Created On Override: by default the activity will be created with today's date, but you can override and provide your own date. Please observe the pattern with which the date is used.
- Reason: this allow you to provide a reason as to why this behaviour is being triggered. Be careful not to use commas in your text!
Download the files below:
0 Comments