2017-11-21 22 views
1

APIを使用して「progressionStatus」フィールド(メンバーシップ内)を変更したMarketo Leadsを取得する必要があります。 プログラムに関連するすべてのリード(ProgramID APIでリードを獲得したもの)を問題なく入手できますが、私の必要性は「progressionStatus」列の変更を含むリードを取得することです。 私は、プログラムのCreatedAt/UpdatedAtフィールドを使用することを考えていたので、それらのプログラムに関連するすべてのリードを取得しました。しかし、私は正確な結果を得られませんでした。 また、GET Lead changes APIを使用して、 "progressionstatus"に "fields"パラメータを使用しようとしましたが、そのフィールドは存在しません。Marketo Leads - progressionStatusフィールドの更新値を見つける方法

これを解決することは可能ですか? ありがとうございます。

+0

どのAPIを使用していますか? RESTまたはSOAP?また、どのようなプログラミング言語ですか? – dferenc

+0

こんにちは、SSISのTaskFactoryコンポーネントを使用して、プログラムREST APIによるリードを取得しています。ありがとう。 –

答えて

0

エンドポイントGet Lead Activitiesを照会することで、進行状況の変化のあるリードのリストを取得できます。

エンドポイントは良い候補として聞こえるかもしれませんが、エンドポイントはリードフィールドの変更のみを返します。進行状況の変更はリードに直接格納されないため、最後には機能しません。一方、Get Leads by ProgramIdエンドポイントは、progressionStatus(親プログラム内のリードのプログラムステータス)の実際の値は "変更"ではないので、それに基づいて結果セットを処理することはできません。

良いニュースは、進行状況の変化がアクティビティタイプで、幸いにも、我々は上記のちょうどそれを照会する利用可能(また、APIドキュメントでQueryとして言及される)リード活動エンドポイントをゲット言及しているということです。このエンドポイントでは、activityTypeIdsによるフィルタリングにより、結果セットをアクティビティタイプの1つに絞り込むこともできます。

基本的にはGET /rest/v1/activities.json enpointを呼び出し、クエリパラメータ(アクセストークンの隣に明示的に)としてactivityTypeIdsnextPageTokenの値を渡す必要があります。したがって、まず、アクティビティタイプの内部IDを「進行状況の変更」と呼びます。 GET /rest/v1/activities/types.jsonエンドポイントを照会し、という名前のレコードがであることを確認することで、これを行うことができます。 (私はこのIdがインスタンスからインスタンスに変わるかどうかわかりませんが、私たちは#104です)。また、nextPageTokenを取得するには、GET /rest/v1/activities/pagingtoken.jsonにも電話をかけなければなりません。アクティビティを取得する最も早い日時を指定する必要があります。 についてもっと詳しくを参照してください。

お手元にこれらのビットの全てを取得したら、あなたがそのようなあなたの要求を行うことができます。それが与える

GET https://<INSTANCE_ID>.mktorest.com/rest/v1/activities.json?activityTypeIds=<TYPE_ID>&nextPageToken=<NEXTPAGE_TOKEN>&access_token=<ACCESS_TOKEN> 

結果は、さらに加工が容易である、以下のような項目を持つ配列です。

{ 
    "id":712630, 
    "marketoGUID":"712630", 
    "leadId":824864, 
    "activityDate":"2017-12-01T08:51:13Z", 
    "activityTypeId":104, 
    "primaryAttributeValueId":1104, 
    "primaryAttributeValue":"PROGRAM_NAME", 
    "attributes":[ 
     {"name":"Acquired By","value":true}, 
     {"name":"New Status ID","value":33}, 
     {"name":"Old Status ID","value":32}, 
     {"name":"Reason","value":"Filled out form"}, 
     {"name":"Success","value":false}, 
     {"name":"New Status","value":"Filled-out Form"}, 
     {"name":"Old Status","value":"Not in Program"} 
    ] 
} 

問題のleadIdのを知って、あなたは、実際のリードレコードをフェッチするためにさらに別の要求を行うことができます。

+0

ありがとう@dferenc!そのようにして、Progression Status列に変更を加えたすべてのリードのリストを作成します。その後、私はそのリードに関連するプログラムを見つけて、Progression Statusの列を取得するためにProgram APIでGet Leadsを呼び出します。 Progression Status列を取得する簡単な方法がありますか? –

+0

サンプルレスポンスからわかるように、「古い」ステータスと「新しい」ステータス(たとえば、回答の32と33)の両方に内部IDがあります。したがって、IDが何である場合には、追加のクエリを行う必要はありません。ただし、このレスポンスには詳細情報がないため、その情報を照会する必要があります。私は上記のPHPでテストしている。あなたが必要な場合は、それを私の答えに加えることができます。 – dferenc

+0

どうもありがとう! –

関連する問題