I've been using a Post-Call address lookup to add the caller's info to my application... and it's staggeringly hard to capture as I'd like to.
THE PROBLEM:
I assumed in constructing my application that the POST-Call action happened after the call. (at which point, my PHP/MySQL application will receive the Post-Call data send with the address lookup info, match the incoming IfByPhone call session ID of the Post-Call action to the session ID of the Survo NetGets, insert the new address/name data into the record, and all the data will be unified.
BUT, in the real world, The POST-Call action doesn't happen POST-Call. It seems to arrive milliseconds before the second SurVo's hook. is this correct? I'm having mysterious difficulties capturing this Post-Call data: It arrives, and I save it in a dedicated database with no problem, but merging it with the data from the other NetGet fails, possibly due to MySQL database record locking... since the records arrive on top of eachother, and MySQL is the slowest part of the system, taking a lifetime as compared with PHP, etc.
Ideas? Should I perhaps note the session ID earlier in the call (I do have earlier SurVos) so that it will be sure to exist in my database whenever the Post-Call action arrives?
Or re-work things so that the Post-Call is expected before the Final Call-End Survo?
Or, go with the easiest thing, and just have my application go to sleep for 5 seconds before processing the post-Call action... at which point the NetGet will have arrived? I don't like telling my apps to drag their feet.
The Post Call Action does indeed fire after the call, but it's not guaranteed to fire before your NetGet. Starting the row with the session Id of the earlier NetGet is a good idea. Regardless, you will have to modify your script to accommodate both scenarios (NetGet first or Post Action first).