DLHDLH.io Documentation

FreshService

DLH.io documentation for FreshService

FreshService enables users to easily scale their business support and increase customer satisfaction. The platform facilitates better customer experiences and faster support with amazing customer service.

Setup Instructions

Follow the setup steps guide for configuring your FreshService connection to enable data to flow into your destination via DLH.

Supported Features

Here are key features supported for this connector.

Sync FeatureSupportedDetails
Custom Data and DevelopmentAbility to enhance connector upon request
Historical Re-Load/Load
Incremental/Delta LoadGets most recent records and changes
Column Selection
Column Hashing
Re-Sync Table/EntitySelect at the table level to reload data
history (on next Sync Bridge run)
Custom QueriesUtilizing SQL Data Query Connector
Custom Data
Captures Deleted RowsOn all supported tables
API Sync Bridge Initiation
Priority Scheduling
Private VPC/Link
DLH Data Model Available-

If you have any questions about these supported features please reach out to our Customer Support team.

Details on Sync Processing

For this connector, we believe the sync processing is straightforward. We've provided a number of details, steps, and other guidance here and in the setup steps guide. Be sure to also check the change log and notes page from time to time for any changes.

Transformation Scripts

These are recommended transformation scripts to use to work with DLH Transformations, as needed.

Handling Known Duplicates with Transformations

The following entities have been identified as having no primary key concept. The means that duplicates will be injected into the target system. Handling these duplicates can be achieved in DLH using the recommended SQL logic as a "PRE-SQL" DLH Transformation. Or, you can use these scripts as inspiration for any downstream workflows you currently use in your core solutions.

You may need to update the SQL logic based on your target destination server syntax

TICKET_ACTIVITIES

IF OBJECT_ID('_TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_TICKET_ACTIVITIES') IS NOT NULL
    DROP TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_TICKET_ACTIVITIES;

CREATE TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_TICKET_ACTIVITIES
WITH (DISTRIBUTION = ROUND_ROBIN)
AS
SELECT
    ACTOR_ID, ACTOR_NAME, ACTOR_IS_AGENT, TICKET_ID, CONTENT, SUB_CONTENTS,
    CREATED_AT, __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
    __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE
FROM (
    SELECT
        ACTOR_ID, ACTOR_NAME, ACTOR_IS_AGENT, TICKET_ID, CONTENT, SUB_CONTENTS,
        CREATED_AT, __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
        __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE,
        ROW_NUMBER() OVER (
            PARTITION BY __ROW_MD5
            ORDER BY __DLH_SYNC_TS DESC
        ) AS rn
    FROM _TMP_NDMFRESHSVC_FRESH_SERVICE.TICKET_ACTIVITIES
) x
WHERE x.rn = 1;

DELETE FROM NDMFRESHSVC_FRESH_SERVICE.TICKET_ACTIVITIES
WHERE TICKET_ID IN (
    SELECT DISTINCT TICKET_ID
    FROM _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_TICKET_ACTIVITIES
);

TRUNCATE TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE.TICKET_ACTIVITIES;

INSERT INTO _TMP_NDMFRESHSVC_FRESH_SERVICE.TICKET_ACTIVITIES
(ACTOR_ID, ACTOR_NAME, ACTOR_IS_AGENT, TICKET_ID, CONTENT, SUB_CONTENTS,
 CREATED_AT, __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
 __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE)
SELECT
    ACTOR_ID, ACTOR_NAME, ACTOR_IS_AGENT, TICKET_ID, CONTENT, SUB_CONTENTS,
    CREATED_AT, __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
    __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE
FROM _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_TICKET_ACTIVITIES;

DROP TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_TICKET_ACTIVITIES;

AGENTS_ROLES

IF OBJECT_ID('_TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_AGENTS_ROLES') IS NOT NULL
    DROP TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_AGENTS_ROLES;
CREATE TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_AGENTS_ROLES
WITH (DISTRIBUTION = ROUND_ROBIN)
AS
SELECT
    AGENT_ID, ROLE_ID, ASSIGNMENT_SCOPE, GROUPS,
    __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
    __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE
FROM (
    SELECT
        AGENT_ID, ROLE_ID, ASSIGNMENT_SCOPE, GROUPS,
        __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
        __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE,
        ROW_NUMBER() OVER (
            PARTITION BY AGENT_ID, ROLE_ID, ASSIGNMENT_SCOPE
            ORDER BY __DLH_SYNC_TS DESC
        ) AS rn
    FROM _TMP_NDMFRESHSVC_FRESH_SERVICE.AGENTS_ROLES
) x
WHERE x.rn = 1;
DELETE FROM NDMFRESHSVC_FRESH_SERVICE.AGENTS_ROLES
WHERE AGENT_ID IN (
    SELECT DISTINCT AGENT_ID
    FROM _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_AGENTS_ROLES
);
TRUNCATE TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE.AGENTS_ROLES;
INSERT INTO _TMP_NDMFRESHSVC_FRESH_SERVICE.AGENTS_ROLES
(AGENT_ID, ROLE_ID, ASSIGNMENT_SCOPE, GROUPS,
 __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
 __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE)
SELECT
    AGENT_ID, ROLE_ID, ASSIGNMENT_SCOPE, GROUPS,
    __ROW_MD5, __DLH_IS_DELETED, __DLH_SYNC_TS,
    __DLH_START_TS, __DLH_FINISH_TS, __DLH_IS_ACTIVE
FROM _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_AGENTS_ROLES;
DROP TABLE _TMP_NDMFRESHSVC_FRESH_SERVICE._DEDUP_AGENTS_ROLES;

Issue Handling

If any issues occur with the authorization simply return to the sources page in DLH.io, edit the source details and click the Save & Test or Authorize Your Account or Re-Authorize Account button to confirm connectivity. If any issues persist please contact our support team via the DLH.io Support Portal.

Schema Details (ER Diagram)

This entity relationship diagram (ERD) provides you with information about what entities/tables DLH provides for you out-of-the-box and how they are related to one another.