Hi,
I am hoping to use the CRM API to push data into ZOHO CRM from our enterprise application. This may need to happen at any time of day and there could be a long interval between calls to the API. Also, there will not be a user triggering the request so we are not able to rely on the usual OAuth login process.
I have been looking at the options available for generating access tokens to access the API and it seems that Self Client is the only option that might work for us (as all the other application types expect a ZOHO user to login to retrieve an authorization code).
Using Self Client, we could generate a code with the correct scopes that would be valid for 10 minutes, and then supply this to our application so that it can retrieve access tokens and refresh tokens for the foreseeable future.
This is not ideal for a few reasons:
- The user that generated the code would need to continue to be a licensed user of ZOHO and having the code tied to a particular user is not ideal;
- The users email address would need to be stored in our application for initializing the API;
- If anything went wrong with our token store we would need to go through this manual process to generate a new code with the correct scopes.
- The Self Client application functionality appears to be only for testing the api and I am concerned it may change or not exist in the future.
I understand that this may not be the intended use for the Self Client application but am unable to find another way for our application to authenticate to the API without a user logging in.
Is there a better way to perform what we are trying to do?
I have looked at Functions and Connections, but they do not seem to cater for what we are trying to achieve as connections appear to be for outgoing connections and functions have too many limitations for our use case. It seems that the API and SDK should really cater for our scenario so I feel I might be missing something?
Any advice on how to perform what we are trying to achieve would be greatly appreciated!
Thank you,
Steve