I’m attempting to post to two multiple checkbox fields using the Properties API (see my previous question here).
When I run the below script as part of my full contacts update script, I am getting a validation error. The option I am trying to save to the multiple checkbox does not exist: “message”:"b0e3726b-7fed-4e61-8e66-702a45416813 was not one of the allowed options.
I’m pretty sure I’m missing something obvious ![]()
<?php
$allTeamGuids = array();
function addTeamGUIDtoGUIDProperties($guids){
//update properties
//PUT /properties/v1/contacts/properties/named/:property_name
$properties = array('active_team_guids', 'allteamguids');
foreach($properties as $property){
$update_property_url = 'https://api.hubapi.com/crm/v3/properties/contacts/'.$property.'?hapikey=' . HS_API_KEY;
$ch = curl_init();
$update_property_json = array(
"name" => $property,
"groupName" => "app_data",
"description" => "",
"fieldType" => "checkbox",
"formField" => false,
"type" => "enumeration",
"displayOrder" => '',
"label" => $property,
'options' => array(
)
);
foreach($guids as $guid) {
array_push($update_property_json['options'], $guid);
}
$update_property_json = json_encode($update_property_json);
/* echo '<pre>';
print_r( $update_property_json );
echo '</pre>'; */
curl_setopt_array($ch, array(
CURLOPT_URL => $update_property_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => $update_property_json,
CURLOPT_HTTPHEADER => array('Content-Type: application/json', 'Content-Length: ' . strlen($update_property_json)),
));
$response = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
}
}
$ch = curl_init();
$url = $base_url.'/Analytics/Teams?FromDate='.$fromDate;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','X-API-KEY: '.$client_api_key));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
try{
$response = curl_exec($ch);
/* echo '<pre>';
print_r( json_decode($response, true));
echo '</pre>'; */
$teams = json_decode($response, true);
foreach((array) $teams as $team){
$guid = array();
$guid['label'] = $team['guid'];
$guid['value'] = $team['guid'];
array_push($allTeamGuids, $guid);
}
addTeamGUIDtoGUIDProperties($allTeamGuids);
} catch(Exception $e){
die('Error');
}