Like many people, I develop locally on my desktop/laptop, then deploy to a staging server for testing, then deploy to the production server. My issue is to do with the IDs assigned to Gravity Forms, and the corresponding hooks using those IDs.
Obviously on the first roll-out there is no issue. However, when new forms are subsequently added, since we only very rarely synch the data between environments, things can go awry. If the client has created miscellaneous forms on the staging or production servers, if I develop a new form locally, then export it to import into these environments, it may have a different ID from the local installation, and suddenly none of the hooked custom code works.
I enquired about being able to import a form INTO an existing form, overwriting its field definitions. This would have helped me maintain IDs in my current situation - the form is new so losing entry data wasn't an issue. I was told this feature isn't present because of the issue of losing entry data, which has proved hard to address. This makes no sense because you can delete a form and lose data - and a simple confirmation is obviously sufficient to address this.
Still, while an "overwrite form" function would be both simple to implement and useful in some circumstances, there would be other circumstances where this wouldn't help.
The best workaround I can think of is to use the title as a kind of ID, although obviously you just need a client to decide a form needs a slightly different title and the form hooks break.
Is there any other way you could maintain consistent IDs across different environments?