Skip to main content
Community site session details

Community site session details

Session Id : 26/ji+zdg+nafGYht7Lbtn
Power Automate - Using Connectors
Unanswered

Custom Connector API JSON Default Response Challenge

Like (0) ShareShare
ReportReport
Posted on 22 Jan 2021 16:03:22 by 11

I'm using the TSheets API in a custom connector, and I'd like the fields to be available in the Flows as Dynamic content, so I'm trying to provide a default response. The way they structure their results are unlike other APIs I've used - each child element is not really in an array, it has its own element, named after its id...

 

From their API documentation, here's an example of the result when you call the GET Users endpoint:

 

 

{
 "results": {
 "users": {
 "933849": {
 "id": 933849,
 "first_name": "Mary",
 "last_name": "Samsonite",
 "group_id": 0,
 "active": true,
 "employee_number": 0,
 "salaried": false,
 "exempt": false,
 "username": "admin",
 "email": "admin@example.com",
 "email_verified": false,
 "payroll_id": "",
 "mobile_number": "2087231456",
 "hire_date": "0000-00-00",
 "term_date": "0000-00-00",
 "last_modified": "2018-03-28T17:24:20+00:00",
 "last_active": "",
 "created": "2018-03-27T16:13:34+00:00",
 "client_url": "api_sample_output",
 "company_name": "API Sample Output Company",
 "profile_image_url": "https:\/\/www.gravatar.com\/avatar\/e64c7d89f26bd1972efa854d13d7dd61",
 "display_name": "",
 "pronouns": "",
 "pto_balances": {
 "2624351": 0,
 "2624353": 0,
 "2624355": 0
 },
 "submitted_to": "2000-01-01",
 "approved_to": "2000-01-01",
 "manager_of_group_ids": [ ],
 "require_password_change": false,
 "pay_rate": 0,
 "pay_interval": "hour",
 "permissions": {
 "admin": true,
 "mobile": true,
 "status_box": false,
 "reports": false,
 "manage_timesheets": false,
 "manage_authorization": false,
 "manage_users": false,
 "manage_my_timesheets": false,
 "manage_jobcodes": false,
 "pin_login": false,
 "approve_timesheets": false,
 "manage_schedules": false,
 "external_access": false,
 "manage_my_schedule": false,
 "manage_company_schedules": false,
 "view_company_schedules": false,
 "view_group_schedules": false,
 "manage_no_schedules": false,
 "view_my_schedules": false,
 "time_tracking": false
 },
 "customfields": ""
 },
 "933845": {
 "id": 933845,
 "first_name": "Bob",
 "last_name": "Smith",
 "group_id": 64965,
 "active": true,
 "employee_number": 0,
 "salaried": false,
 "exempt": false,
 "username": "bobsmith",
 "email": "",
 "email_verified": false,
 "payroll_id": "",
 "hire_date": "0000-00-00",
 "term_date": "0000-00-00",
 "last_modified": "2018-03-27T16:13:33+00:00",
 "last_active": "2018-03-28T20:16:39+00:00",
 "created": "2018-03-27T16:13:33+00:00",
 "client_url": "api_sample_output",
 "company_name": "API Sample Output Company",
 "profile_image_url": "",
 "display_name": "",
 "pronouns": "",
 "mobile_number": "",
 "pto_balances": {
 "2624351": 0,
 "2624353": 0,
 "2624355": 0
 },
 "submitted_to": "2000-01-01",
 "approved_to": "2000-01-01",
 "manager_of_group_ids": [ ],
 "require_password_change": false,
 "pay_rate": 0,
 "pay_interval": "hour",
 "permissions": {
 "admin": false,
 "mobile": true,
 "status_box": false,
 "reports": false,
 "manage_timesheets": false,
 "manage_authorization": false,
 "manage_users": false,
 "manage_my_timesheets": false,
 "manage_jobcodes": false,
 "pin_login": false,
 "approve_timesheets": false,
 "manage_schedules": false,
 "external_access": false,
 "manage_my_schedule": false,
 "manage_company_schedules": false,
 "view_company_schedules": false,
 "view_group_schedules": false,
 "manage_no_schedules": false,
 "view_my_schedules": false,
 "time_tracking": false
 },
 "customfields": ""
 }
 }
 },
 "more": false,
 "supplemental_data": {
 "jobcodes": {
 "2624351": {
 "id": 2624351,
 "parent_id": 0,
 "assigned_to_all": true,
 "billable": false,
 "active": true,
 "type": "pto",
 "has_children": false,
 "billable_rate": 0,
 "short_code": "",
 "name": "Sick",
 "last_modified": "2018-03-27T16:13:28+00:00",
 "created": "2018-03-27T16:13:28+00:00",
 "filtered_customfielditems": "",
 "required_customfields": [ ],
 "locations": [ ]
 },
 "2624353": {
 "id": 2624353,
 "parent_id": 0,
 "assigned_to_all": true,
 "billable": false,
 "active": true,
 "type": "pto",
 "has_children": false,
 "billable_rate": 0,
 "short_code": "",
 "name": "Vacation",
 "last_modified": "2018-03-27T16:13:28+00:00",
 "created": "2018-03-27T16:13:28+00:00",
 "filtered_customfielditems": "",
 "required_customfields": [ ],
 "locations": [ ]
 },
 "2624355": {
 "id": 2624355,
 "parent_id": 0,
 "assigned_to_all": true,
 "billable": false,
 "active": true,
 "type": "pto",
 "has_children": false,
 "billable_rate": 0,
 "short_code": "",
 "name": "Holiday",
 "last_modified": "2018-03-27T16:13:28+00:00",
 "created": "2018-03-27T16:13:28+00:00",
 "filtered_customfielditems": "",
 "required_customfields": [ ],
 "locations": [ ]
 }
 },
 "groups": {
 "64965": {
 "id": 64965,
 "active": true,
 "name": "Construction",
 "last_modified": "2018-03-27T16:13:30+00:00",
 "created": "2018-03-27T16:13:29+00:00",
 "manager_ids": [
 "933833"
 ]
 }
 }
 }
}

 

 

 

I would have expected the users: node to contain an array, with a bunch of objects that had the id, first_name, etc. properties, but instead, there's a "933849" object with those properties. I'm not sure how I'd be able to script the default response in this case... any ideas? Since I won't know what those nodes will be named, will it be possible to set up a default response schema?

 

Thanks!

  • peteryee78 Profile Picture
    11 on 31 Jan 2021 at 23:29:20
    Re: Custom Connector API JSON Default Response Challenge

    That's what I figured. Seems like a small change to the design of their output would make this much easier to work with - calling these one at a time due to the way they've structured the "GET ALL" endpoint seems like it'll cost them a lot more processing...

     

    Just making sure I wasn't missing something simple on my end, as I often do. Maybe not this time though...

  • abm abm Profile Picture
    32,506 Most Valuable Professional on 23 Jan 2021 at 23:14:06
    Re: Custom Connector API JSON Default Response Challenge

    Hi @peteryee78 

     

    Its more of a question to TSheets API support team. You can't have dynamic mapping for the above JSON schema you provided. Are there any other TSheets API there to get each user ids or a collection of user ids and later you could filter using the ids.

     

    Thanks

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Announcing our 2025 Season 2 Super Users!

A new season of Super Users has arrived, and we are so grateful for…

Paul Stork – Community Spotlight

We are honored to recognize Paul Stork as our July 2025 Community…

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Featured topics

Loading complete