You need to sign in to do that
Don't have an account?
Ashutosh Tripathi 66
bulk import of prospects from pardot
I am fetching prospects from pardot into salesforce. When I make a API call to pardot it fetches 200 records from pardot and get stored into SF custom object as expected. But when I make a second call it should call another 200 prospects from pardot and do the incremental store in SF custom object. Which is not happening, everytime when I make a call it returns the same 200 records even I am using "output=bulk".
Endpoint: 'https://pi.pardot.com/api/prospect/version/3/do/query?user_key='+userKey+'&'+'api_key='+apiKey+'&'+'output=bulk&format=json&created_after='+CreatedAfter+'&'+'created_before='+CreatedBefore+'&'+'sort_by=created_at&sort_order=ascending'
Here's my rest class:
HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
req.setEndpoint( 'https://pi.pardot.com/api/prospect/version/3/do/query?user_key='+userKey+'&'+'api_key='+apiKey+'&'+'output=bulk&format=json&created_after='+CreatedAfter+'&'+'created_before='+CreatedBefore+'&'+'sort_by=created_at&sort_order=ascending');
req.setMethod( 'GET' );
req.setBody( 'user_key='+userKey+'&'+'api_key='+apiKey);
req.setHeader('Accept', 'application/json ');
req.setHeader('Content-Type','application/json');
res = new Http().send( req );
System.debug('***Response****'+res.getBody());
wrapper = (PardotProspectWrapper)JSON.deserialize(res.getBody(), PardotProspectWrapper.class);
system.debug('******Wrapper*****'+wrapper);
//this I tried to add to store the data in Pardot_Prospect__c
ppobjlst = new List<Pardot_Prospect__c>();
prospectIdlist = new List<String>();
Pardot_Prospect__c ppobj = new Pardot_Prospect__c();
for (PardotProspectWrapper.prospect p : wrapper.result.prospect) {
ppobj = new Pardot_Prospect__c();
ppobj.Prospect_Id__c = string.valueOf(p.id);
ppobj.First_name__c = p.first_name;
ppobj.Last_Name__c = p.last_name;
ppobj.Website__c = p.website;
ppobj.Campaign_Name__c = p.campaign.name;
prospectIdlist.add(string.valueOf(p.id));
ppobjlst.add(ppobj);
}
List<Pardot_Prospect__c> dupProspectList = [Select Id, Prospect_Id__c from Pardot_Prospect__c where Prospect_Id__c in: prospectIdlist ];
if(!dupProspectList.isEmpty()){
System.debug('********dupProspectList*******'+dupProspectList);
ppobj.Id = dupProspectList[0].Id;
update dupProspectList;
}
else{
System.debug('********ppobjlst*******'+ppobjlst);
insert ppobjlst;
}
******END************
Can someone please let me know why I am getting same set of records in each call ? How would I get all the prospects from pardot using API ?
Endpoint: 'https://pi.pardot.com/api/prospect/version/3/do/query?user_key='+userKey+'&'+'api_key='+apiKey+'&'+'output=bulk&format=json&created_after='+CreatedAfter+'&'+'created_before='+CreatedBefore+'&'+'sort_by=created_at&sort_order=ascending'
Here's my rest class:
HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
req.setEndpoint( 'https://pi.pardot.com/api/prospect/version/3/do/query?user_key='+userKey+'&'+'api_key='+apiKey+'&'+'output=bulk&format=json&created_after='+CreatedAfter+'&'+'created_before='+CreatedBefore+'&'+'sort_by=created_at&sort_order=ascending');
req.setMethod( 'GET' );
req.setBody( 'user_key='+userKey+'&'+'api_key='+apiKey);
req.setHeader('Accept', 'application/json ');
req.setHeader('Content-Type','application/json');
res = new Http().send( req );
System.debug('***Response****'+res.getBody());
wrapper = (PardotProspectWrapper)JSON.deserialize(res.getBody(), PardotProspectWrapper.class);
system.debug('******Wrapper*****'+wrapper);
//this I tried to add to store the data in Pardot_Prospect__c
ppobjlst = new List<Pardot_Prospect__c>();
prospectIdlist = new List<String>();
Pardot_Prospect__c ppobj = new Pardot_Prospect__c();
for (PardotProspectWrapper.prospect p : wrapper.result.prospect) {
ppobj = new Pardot_Prospect__c();
ppobj.Prospect_Id__c = string.valueOf(p.id);
ppobj.First_name__c = p.first_name;
ppobj.Last_Name__c = p.last_name;
ppobj.Website__c = p.website;
ppobj.Campaign_Name__c = p.campaign.name;
prospectIdlist.add(string.valueOf(p.id));
ppobjlst.add(ppobj);
}
List<Pardot_Prospect__c> dupProspectList = [Select Id, Prospect_Id__c from Pardot_Prospect__c where Prospect_Id__c in: prospectIdlist ];
if(!dupProspectList.isEmpty()){
System.debug('********dupProspectList*******'+dupProspectList);
ppobj.Id = dupProspectList[0].Id;
update dupProspectList;
}
else{
System.debug('********ppobjlst*******'+ppobjlst);
insert ppobjlst;
}
******END************
Can someone please let me know why I am getting same set of records in each call ? How would I get all the prospects from pardot using API ?