2017-08-27 18 views
1

htmlフォームと添付スクリプト(PHP + Rest API)を使用して、新しいMarketoリードを作成できます。それは主に動作し、リードはMarketoに現れます。Marketo REST API - スマートキャンペーン

私のMarketoの設定では、特定の「スマートキャンペーン」に新しいリードを追加する必要があります。

MarketoのRest API documentationでは、リストにリードを追加するためのエンドポイントが見つかりましたが、キャンペーンに追加するためのエンドポイントは見つかりませんでした。あなたはこの問題に遭遇しましたか?

class UpsertLeads{ 
    //these are the CIN Marketo credentials 
    public $host = "####";//CHANGE ME 
    public $clientId = "####";//CHANGE ME 
    public $clientSecret = "####";//CHANGE ME 
    public $input; //an array of lead records as objects 
    public $lookupField; //field used for deduplication 
    public $action; //operation type, createOnly, updateOnly, createOrUpdate, createDuplicate 

    public function postData(){ 
     $url = $this->host . "/rest/v1/leads.json?access_token=" . $this->getToken(); 
     $ch = curl_init($url); 
     $requestBody = $this->bodyBuilder(); 
     //commenting out 
     //dont need to output this stuff in production 
     //print_r($requestBody); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, array('accept: application/json','Content-Type: application/json')); 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody); 
     curl_getinfo($ch); 
     $response = curl_exec($ch); 
     return $response; 
    } 

    private function getToken(){ 
     $ch = curl_init($this->host . "/identity/oauth/token?grant_type=client_credentials&client_id=" . $this->clientId . "&client_secret=" . $this->clientSecret); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, array('accept: application/json',)); 
     $response = json_decode(curl_exec($ch)); 
     curl_close($ch); 
     $token = $response->access_token; 
     return $token; 
    } 

    private function bodyBuilder(){ 
     $body = new stdClass(); 
     if (isset($this->action)){ 
      $body->action = $this->action; 
     } 
     if (isset($this->lookupField)){ 
      $body->lookupField = $this->lookupField; 
     } 
     $body->input = $this->input; 
     $json = json_encode($body); 
     return $json; 
    } 

    private static function csvString($fields){ 
     $csvString = ""; 
     $i = 0; 
     foreach($fields as $field){ 
      if ($i > 0){ 
       $csvString = $csvString . "," . $field; 
      }elseif ($i === 0){ 
       $csvString = $field; 
      } 
     } 
     return $csvString; 
    } 
} 

答えて

0

APIを介してスマートキャンペーンに直接あなたの新しいリードを置くことはできません。
しかし、あなたが指摘したように、リストにプッシュすることができますが、それは成功の途中です。そこから、スマートキャンペーンを設定して、リストからリードを受け取るように設定するだけです。

あなたはAdded to Listトリガーを設定することによりスマートキャンペーンスマートリストタブにそれを行うと、あなたのリストにそれを指すことができます。スクリーンショットが添付されています。

この方法では、新しいリードはすぐにスマートリストに追加されます。

'Added to List' trigger of Smart Campaign

関連する問題