Answered

How to disambiguate canvas webhooks if users reuse one intercom workspace for multiple accounts?

  • 15 September 2021
  • 1 reply
  • 10 views

I'm working on an application that integrates with Intercom, and some of my users would like to connect a single Intercom workspace to multiple organizations within my app for organization purposes. This is no problem on my end for the most part, however when it comes to handling webhook responses, it starts to become ambiguous. Previously I was using the `workspace_id` that in on all canvas webhooks, but now I have multiple entities that have that workspace ID, so I can't solely use that.

 

I've considered adding metadata to the contacts themselves, but not all webhooks have a contact associated with them. The last thing I can think of is that they have different OAuth tokens, but webhook responses don't include that so I would have no way of matching it. And as far as I can tell, there's no way I can add some custom metadata to be included in a response per installation of my app.

 

If anyone else has run into this or has any ideas, I'd love to hear!

icon

Best answer by User189 15 November 2021, 16:21

View original

1 reply

Hey Will,

I'm sorry I don't have an answer. I just want to say we're exactly in the same situation, and use the `workspace_id` from the webhook payload to identify which "account" (what you probably call "organization") matches on our side.

 

We initially thought we would support multiple "accounts" connected to the same Intercom workspace. But in the end we decided it would be a bad idea as, in our case, we really need a 1:1 relation between an Intercom workspace and an "account": we don't want different "accounts" to edit / interact with the same Intercom data, because this would lead to weird things (imagine 2 different Accounts connected to the same Intercom workspace: without having knowledge of each other, they would both be able to edit "each other's" records—the records actually being the same).

 

Still, following this thread to see if there are any other way to do this.

 

Reply