It would be almost automagical if you could get the parameter 'InputName' field from the post_submission hook (as well as the fields value of course).
To see how freakin' easy this almost is... you create a form, in the advanced features you change the "Parameter Name" of each field to match your 3rd Pary's API naming convention. Now there's no name space collision at all -- as long as you can get the form_meta with the post_submission data.
There's one big hitch! You don't always follow the "Parameter Name" -- convention! In the special 'First Name, Last Name' -- set, you call them "Field Parameter Name", and their key in a subarray is now 'name' not 'InputName', that's the only major change I see.
By automagic I mean, you'd only have to fill in the 'Parameter Name' for each field you want mapped to the 3rd Party api -- spelled exactly correct for the 3rd Party API
Then I wouldn't have to write a custom mapping function for each form, I could just loop through the Parameter Names, and map them EXACTLY. Plus they're already sanitized!
I could solve routing problems with a hidden field with the Parameter Name that matches the 3P's form names.
Oh, it'd be so easy!! Can't you feel it?
And the main benefit: The automagic 3rd Party mapping could written as a function/plug-in, and the user only needs to activate it, then set the Parameter Names correctly in the wp-admin of gravity forms! That's it. That's automagic. No php for the end-user to change, modify or create new forms -- nothing after that.
[id] => 6 [label] => Product Inquiry Reasons... [inputName] => InquiryReason
If you got back from gforms_post_submission, the submitted value and the 'InputName', well then, you're almost done! No need for custom mapping of field '6' to you 3rd Pary's name space built by hand on a form-by-form basis using numerical IDs -- that's a dangerous mapping, using IDs is like using 'goto' statements in a situation like this where a user could delete a field, then put it back, but wait, it's a new ID now! Now you're whole hand-built mapping is busted.
Many of these 3rd Parties are paid services, if they have a point-n-click sync'ing with your plug-in, they'll recommend it instantly to customers. Customers have already paid for their service, what's another $50-$200.
Oh, and perhaps you'd let users assign default 'Parameter Names' to the built-in fields in a settings page. Then 'First Name' could always 'FirstName' if your API needed it.
I'm not asking you to change any deep structure, just give me access to the 'Parameter Name' in the post_submission, and we're DONE!! It's that easy.