I am connecting to intercom’s 2.0 API. I am running into an issue with pagination only returning one page of data. If I don’t use a the courser key “starting_after” than I will get duplicate results on each page, instead of getting unique results on each page. The way I am using the “start_after” key, I am only getting 1 page of results, even if I request to fetch more pages.
This is the request…
I wish I could view the request being sent when it doesn’t fail, but when I intentionally make it fail so I can get the request, this is what is shown (I don’t see any pagination parameters, but maybe that’s because it’s failing)
That makes sense…At this point, any Cursor Key that I use returns 1 page of results. This the very first (It’s an API Import) part of a series of chain of events. Something else that I notice is if I put page limit to 150, I am still getting 50 results…https://api.intercom.io/contacts/search?per_page=150
Feel free to replace the Max Pages to Fetch with whatever number you want. When you’re ready to view the whole data set, you can also add in a Top Level Key:
However, I’m having trouble getting it to work with the POST to /contacts/search. As best I can tell, Intercom seems to want the pagination data to come through in the body. However, we don’t support that today. Just in case you’re curious, that would look like this (but again we don’t support this today):
Confirming what Alex found, which is that you need to send the pagination settings in the body of the request (which is odd). Right now, that is not possible in Parabola.
As suggested, you will need to pull in all contacts, not using the search endpoint, and then filter them down using a Row Filter in Parabola to mimic the behavior of the search endpoint.
We have over 700k contacts, so naturally I was trying to slice and dice per certain data criteria… with these limits we would burn through unnecessary credits when I only need to run 5k to 50k through a workflow, and it would take over an hour to process each request, which isn’t terrible, it’s more the economics I am dancing around.
Putting the per page in the body worked! So now I am getting 150 results, but I can’t seem to get the cursor working, I tried “starting_after”:"{pages.next.starting_after}", but it seems to be sending that verbetem instead of filling it with the variable. Like brian just interated, this is likely what isn’t possible at the moment:(
I’m trying to work out a solution with Intercom API v2.3 (retrieve all contacts, hence many pages) via cursor pagination (Intercom doc).
When checking this thread I observe that earlier messages show screenshots from a previous interface of Parabola.
Also, in Parabola’s help center the explanation about cursor pagination is with the previous interface.
How does the new one function - and how to adapt it to Intercom v2.3?
Using the Cursor pagination style is the correct method. Start by setting your Cursor key to starting_after. Then set Cursor path in response to pages.next.starting_after.