Deactivation Option for Webhooks in Calc Fields (by App or by Field)

The fact that calculation fields in Tape produce webhooks is super awesome, because not only can you build automations based on the changing of a calculation field, but this also produces developer webhooks when integrating with external systems.

In the normal course of operations, this is great, but when doing imports or large data updates, or adding new calc fields to existing large data sets, the idea that hundreds if not thousands of webhooks could hit custom servers suddenly is less than ideal.

Would it be possible to either have a field level option for calc fields that allowed the admin to activate or deactivate webhooks, or to have the same option in the app that would apply to all calc fields in that app?

Thanks!

There’s another aspect of this that’s super important, I haven’t been able to complete a full test yet, but this is what I suspect to be the case. If anyone out there is using developer webhooks and has more information to add, that would be great but in the meantime, I will try to test this out fully over the weekend.

As per my comment above, calculation fields produce webhooks. The other day, I was playing around with a dashboard app based on one of my apps that have webhooks instead. I created a report widget for this app, played around with it for a bit, and then deleted it. Later on, I realized that I had hit the API rate limit for this app. Items in this app were being updated when I had not done anything to them at all. After more investigation, when I tried to inspect the revision history, I saw the following message:

{
	"status_code": 404,
	"endpoint": "/v1/record/107923835/revision/previous/4",
	"error_code": "not_found",
	"error_message": "getFieldsByIdsOrFail: Fields with IDs 481779 not found!"
}

I haven’t been able to confirm yet, but what I believe is the case is that the Dashboarding tool is actually creating calculation fields within that app for its own purposes. And as we have determined, calculation fields produce webhooks.

(EDIT: I’m most likely wrong here, this was my initial gut reaction, please ignore my comments regarding calcs)

There really should be some way to shut this off, otherwise, anyone wishing to build an integration on top of Tape with apps that are using Dashboards are going to be constantly overwhelmed with hooks.

Again, if anyone can add more right now, that would be awesome, otherwise I just need to do some testing at a time when the system is relatively quiet.

@Tim

Andrew, I can’t add much other than I agree that the calculation fields trigger a record updated hook, which means if you add a calc field to a large app, it will all go wrong. However, I can’t get it to trigger via a Dashboard maybe I’m setting it up differently.

1 Like

I’m just trying to figure out why a bunch of records produced webhooks suddenly the other night, still trying to ensure I understand the behaviours of the system. I thought it might have been the result of creating a Dashboard app and then deleting it, but I’m most likely wrong on that. It’s just funny the revision history states a field was deleted and I didn’t think I made any changes but I might be crazy. I’ll keep searching, every day is a new adventure when you’re testing new cool stuff. :slight_smile:

2 Likes

I just wanted to give this a bump, and offer up some additional feedback based on my recent experience with the API.

First, receiving webhooks on calc field changes is indeed awesome overall. It’s been so handy. But even when the record refresh is done which might cut down on general usage of calc fields I think there will always be a call for things like html summary fields that are always being tweaked. If you update one of these fields in an app with thousands of records, every single record produces (at least one) webhooks and it’s frankly overwhelming for anyone who would be trying to build external integrations on Tape. Being forced to capture thousands of webhooks I don’t need and didn’t ask for makes things so difficult.

Could the UI possibly have an option to not produce webhooks for each individual field? It’s a win win for Tape because it would take a lot of stress out of the webhook server.

@Tim @Leo

3 Likes

Maybe it would be possible to include a list of external ids that belonged to the revision that produced the webhook?

1 Like

Hi @andrew.cranston,

Thanks so much once again for your incredibly valuable feedback. We truly appreciate the time and care you put into sharing your experience!

I fully understand your point. In the past, we saw it as a strength that Tape could respond to calc field changes, unlike Podio. This was useful for things like automations and triggers, but as you pointed out, it can also cause problems.

We’ve already addressed this in some areas, like imports (where it has to be explicitly enabled) and automation triggers. But yes, webhooks from calc field changes are still a blind spot. Based on your feedback, we’ve re-evaluated this and plan to fix it as part of the new record, specifically when introducing the calc field and the new field settings. Since we’re no longer investing in the old field settings, this change will come with the rollout of the new ones. As you know, we’re working through field types one by one, and this setting will be included. It’s a small but impactful improvement that we can deliver in a reasonable timeframe.

One quick follow-up: could you clarify your comment about the list of external IDs? Is that a separate feature request, or would it be resolved with the webhook disabling option for a calc field?

Thanks again, and best regards,
Leo