Skip to main content

Skedulo Data Source

The Skedulo connector enables you to ingest workforce scheduling data—including jobs, resources, allocations, shifts, availability, and tracking records—from your Skedulo tenant into Nexla data flows. Follow the instructions below to create a new data flow that ingests data from a Skedulo source in Nexla.
skedulo_api.png

Skedulo

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Skedulo connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Skedulo instance, and click Next; or, create a new Skedulo credential for use in this flow.

  3. In Nexla, Skedulo data sources can be created using pre-built endpoint templates, which expedite source setup for common Skedulo data objects. Each template is designed specifically for the corresponding Skedulo API endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Skedulo sources can also be configured manually, allowing you to ingest data from Skedulo endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Skedulo data objects. Each template is designed specifically for the corresponding Skedulo API endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

Get Jobs

Fetches all job records from your Skedulo tenant via GraphQL, including status, timing, location, account, contact, region, and resource allocation details. Use this endpoint to ingest scheduling and job management data for reporting, analytics, or downstream processing.

  • Optionally, enter the number of job records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000. Larger page sizes reduce the number of API requests but may increase latency per call.

  • Optionally, enter a Skedulo EQL (Expression Query Language) filter expression in the EQL Filter field to limit which job records are returned. For example:

    • JobStatus == 'Queued' — returns only jobs with a status of Queued
    • Start > {now-30} — returns jobs that started within the last 30 time units

The Pagination Cursor field is managed automatically by Nexla during paginated data retrieval. Leave it blank to start ingestion from the beginning of the dataset. For additional details about job object fields, refer to the Skedulo Jobs object reference.

Get Resources

Fetches all resource (field worker) records including name, contact information, home address, geo-location, active status, category, user account, region assignments, and tag assignments. Use this endpoint to synchronize your workforce roster with external systems or build resource analytics.

  • Optionally, enter the number of resource records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

The Pagination Cursor field is managed automatically by Nexla. Leave it blank to start from the beginning of the dataset. For additional details, refer to the Skedulo Resources object reference.

Get Job Allocations

Fetches all job-to-resource assignment records, including allocation status, check-in and check-out times, travel time, duration, notification type, geo-location at check-in, and linked job and resource details. Use this endpoint to analyze workforce utilization, travel time, and job completion rates.

  • Optionally, enter the number of job allocation records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

  • Optionally, enter a Skedulo EQL filter expression in the EQL Filter field to limit results. For example:

    • Status == 'Complete' — returns only completed allocations
    • Job.Start > 2024-01-01T00:00:00.000Z — returns allocations for jobs starting after a specific date

For additional details, refer to the Skedulo JobAllocations object reference.

Get Accounts

Fetches all customer account records including billing address, geo-location, phone, email, type, and industry. Use this endpoint to synchronize Skedulo customer accounts with CRM systems or perform account-level analysis.

  • Optionally, enter the number of account records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo Accounts object reference.

Get Contacts

Fetches all contact records linked to accounts, including first and last name, email, mobile phone, mailing address, geo-location, and associated account. Use this endpoint to build customer contact lists or enrich job data with contact details.

  • Optionally, enter the number of contact records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo Contacts object reference.

Get Activities

Fetches activity records representing non-job work items such as meetings, training sessions, or administrative time. Each record includes name, notes, start and end times, duration, type, address, geo-location, region, and assigned resources. Use this endpoint to capture non-job time and include it in workforce utilization reporting.

  • Optionally, enter the number of activity records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

  • Optionally, enter a Skedulo EQL filter expression in the EQL Filter field. For example:

    • Type == 'Meeting' — returns only meeting-type activities
    • Start > {now-30} — returns activities starting within the last 30 time units

For additional details, refer to the Skedulo Activities object reference.

Get Shifts

Fetches shift definition records that define scheduled work periods for resources, including name, start and end times, duration, display name, location, address, geo-location, region, and associated tags. Use this endpoint to analyze shift patterns and workforce scheduling structures.

  • Optionally, enter the number of shift records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo Shifts object reference.

Get Resource Shifts

Fetches resource-to-shift assignment records, including assignment status, check-in and check-out times, linked resource, and shift details (name, start and end times). Use this endpoint to track shift adherence and attendance.

  • Optionally, enter the number of resource shift records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo ResourceShifts object reference.

Get Availabilities

Fetches resource availability window records indicating when individual resources are available or unavailable. Each record includes start and finish times, type, notes, availability flag, and the associated resource. Use this endpoint to analyze workforce availability patterns or feed scheduling optimization tools.

  • Optionally, enter the number of availability records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

  • Optionally, enter a Skedulo EQL filter expression in the EQL Filter field. For example:

    • IsAvailable == true — returns only available windows
    • Start > {now-7} — returns availability records starting within the last 7 time units

For additional details, refer to the Skedulo Availabilities object reference.

Get Locations

Fetches named location records used as job sites, depots, and scheduling reference points. Each record includes name, address, geo-location, type, and associated account. Use this endpoint to maintain a synchronized list of service locations for mapping or scheduling analysis.

  • Optionally, enter the number of location records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo Locations object reference.

Get Regions

Fetches geographic region definitions used to assign resources and jobs to service areas. Each record includes name, timezone, and description. Use this endpoint to synchronize Skedulo region data with territory management or reporting systems.

  • Optionally, enter the number of region records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo Regions object reference.

Get Tags

Fetches all tag definitions used to classify resources, jobs, shifts, and accounts. Each record includes name, description, and classification. Tags in Skedulo are used for skill matching and filtering—for example, assigning a tag like "Electrician" to both a resource and a job ensures that only qualified workers are scheduled for that job. Use this endpoint to synchronize tag libraries with external skill management systems.

  • Optionally, enter the number of tag records to retrieve per page in the Page Size field. The default is 500 and the maximum is 10000.

For additional details, refer to the Skedulo Tags object reference.

Get Resource Tracking

Fetches real-time and historical GPS location tracking data for field resources within a specified time window. Use this endpoint to analyze resource movement, verify field attendance, or build operational dashboards.

  • Enter the start of the tracking time window in the From Date field, in ISO-8601 UTC format (for example, 2024-01-01T00:00:00.000Z). The default value is {now-1}, which resolves to one time unit before the current datetime.

  • Enter the end of the tracking time window in the To Date field, in ISO-8601 UTC format. The default value is {now}, which resolves to the current datetime.

Both From Date and To Date are required for this endpoint. The time window should be kept to a reasonable range to avoid retrieving excessively large datasets. For additional details, refer to the Skedulo resource tracking documentation.

Get Availability Summary

Fetches a summary of resource availability for a specified date range from the Skedulo scheduling availability API. Use this endpoint to obtain a high-level view of workforce availability for capacity planning or scheduling optimization.

  • Enter the start of the availability window in the Start Date field, in ISO-8601 UTC format. The default value is {now}, which resolves to the current datetime.

  • Enter the end of the availability window in the End Date field, in ISO-8601 UTC format. The default value is {now+7}, which resolves to seven time units after the current datetime.

Both Start Date and End Date are required for this endpoint. For additional details, refer to the Skedulo availability documentation.

Get Job Tasks

Fetches task checklist items belonging to jobs, including task name, description, completion status, sequence order, mandatory flag, and the associated job. Use this endpoint to track job task completion rates or synchronize task data with quality management systems.

  • Optionally, enter the number of job task records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo JobTasks object reference.

Get Job Products

Fetches product line items associated with jobs, including quantity, notes, associated job, and product details (name and SKU). Use this endpoint to synchronize job-level product usage data with inventory management or billing systems.

  • Optionally, enter the number of job product records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo JobProducts object reference.

Get Recurring Schedules

Fetches recurring schedule definitions used to auto-generate repeating jobs or activities. Each record includes name, start and end dates, frequency, days of the week, duration, and active status. Use this endpoint to audit or replicate recurring scheduling patterns.

  • Optionally, enter the number of recurring schedule records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo RecurringSchedules object reference.

Get Resource Requirements

Fetches skill and certification requirement records defined on jobs for resource matching. Each record includes relative start and end times, status, the associated job, and the required resource requirement tags (skills or certifications). Use this endpoint to analyze job skill requirements and ensure workforce competency alignment.

  • Optionally, enter the number of resource requirement records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo ResourceRequirements object reference.

Get Job Offers

Fetches job offer records sent to resources for open job acceptance, including offer status, offer type, expiry time, the associated job, and per-resource offer response statuses. Use this endpoint to monitor offer acceptance rates and identify unfilled jobs.

  • Optionally, enter the number of job offer records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo JobOffers object reference.

Get Users

Fetches Skedulo user account records including login, email, full name, user type, active status, profile photo URL, and region access assignments. Use this endpoint to synchronize Skedulo user rosters with identity management or HR systems.

  • Optionally, enter the number of user records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo Users object reference.

Get Change History

Fetches incremental change audit records for Skedulo objects via the delta/datalake API. This endpoint returns records for any objects that have been created, updated, or deleted since a specified timestamp. It is particularly useful for building incremental data pipelines that capture only recent changes rather than full dataset refreshes.

  • Enter the timestamp from which to fetch changes in the Since (ISO-8601) field, in ISO-8601 UTC format (for example, 2024-01-01T00:00:00.000Z). The default value is {now-1}, which resolves to one time unit before the current datetime. This field is required.

  • Optionally, enter one or more Skedulo object names in the Object Types field as a comma-separated list to limit the change history to specific object types. Available values include:

    • Jobs
    • Resources
    • JobAllocations
    • Accounts
    • Contacts
    • Activities
    • Shifts

The default value for Object Types is Jobs. To capture changes across multiple object types in a single run, enter them as a comma-separated list (for example, Jobs,Resources,JobAllocations). For additional details, refer to the Skedulo change history documentation.

Get Rule Violations

Fetches schedule rule violation (conflict) records for a specified date range, identifying scheduling issues such as double-booking, qualification mismatches, or availability conflicts. Use this endpoint to build scheduling quality dashboards or trigger automated alerts.

  • Enter the start of the date range in the From Date field, in ISO-8601 UTC format. The default value is {now-7}, which resolves to seven time units before the current datetime. This field is required.

  • Enter the end of the date range in the To Date field, in ISO-8601 UTC format. The default value is {now}, which resolves to the current datetime. This field is required.

For additional details, refer to the Skedulo rule violations documentation.

Get Current User (WhoAmI)

Validates the configured API token and returns the authenticated user's tenant, role, and identity details. This endpoint is useful for verifying credential configuration and confirming the identity and permissions of the API token being used.

  • No additional parameters are required for this endpoint. Select it and test the connection to confirm that your credential is correctly configured.

For additional details, refer to the Skedulo authentication documentation.

Get Holidays

Fetches holiday calendar records used in Skedulo availability and scheduling calculations. Each record includes the holiday name, date, whether it is globally applicable, and associated region assignments. Use this endpoint to synchronize Skedulo holiday calendars with external scheduling or HR systems.

  • Optionally, enter the number of holiday records to retrieve per page in the Page Size field. The default is 500 and the maximum is 10000.

For additional details, refer to the Skedulo Holidays object reference.

Get iCal Schedule Export

Fetches iCalendar-formatted schedule data for a specific resource, enabling calendar application integration. Use this endpoint to export a resource's upcoming schedule into a format compatible with calendar tools such as Google Calendar, Outlook, or Apple Calendar.

  • Enter the unique identifier (UID) of the Skedulo resource whose schedule you want to export in the Resource UID field. This field is required. Resource UIDs can be retrieved using the Get Resources endpoint.

For additional details, refer to the Skedulo iCal documentation.

Get Availability Templates

Fetches availability template definitions used to apply recurring availability patterns to resources. Each record includes the template name, description, availability flag, and the scheduled time entries (start time, end time, and day of week). Use this endpoint to audit or replicate recurring availability configurations.

  • Optionally, enter the number of availability template records to retrieve per page in the Page Size field. The default is 200 and the maximum is 10000.

For additional details, refer to the Skedulo AvailabilityTemplates object reference.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Skedulo data sources can be manually configured to ingest data from any valid Skedulo API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates, executing custom GraphQL queries, or applying custom authentication headers and request parameters.

The Skedulo API accepts both GET requests (for REST-style endpoints) and POST requests with JSON bodies (for GraphQL endpoints). GraphQL queries are sent to the /graphql/graphql path on your regional base URL.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Skedulo API from the Method pulldown menu. The most common methods for Skedulo are:

    • GET: For REST-style endpoints such as resource tracking, availability summary, rule violations, and the WhoAmI endpoint
    • POST: For GraphQL queries — all GraphQL requests to /graphql/graphql use POST with a JSON body containing the query field

API Endpoint URL

  1. Enter the URL of the Skedulo API endpoint from which this source will fetch data in the Set API URL field. This should be the complete URL including the regional base URL and any required path parameters. For example:
    • GraphQL: https://api.skedulo.com/graphql/graphql
    • Resource tracking: https://api.skedulo.com/resources/tracking
    • Availability: https://api.skedulo.com/availability

Replace https://api.skedulo.com with the regional base URL appropriate for your tenant (UK: https://api.uk.skedulo.com, CA: https://api.ca.skedulo.com, AU: https://api.au.skedulo.com). Ensure the API endpoint URL is accessible with your current credentials by using the Test button after configuring the URL.

Date/Time Macros (API URL)

Optional

Optionally, the API URL can be customized using macros—all macros added to the API URL will be converted into values when Nexla executes the API call. Macros are dynamic placeholders that allow you to create flexible API endpoints that can adapt to different time periods or data requirements. This is particularly useful for Skedulo endpoints that accept date range parameters such as from, to, start, and end.

Macros are particularly useful for Skedulo endpoints that require date ranges, such as resource tracking, availability summary, and rule violations endpoints.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime—for example, enter (now-4) to indicate the datetime four time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. This format will be applied to the base datetime value of the macro—i.e., the value of {now} in {now-1}.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu—for example, for the macro {now-1}, when Day is selected, {now-1} will be converted to the datetime one day before the current datetime.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. Lookup-based macros allow you to reference data from previously configured data sources or lookups, enabling dynamic API endpoints that adapt based on existing data. For Skedulo, this is useful when you need to construct endpoints that reference specific resource UIDs, job IDs, or other identifiers retrieved from another Nexla source.

Lookup-based macros are useful when you need to create Skedulo API endpoints that reference specific UIDs or parameters obtained from other Nexla data sources in your environment.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data returned by the API endpoint is needed, you can designate the part(s) of the response that should be included in the Nexset(s) produced from this source by specifying the path to the relevant data within the response. Skedulo API responses commonly nest the relevant data within a structured envelope.

For example, most Skedulo GraphQL responses return data under $.data.[objectName].edges[*].node, and REST endpoint responses typically use $.result[*].

Specifying the correct path to data is essential for Skedulo responses, as both GraphQL and REST responses wrap the relevant records within nested structures.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For responses in JSON format enter the JSON path that points to the object or array that should be treated as relevant data. JSON paths use dot notation (for example, $.data.jobs.edges[*].node to access job nodes from a GraphQL response, or $.result[*] to access records from a REST endpoint response).
    Path to Data Example:

    For a Skedulo GraphQL query that returns job records, the response is structured as data.jobs.edges[].node. The correct path to enter would be $.data.jobs.edges[*].node.

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content & format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

    PathSuggestions.png

Metadata

If metadata is included in the response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record. This is useful when you want to preserve contextual information such as Skedulo's pageInfo pagination metadata (which contains hasNextPage and endCursor fields) alongside each record.

Metadata paths are particularly useful for preserving Skedulo GraphQL response context like pagination information that applies to all records in the response.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For responses in JSON format, enter the JSON path to the object or array that contains the metadata.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (for example, header1:value1,header2:value2). This is useful for specifying the Content-Type header when using GraphQL POST requests (Content-Type:application/json), or for any custom Skedulo API versioning headers.

    You do not need to include the Authorization header — this is handled automatically by Nexla based on your Skedulo credential configuration.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new Skedulo data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.