We use https://www.intercom.com/ for customer support in our AngularJS (1x) app.
Following the integration docs at:
we call
Intercom('boot', {$objectWithAppIdEtc})
after the user has logged in, then after every page change ($stateChangeSuccess - uiRouter) we call
Intercom('update')
We see in the network tab that we ping intercom on page change but that this only happens the first 10 times. After consulting the docs this makes me think that the call to Intercom('update') isn't simulating a page refresh like it's supposed to - hence why we are being throttled.
Also when we view the logged in user in Intercom we see that their last viewed page is the page they were on when Intercom('boot') was called, not the last page they were on when we called Intercom('update'). It would seem a possible solution would be to call the boot method on page change but the docs specifically say:
But if a user has just caused a “page" change, you would call: window.Intercom('update');
Weirdly messages triggered for specific pages pop up like they should but only the first 10 times - after 10 page changes our requests are throttled and no more page specific messages are shown.
It looks like we are doing everything correctly as per the docs however the update call is clearly being throttled and not simulating a refresh.
If anyone has any insight it would be greatly appreciated.
Cheers, Stephen
the answer to your questions lies in Intercom documentation https://developers.intercom.com/docs/intercom-javascript#section-intercomupdate
The part which answers your question:
Update Throttling
You can call Intercom('update') without getting throttled up to 10 times per page refresh. After the 10th call, you'll be throttled and you'll be allowed to call Intercom('update') a maximum of once every 30 minutes. Reloading the page will refresh this state.