I consider Finesse, at least in a CCX context, as a way forward from the old CTI API and direct DB access solutions we've done in the past.
Having played and implemented parts thereof, I find myself wondering if I haven't given it too much credit.
For starters, even though there's a whole configuration part of the API, there's parts of the API that definitely feel only designed for single user apps. For instance, the whole "who has rights to do what".. that bit is basically missing and you have to figure it out on your own. Having spent the better part of two days playing and implementing, I still couldn't give you a complete rundown of what is required to do which operation - to me it seems that should be part for the documentation.
Then.. there's a configuration API.. but you can't really use it to automatically configure users in CCX because essential functionality is missing. While you can make a user an Agent using AXL, you cannot add it to a team (there's no APIs for team management), and you can't change the user's configuration either (e.g. add it to a CSQ, or modify roles, work with skills, etc).
The queue part of the API also seems problematic.. just search for queue in this forum and look at the threads. A lot of people still do direct DB access to get some sort of statistics.. that seems something obvious to have in the API. And, it should be there.. it's just that it often doesn't work (e.g. configuring agents make it so that no queue info is returned with the user object anymore).
So, in the end, with essential configuration functionality missing you can't integrate into into a provisioning solution, with hit and miss queue features, you can't replace your trusted old direct db access / cti api code.. so, while at first glance I had high hopes, it seems at the moment it's mostly just a way to do little gadgets in the agent desktop.
What's your experience been with the Finesse API? What are you using it for, and what had you hoped to use it for?