Join the Power Platform Masterclass #2 starting April 23

1

Resco Cloud connector

From Resco's Wiki
Jump to navigation Jump to search
Integration with third-party systems

Resco CRM Connector (web APIs):




The Microsoft-certified Resco Cloud connector for Power Automate exposes a couple of operations that allow you to seamlessly create, read, update, and delete records. It is compatible with Microsoft Power Automate, Microsoft Power Apps, and Azure Logic Apps.

Benefits

  • Connecting backends is often a complex and time-consuming endeavor. Use Microsoft-standardized integration to save time and money.
  • Automating the communication can extend Resco Cloud benefits to the users of other backends, for example, offline mobility or some field service functions.
Resco Cloud connector: Using Power Automate to connect Resco Cloud to other systems
One of the possible usage scenarios


Prerequisites

To use this connector, you need:

  • An organization at Resco Cloud or any affiliate product from Resco website.
  • An user account with schema access privilege or system administrator privilege.

Authentication

This connector uses Basic authentication. When creating a new connector (in Microsoft Power Apps / Azure Logic Apps), you must provide login credentials. You must also select a server to use with this connector and the organization name you specified during sign-up.

Resco Cloud connector: authenticating to your Resco Cloud organization

Actions

Simply add any Resco Cloud connector step to your flow and start accessing/changing data in your Resco Cloud organization. This connector allows you to perform basic data operations:

  • Create a new record: Create a new record.
  • Delete record: Delete record with a specific ID.
  • Generate report (*): Generate a mobile report, just like in the app
  • Get current user: Get the current user record associated with login credentials.
  • Get questionnaire (*): Get all answers of an answered questionnaire
  • Get record: Get a record with a specific ID.
  • List questionnaires (*): Get a list of questionnaires.
  • List records: Get a list of records.
  • Update record: Update record with a specific ID.

Entries marked with an asterisk require an updated version of the connector released with release 14.3.

Resco Cloud connector actions

List records

Use the List records action to retrieve records from Resco Cloud. You can filter and order the records as needed. See also FAQ below.

How to get a list of records from Resco Cloud using Resco Cloud connector

Since release 17.0, you can use the related table added via Expand query directly in your Filter query.

Resco Cloud connector - filter with expand query

Triggers

Since release 14.3, Resco Cloud connector supports triggers for create, update, and delete operations.

Resco Cloud connector: Trigger in action

Known issues

Paging

The List records action returns a maximum of 1000 records. If you would like to get more records, you have to use the Skip token input parameter. The Skip token is not returned directly, but instead Next Link is returned which contains Skip token also.

To resolve Skip token for the next List records action call, you can use the expression in the Set variable step like:

{
    "inputs": {
        "name": "skipToken",
        "value": "@{if(empty(outputs('List_records')?['body/@odata.nextLink']),null,decodeUriComponent(substring(outputs('List_records')?['body/@odata.nextLink'],add(indexOf(outputs('List_records')?['body/@odata.nextLink'], '$skipToken='),11))))}"
    }
}

Common errors and remedies

  • For cloud servers, make sure that you have specified the proper server under the Connection dialog. If not, you may get an Unauthorized error.
  • For custom or on-premise servers, enter the URL including protocol and port (if applicable), e.g., https://mycompany.com[:8080].

FAQ

How to use List records input parameters?
These are standard OData query parameters. The syntax for each input parameter is defined by OData specification. The only thing to think of is using logical names instead of display names. (e.g. Account -> account, Name -> name, etc.). Logical names can be found under Entities in the Admin Console.
How do I get a picklist label?
Each picklist field returns 2 values:
  • Field - This is the picklist value
  • Field (Label) - This is the label for the picklist value.
How do I get a lookup label?
Each lookup field returns 3 values:
  • Field - This is the ID (GUID) of the reference
  • Field (Label) - This is the label (primary name) of the reference.
  • Field (Type) - This is the target entity of the reference.
How do I set a lookup field?
When setting lookup fields, you have to construct a reference consisting of record type and record id.
  • From existing record in your flow, you can use OData Id
  • By creating logicalName:id expression
  • By creating logicalName('id') expression
How does the connector work?
Internally, the connector uses Resco API services OData service and Questionnaire OData service. All limitations that apply to those APIs also apply to Resco Cloud connector.


Advanced triggers

Before release 14.3, Resco Cloud connector did not support triggers as an out-of-the-box feature. However, there was a workaround available using the server process event and invoking an HTTP request provided by "When an HTTP request is received" (described below). This workaround is still an option for custom triggers.

Create a new automated cloud flow, name it, and click skip to create an empty flow. Search for "Request" connector and add the "When an HTTP request is received" trigger. Set "Request Body JSON Schema" to accept the id parameter:

{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    }
}

Under Show Advanced Options set method to POST. Save the flow to generate "HTTP POST URL".

Resco Cloud connector: Advanced trigger (Power automate flow)

Now you have to create a process to invoke trigger in your flow.

  1. Log into your Resco Cloud server, start the Admin Console, and select Processes from the menu.
  2. Click New, enter a name for the new process, select the desired entity (e.g., Account), and the desired event (e.g., Record is created).
  3. Add StringList variable headers and add item Content-Type: application/json;charset=utf-8 to it.
  4. Add string variable body as "Format Text" with: \{ "id": "{Entity.id}" \}.
  5. Then, add the function step `Server.InvokeWebRequest` with `POST` method. URL copied from "When an HTTP request is received" trigger and body variable.

Resco Cloud connector: Advanced trigger (resco process)

Now, when you create a record of the specified entity type, the trigger activates.

See also



Was this information helpful? How can we improve?