Questions for Getting started on API integration for client

76 views
Skip to first unread message

Pam Minkey

unread,
Oct 6, 2023, 5:06:33 PM10/6/23
to Zengine Development
Good afternoon.  I am with Collaborative Solutions working on an API integration for the MET with their Workday for interns.  To get started can you provide more detail on the following.  
 1. Authentication (API Key, Client ID, access Token, etc)  - Does the customer, The MET, need to have an account set up?
2. API Schema information on the syntax needed to query for the interns.
3. Information on how the query should be filtered just to capture the ready for hire interns they need to load to Workday.

Thanks
Pam

Wes

unread,
Oct 9, 2023, 10:21:55 AM10/9/23
to Zengine Development
Hello.
1. This is covered in the API quick start: https://zenginehq.github.io/developers/rest-api/quick-start/

2. The API conventions are here: https://zenginehq.github.io/developers/rest-api/conventions/
You can take an access token and use the live REST API demo here: https://zenginehq.github.io/developers/rest-api/resources/

3. This will be specific to your own data and workflow. If you familiarize yourself with the API using the information above, you should be able to determine the queries you need to make to fetch the data.

I don't think the above documentation covers this, but you can also use web hooks to receive events when records are created and updated. You can use the web hook APIs found in the API demo docs to create the web hooks. 

Pam Minkey

unread,
Oct 10, 2023, 2:23:42 PM10/10/23
to Zengine Development
Hi 

The API documentation looks straight forward but I am struggling with Registering an application, creating a user and creating an API client.  Do I need existing account or something from the MET?  Can we have a quick meeting to get started?

Thanks
Pam

Wes

unread,
Oct 11, 2023, 10:36:10 AM10/11/23
to Zengine Development
Hello,
I don't know if you need to register an application to start. You should be able to signup as a user and then navigate to the developer area to obtain a temporary access token that you can make API requests with. From there you can experiment with the API. Your client can invite you into their workspace and you can see how the API works to fetch data based on their workspace configuration.

From there, if you are trying to develop an automation, you might need to register an application to obtain a permanent access token for your scripts. 

This group is the channel for developer resources. Your client should communicate with their contact at WizeHive about the implementation for their program.

Wes

Pam Minkey

unread,
Oct 11, 2023, 12:59:52 PM10/11/23
to Zengine Development
Hi Wes, 

I have tried to do this, but it didn't work.  When you say application do you mean Workday?  Can we have a quick meeting to figure out what the issue is?

Thanks
Pam

Pam Minkey

unread,
Oct 11, 2023, 1:40:33 PM10/11/23
to Zengine Development
Hi Wes,

Think there is some disconnect.  Creating a user seems to require an access token I do not have.  Is there something need to get from the client Met?  This is what I get when I try and create a user.

Request URL
https://api.zenginehq.com/v1/users.json?access_token=+access_token++

Response Body
{
  "error": "invalid_grant",
  "error_description": "The access token provided is invalid"
}

Response Code
401

Response Headers
cache-control: no-store, no-transform
content-length: 85
content-type: application/json

Thanks
Pam

Pam Minkey

unread,
Oct 11, 2023, 2:11:26 PM10/11/23
to Zengine Development
Hi Wes,

This post provided the missing piece.  

I have a temporary token.  What are the next steps.  I know very little about the data I need to get for the client Metropolitan Museum of art.  I am assuming the data is either recruitment or human resource data since it is interns.  How to I get the access needed for Workday to pull the correct information.

Thanks
Pam

Wes

unread,
Oct 11, 2023, 5:07:24 PM10/11/23
to Zengine Development
Hi,
Data will be stored in your client's workspace using forms and records. You can fetch the record data using the form records endpoint - /forms/{id}/records.

The form ids and structure of the data will be specific to your client's workspace. You will have to coordinate with your client to get invited to the workspace. Then you can interact with the data, either through our frontend app or using the API.

Pam Minkey

unread,
Oct 18, 2023, 12:53:28 PM10/18/23
to Zengine Development
Hi Wes, 

I wanted to follow-up with you again.  As you know I did create a personal account and was able to explore the API with the temporary access token.  However, at some point the client, Metropolitan Museum of Art, will need their Workday tenant to have an account (system user) to access their Zengine Workspace and pull data into their Workday tenant.  I actually don't need personal access at all.  I am just a temporary consultant.  How do we get that process started.  This should not be under my gmail userid at all.  

Thanks
Pam

Wes

unread,
Oct 18, 2023, 2:09:45 PM10/18/23
to Zengine Development
There are 2 options:
Create an integration user under an email address owned by the client. The integration user should be a member of the workspace. Then, a permanent access token should be requested for the integration user. From there, your scripts can use that access token to make requests for data in Zengine. If what you're trying to do is sync data from Zengine to another service, you can create a web hook that calls your script when records are updated in Zengine, then have your script fetch the records and push them to the other service.

Alternatively, you could create a Zengine plugin with a backend service. Then you could setup a web hook that calls that backend service instead of a script on your server. The backend service would get an access token automatically. The backend service would then make requests to the Zengine API and send the data to the external service.

Both of these approaches would be a similar workflow: 1. Record is updated in Zengine. 2. Web hook is fired. 3. Your code fetches data from Zengine API and pushes it to external service.

 The difference is that approach one would run on your server and require a permanent access token, while approach two will run on our servers and will automatically get an access token. Approach one gives you full control over your code and the language you use. Approach two will require learning how our plugin system works and writing your code in javascript and node js using our frameworks.

Pam Minkey

unread,
Oct 24, 2023, 1:25:34 PM10/24/23
to Zengine Development
Hi Wes,

I did find out from the client that they want to load applicants 3 times a year.  There would be no need or desire to have a real time sync of the data.  With that being said, what approach would you recommend?  Would option 1 without the webhook be the way to go?

Thanks
Pam

Wes

unread,
Oct 25, 2023, 4:27:42 PM10/25/23
to Zengine Development
If you want more control over how and when the sync process is run, then option 1 sounds like a good bet.

Wes

Pam Minkey

unread,
Nov 16, 2023, 5:21:55 PM11/16/23
to Zengine Development
Hi Wes,

I am Workday Consultant working for the MET.  I am trying to pull applicant data from Zengine and load it to Workday.  I have the user id, password and access token.  I do not have personal UI access, so I don't see what the client sees.  What do I need to get from my client to pull applicant records successfully. For example, Workspace Id, Form Id, something else?  And where would they find this information on their end so I can advise them.

This call for example is not getting any data:

https://api.zenginehq.com/v1/forms.json?access_token={metAccessToken} is getting this response:   {"status":200,"code":2000,"totalCount":0}

Thanks
Pam

Wes

unread,
Nov 17, 2023, 11:40:53 AM11/17/23
to Zengine Development
If the forms endpoint is returning totalCount 0 with no data, then I would guess there are no forms setup in the workspace(s).

If you have the password then you should be able to login to the app and verify. Or see if you can be invited into the workspace.

Reply all
Reply to author
Forward
0 new messages