As well as supporting direct integration with many other web systems, Sheep has a rich API protocol which can be used to manage your flock. This article demonstrates a potential method of linking a webform to Sheep to automatically create records.

In PHP:

<?php
//take a form with a handful of questions, some of which are relevant to Sheep

//set up some values
$flockname = 'your-flock-name'; //set this to the name of your flock
$bearer = 'mYt0pS3cR3tAP1k3yZZ11!1'; //set this to your Sheep API key


//capture form data and convert it to php variable
$obj = json_decode($_REQUEST['rawRequest'], true);

// for debugging to a file, uncomment this.
//file_put_contents("/tmp/newbie.txt", $_REQUEST['rawRequest'] );

$name = $obj['q1_name']; // name field is a compound field in the form
$first = $name['first']; // with two parts "first" and "last"
$last = $name['last'];
$handle = $obj['q2_nickname']; // get nickname
$email = $obj['q3_emailAddress']; //get email
$mobile = $obj['q5_phoneNumber']; //get phone number
$status = $obj['q8_signupType']; // get status
$date = date("F jS, Y"); // get date

updateSheep($flockname,
            $bearer,
            $first,
            $last,
            $handle,
            $email,
            $mobile,
            $status,
            $date);

function updateSheep($flockname,
                     $bearer,
                     $first,
                     $last,
                     $handle,
                     $email,
                     $mobile,
                     $status,
                     $date){
  $curl = curl_init();

  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.sheepcrm.com/api/v1/".$flockname."/person/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => '{"first_name":"'.$first.'", '.
                           '"last_name":"'.$last.'", '.
                           '"email": "'.$email.'", '.
                           '"known_as":"'.$handle.'", '.
                           '"telephone": "'.$mobile.'", '.
                           '"tags" : "newbie, '.$status.'", '.
                           '"source" : "Signed up as '.$status.' on '.$date.'."}',
    CURLOPT_HTTPHEADER => array(
      "authorization: Bearer ".$bearer,
      "cache-control: no-cache"
      ),
  ));

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
    error_log("cURL Error #:" . $err, 0);
  } else {
    echo $response;
  }
}
?>

More examples in other languages will be added to this article. Please let us know if you have specific requirements.

Did this answer your question?