Flow Notation and API Conversions for Business Hours V2

Each of the following sections outlines what you can expect in the conversion from V1 to V2 for APIs and flow notations. Any action you need to take is also specified:

  • API Requests: With Business Hours V2, we've added new API requests that use V2 in the endpoint instead of V1. You will need to update your API requests to use the V2 requests. This section includes a table the compares V1 requests to the V2 requests.

  • Check Business Hours Flow Notation: The Check Business Hours flow notation has been updated to use the V2 API routes and also contains additional parameters and bindings.

  • CxEngage API Request Notation: The CxEngage API request notation uses the V1 endpoint. If you use it in any flows for business hours, update the flow to use the REST Request: Generic notation and use the V2 API routes.

  When business hours are converted from V1 to V2, they keep the same ID.

API Requests

With Business Hours V2, there are new API requests which use a V2 endpoint instead of v1. Update your API requests to use the V2 requests to ensure that you are working with business hours in V2.

The following table compares the V1 and V2 REST API requests:

Description V1 V2
All business hours owned by or shared with tenant /v1/tenants/{tenantId}/business-hours /v2/tenants/{tenantId}/business-hours
Specific business hours owned by or shared with tenant /v1/tenants/{tenantId}/business-hours/{businessHoursId /v2/tenants/{tenantId}/business-hours/{businessHoursId}
All versions of a specific business hours N/A /v2/tenants/{tenantId}/business-hours/{businessHoursId}/versions
Specific business hours version N/A /v2/tenants/{tenantId}/business-hours/{businessHoursId}/versions/{businessHoursVersionId}
All draft versions of a specific business hours N/A /v2/tenants/{tenantId}/business-hours/{businessHoursId}/drafts
Specific business hours draft version N/A /v2/tenants/{tenantId}/business-hours/{businessHoursId}/drafts/{businessHoursDraftId
Check if open /v1/tenants/{tenantId}/business-hours/{businessHoursId}?check-open={boolean}
 In V1, this request uses the GET verb.
/v2/tenants/{tenantId}/business-hours/{businessHoursId}/check?version={businessHoursVersionId}&date={when-timestamp}&type={scope}
 In V2, this request uses the POST verb.

If you use the V1 API endpoints after your business hours are converted to V2, here's what you can expect:

  • POST (create) requests: After the migration from V1 to V2, API requests to create business hours in V1 will fail and return a 405 Method Not Allowed error.

  • PUT (update) requests: After the migration from V1 to V2, API requests to update business hours in V1 will fail and return a 405 Method Not Allowed error.

  • GET requests: After the migration from V1 to V2, API requests to get business hours in V1 will continue to return successfully, including those that use the check-open=true parameter.. However, they will only retrieve business hours in V1 and will reflect how the business hours were configured at the time of the migration. If you have made updates to the business hours in V2, the changes are not reflected in the response.

    Flows that use the Check Business Hours notation automatically use the new V2 API route and business hours. If you are making requests through other methods, update them to use the V2 route to ensure the results reflect any changes made to the converted business hours in V2.

    For example, if your flow uses the CxEngage API Request notation (which uses V1 routes), ensure to update it to the REST Request: Generic flow notation. Details on how to update your flow to use that notation are included below.

 

After the conversion, business hours created in V2 cannot be accessed from the V1 route. A 404 error and the following API response is returned:

{
    "error": {
        "message": "not found in the system",
        "type": "ResourceNotFound",
        "code": 404,
        "attribute": null
    }
}

If the business hours were converted from V1, the V1 request successfully fetches the V1 business hours because the business hours ID remains the same in V1 and V2.

Check Business Hours Flow Notation

The updated Check Business Hours contains more parameters and bindings for increased configuration options. The Check Business Hours flow notation in your flow is updated as part of the conversion at the time of the release and requires no action on your part. The notation is converted as follows:

Check Business Hours (V1) Check Business Hours (V2)

Params

  • Business Hours: The name of the business hours being checked.

Params

  • Search By: The type Id is selected.

  • Business Hours: In the first drop-down menu, the same Business Hours name is listed as in the original Check Business Hours notation. In the second menu, the Active Version is selected.

  • When: Now is selected.

  • Scope: Regular Hours & Blackout is selected.

  • Return False if Business Hours Disabled: This option is disabled (the toggle is gray).

 

Bindings

  • Result: The binding variable entered.

Bindings

  • Result: The same result binding is entered here.

  • Result Object: This is field is empty.

Example: Check Business Hours Notation

The following example shows what a Check Business Hours notation configured in V1 looks like after it has been converted to the V2 notation.

Check Business Hours (V1):

Check Business Hours (V2)

 

  Click any of the images to enlarge them.

 

 

The following known issue occurs for versions published prior to the Business Hours V2 conversion:

Issue: The Business Hours entity is not updated when switching from the Flow Viewer to Flow Designer

Description: When switching from the flow viewer to flow designer by clicking the New Draft button, the new draft does not automatically update the Business Hours input parameter in the Check Business Hours notation. You need to manually select the Business Hours entity before publishing the draft.

Workaround: Create a new draft from the Flows Management page instead of the viewer. All of the Check Business Hours notations will automatically have the Business Hours entities updated.

Updating CxEngage API Request Flow Notation to REST Request: Generic for V2

The CxEngage API Request uses the V1 API endpoint. If you want to use data exchange in a flow for Business Hours V2, you must update your flows to use the REST Request: Generic flow notation. In the REST Request: Generic notation, you can specify the V2 path. If you keep the CxEngage API Request flow notation in your flow, it reflects the behavior described in API Requests for using the V1 endpoint following the conversion.

  If you have a flow that is using the CxEngage API Request to GET business hours, it will continue to fetch the V1 business hours after your business hours are converted. Changes to the V2 business hours (for example, updated operating hours), do not change the flow.

The following example shows how you can update your flow to use the REST Request: Generic notation:

CxEngage API Request for Business Hours V1:

REST Request: Generic for Business Hours V2

  Click any of the images to enlarge them.
CxEngage API Request (V1) REST Request: Generic (V2)

Params

  • Verb: GET

  • URI Template: /business-hours/{{bh-id}}

  • URI Params: 

    • bh-id

    • businessHoursId

Params

  • IntegrationSelect the REST integration you want to use

  • Verb: GET

  • URI Template/v2/tenants/{{tenant}}/business-hours/{{bh-id}}

  • Body Template: {}

  • Headers Template: {}

  • Template Params:

    • tenant

    • interactions/tenant-id

    • bh-id

    • businessHoursId

Bindings

  • Response: response

Bindings

  • Response: response