I'm using the API to keep external lists in sync with the CM ones, which is working great. I'm just looking for confirmation of one simple question:
When I delete a list in the CM interface and wipe all subscribers, the webhook for list modifications does not fire, is that correct? In other words, I'll not get an unsubscribe/delete event for all the subscribers in the list, right?
At least that's how it seems to work at the moment, which is just perfect, but since it's not explicitly documented anywhere I'd rather ask to double check so I don't accidently wipe an entire external list by random.
On a related not it would be neat to somehow be able to disable the firing of webhooks when you perform list maintenance through the API. For example, when adding a subscriber to our own system we send of an API call to CM, adding the subscriber as well. We then get a call back about the new addition, which we sort of knew ;o) If we were able to pass a "MuteWebhooks" parameter or something, we wouldn't have to run a lot of logic to handle this situation.
Yes, you are correct in concluding that when you delete a list we don't fire a deactivate event for every subscriber in the list.
You could solve the problem you are describing about addition via the API by checking the "SignupIPAddress" property of the event in the webhook payload. If the addition is made through the API, the value for "SignupIPAddress" will always be "API". Hope that helps.
Aaaah, yes, of course, "SignupIPAddress" will do the trick. Thanks for the pointer, James.
Continuing this thread: There is no SignupIPAddress field when deleting a subscriber. It would be really useful to be able to identify what ignited the unsubscribe too. Is there a way to do this now, or should it go on the wish list?
Yes, as the documentation shows, we don't include that data when the update or de-activate webhooks are triggered.
I've added your request to our feature request tracker.