I'm working with a client to develop a PHP based application that has its own login system and content but throughout the application there will be interactive forms which will collect data that we'd love to have save back to salesforce contacts and custom objects through the api.
My question is that is it ok to do that with the rules of the API all through one system admin user or do the systems users all need have their own salesforce user accounts?
Attribution to: Keith Mancuso
Possible Suggestion/Solution #1
You should also watch out for record ownership skew. I recommend taking a look at the following post to give you some ideas on how to prevent performance hits.
Attribution to: jonathanrico
Possible Suggestion/Solution #2
I think this largely depends on how you frame the situation. If it's simply an integration between two systems then it's common practice to have an integration user in Salesforce to represent the remote system.
However, if the PHP application is more of a front end for Salesforce used by multiple users, who individually 'own' data records, then you should be using a licence per user, as all you're really doing is creating your own user authentication layer above the platform which is not allowed according to the T&Cs.
Update If the users own contacts as you say, then I'm afraid you're falling on the side of needed licences for each user. If they contacts are shared and visible to all, without being tied to particular users then you could just use the one licence, but it sounds like you'd still be toeing the line in this scenario.
Attribution to: Matt Lacey
Possible Suggestion/Solution #3
The main consideration is if your architecture is (or can reasonably be perceived to be) designed primarily to circumvent salesforce licensing. One question to ask is whether you are re-creating any of the core functionality of salesforce in your app. For example, using a single integration user means you lose visibility on the back-end into who added or changed a record. If you create fields in your custom objects to keep track of these things and integrate it into your PHP app's user management system, it could reasonably be concluded that you are doing this to get around licensing each user, even though you desire some of the functionality that licensing them would give you.
Attribution to: Rob Cheng
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/418