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 Feature | Supported | Details |
|---|---|---|
| Custom Data and Development | ✓ | Ability to enhance connector upon request |
| Historical Re-Load/Load | ✓ | |
| Incremental/Delta Load | ✓ | Gets most recent records and changes |
| Column Selection | ✓ | |
| Column Hashing | ✓ | |
| Re-Sync Table/Entity | ✓ | Select at the table level to reload data history (on next Sync Bridge run) |
| Custom Queries | Utilizing SQL Data Query Connector | |
| Custom Data | ||
| Captures Deleted Rows | ✓ | On 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.