<aside> ⚠️ Note: This documentation is for the first version of our API which is now deprecated. You should probably be looking at the docs for our new API instead, which you can find here.

</aside>

The CreatePipeline function is used to attach a new pipeline to a contact or company in your CRM.

When calling this this function, the Function parameter sent to the API should be set to CreatePipeline.

If successful, this function will return an array with a PipelineItemId.

Parameters

ContactId - The Id of the contact or company you want to attach this pipeline to. Note: ContactId should be treated like a string, NOT an integer or any other number type.

Note (optional) - A note to include with the first update.

PipelineId - The Id of the pipeline type you want to create. Here are instructions for finding the correct PipelineId. Note: PipelineId should be treated like a string, NOT an integer or any other number type.

StatusId - The Id of the status for this pipeline. Here are instructions for finding the correct StatusIdNote: StatusId should be treated like a string, NOT an integer or any other number type.

Priority (optional) - Priority can be 1 (low), 2 (medium), or 3 (high)

CustomFields - You can save information to any custom pipeline fields you've created.

Example Code

This code shows how to attach a new pipeline to a contact or company.

<?php
/************************************************************************************
    This file demonstrates how to use the Less Annoying CRM API to add a pipeline
    to a contact or company in your CRM.
     
    NOTE: To use this function, you'll need to know the Ids for the pipeline and
    status you're using. You can find a list of these Ids at 
    www.lessannoyingcrm.com/app/Settings/Api
     
    If you have any questions, feel free to email [email protected] for help
**************************************************************************************/
 
//Get your user UserCode and API token from <https://www.lessannoyingcrm.com/app/Settings/Api>
$UserCode = "ABCDE";
$APIToken = "111111111111111111111111111111111111111111111111";
$EndpointURL = "<https://api.lessannoyingcrm.com>";
 
//First we're going to create a contact
$Function = "CreateContact";
$Parameters = array(
    "FullName"=>"Tyler King",
);
 
$Result = CallAPI($EndpointURL, $UserCode, $APIToken, $Function, $Parameters);
 
//Get the new ContactId
$ContactId = $Result['ContactId'];
 
//Now we'll create a new instance of a pipeline
$Function = "CreatePipeline";
$Parameters = array(
    "ContactId"=>$ContactId,
    "Note"=>"This is a test note",
    "PipelineId"=>"111111", //You'll need to look up the correct PipelineId
    "StatusId"=>"2222222", //You'll need to look up the correct StatusId
    "Priority"=>1
);
 
//Here's how you can save data to custom pipeline fields. You can find the FieldIds,
//at www.lessannoyingcrm.com/app/Settings/Api (the bottom of the page)
$CustomFields = array(
    "1111"=>"This is a test", //the key should be the FieldId,
    "2222"=>"2011-01-02",
    "3333"=>array("Option 1"=>"on", "Option 2"=>"on") //checkboxes should just be an array containing each checked value
);
 
//Uncomment the following line to save the custom fields
//$Parameters['CustomFields'] = $CustomFields;
 
//This call returns a "PipelineItemId" which is a specific instance of the pipeline
$Result = CallAPI($EndpointURL, $UserCode, $APIToken, $Function, $Parameters);
$PipelineItemId = @$Result['PipelineItemId'];
 
function CallAPI($EndpointURL, $UserCode, $APIToken, $Function, $Parameters){
    $PostData = array(
      'UserCode' => $UserCode,
      'APIToken' => $APIToken,
      'Function' => $Function,
      'Parameters' => json_encode($Parameters),
    );
    $Options = array(
        'http' =>
            array(
                'method'  => 'POST', //We are using the POST HTTP method.
                'header'  => 'Content-type: application/x-www-form-urlencoded',
                'content' => http_build_query($PostData) // URL-encoded query string.
            )
    );
    $StreamContext  = stream_context_create($Options);
    $APIResult = file_get_contents("$EndpointURL?UserCode=$UserCode", false, $StreamContext);
    $APIResult = json_decode($APIResult, true);
    if(@$APIResult['Success'] === true){
        echo "Success!";
    }
    else{
        echo "API call failed. Error:".@$APIResult['Error'];
        exit;
    }
    return $APIResult;
}