UJET integration summary

Stitch’s UJET integration replicates data using the UJET API. Refer to the Schema section for a list of objects available for replication.

UJET feature snapshot

A high-level look at Stitch's UJET (v1) integration, including release status, useful links, and the features supported in Stitch.

STITCH
Release status

Released on March 4, 2020

Supported by

Singer Community

Stitch plan

Standard

API availability

Available

Singer GitHub repository

singer-io/tap-ujet

REPLICATION SETTINGS
Anchor Scheduling

Supported

Advanced Scheduling

Supported

Table-level reset

Unsupported

Configurable Replication Methods

Unsupported

DATA SELECTION
Table selection

Supported

Column selection

Supported

Select all

Supported

TRANSPARENCY
Extraction Logs

Supported

Loading Reports

Supported

Connecting UJET

UJET setup requirements

To set up UJET in Stitch, you need:

  • A UJET account with admin privileges. You need this privilege to retrieve the information required for the Stitch integration.


Step 1: Retrieve your UJET company credentials

  1. Login to your UJET Console.
  2. Click on Settings > Developer Settings.
  3. In the Agent Platform section, click on the UJET bubble.
  4. Click Save Changes.
  5. Your Company Key and Company Secret Code will display. Keep these available to complete your setup in Stitch. Your UJET Company and Company Secret Key.

Step 2: Add UJET as a Stitch data source

  1. Sign into your Stitch account.
  2. On the Stitch Dashboard page, click the Add Integration button.

  3. Click the UJET icon.

  4. Enter a name for the integration. This is the name that will display on the Stitch Dashboard for the integration; it’ll also be used to create the schema in your destination.

    For example, the name “Stitch UJET” would create a schema called stitch_ujet in the destination. Note: Schema names cannot be changed after you save the integration.

  5. In the Company Key field, enter the Company Key that you retrieved in Step 1.
  6. In the Company Secret field, enter the Company Secret Code that you retrieved in Step 1.
  7. In the Domain Field field, your UJET domain. This will usually be ujet, but if you are unsure, check your welcome email from UJET.
  8. In the Subdomain field, enter the subdomain of your UJET account’s URL. For example: The subdomain for stitch.ujet.com would be stitch.

Step 3: Define the historical replication start date

The Sync Historical Data setting defines the starting date for your UJET integration. This means that data equal to or newer than this date will be replicated to your data warehouse.

Change this setting if you want to replicate data beyond UJET’s default setting of 1 year. For a detailed look at historical replication jobs, check out the Syncing Historical SaaS Data guide.

Step 4: Create a replication schedule

In the Replication Frequency section, you’ll create the integration’s replication schedule. An integration’s replication schedule determines how often Stitch runs a replication job, and the time that job begins.

UJET integrations support the following replication scheduling methods:

To keep your row usage low, consider setting the integration to replicate less frequently. See the Understanding and Reducing Your Row Usage guide for tips on reducing your usage.

Step 5: Set objects to replicate

The last step is to select the tables and columns you want to replicate. Learn about the available tables for this integration.

Note: If a replication job is currently in progress, new selections won’t be used until the next job starts.

For UJET integrations, you can select:

  1. Individual tables and columns

  2. All tables and columns

Click the tabs to view instructions for each selection method.

  1. In the integration’s Tables to Replicate tab, locate a table you want to replicate.
  2. To track a table, click the checkbox next to the table’s name. A blue checkmark means the table is set to replicate.

  3. To track a column, click the checkbox next to the column’s name. A blue checkmark means the column is set to replicate.

  4. Repeat this process for all the tables and columns you want to replicate.
  5. When finished, click the Finalize Your Selections button at the bottom of the screen to save your selections.
  1. Click into the integration from the Stitch Dashboard page.
  2. Click the Tables to Replicate tab.

  3. In the list of tables, click the box next to the Table Names column.
  4. In the menu that displays, click Track all Tables and Fields:

    The Track all Tables and Fields menu in the Tables to Replicate tab

  5. Click the Finalize Your Selections button at the bottom of the page to save your data selections.

Initial and historical replication jobs

After you finish setting up UJET, its Sync Status may show as Pending on either the Stitch Dashboard or in the Integration Details page.

For a new integration, a Pending status indicates that Stitch is in the process of scheduling the initial replication job for the integration. This may take some time to complete.

Free historical data loads

The first seven days of replication, beginning when data is first replicated, are free. Rows replicated from the new integration during this time won’t count towards your quota. Stitch offers this as a way of testing new integrations, measuring usage, and ensuring historical data volumes don’t quickly consume your quota.


UJET table reference

agent_activity_logs

The agent_activity_logs table contains info about agent activity logs.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

started_at

Useful links

agent_activity_logs schema on GitHub

Join agent_activity_logs with on
agents
agent_activity_logs.agent_id = agents.id
calls
agent_activity_logs.agent_id = calls.agent_info.id
agent_activity_logs.agent_id = calls.transfers.from_agent.id
agent_activity_logs.agent_id = calls.transfers.to_agent.id
agent_activity_logs.call_id = calls.id
agent_activity_logs.call_id = calls.participants.call_id
chats
agent_activity_logs.agent_id = chats.transfers.from_agent.id
agent_activity_logs.agent_id = chats.transfers.to_agent.id
agent_activity_logs.chat_id = chats.id
agent_activity_logs.chat_id = chats.participants.chat_id
menus
agent_activity_logs.agent_id = menus.agent_assignments.assignee.id
agent_activity_logs.agent_id = menus.team_assignments.team.assignees.id

activity

STRING

agent_id

INTEGER

call_id

INTEGER

chat_id

INTEGER

duration

INTEGER

ended_at

DATE-TIME

id

INTEGER

started_at

DATE-TIME

status

OBJECT

color

STRING

id

INTEGER

name

STRING

wfm_id

INTEGER

whodunnit

OBJECT

agent_number

STRING

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

agents

The agents table contains info about agents.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

status_updated_at

Useful links

agents schema on GitHub

Join agents with on
agent_activity_logs
agents.id = agent_activity_logs.agent_id
calls
agents.id = calls.agent_info.id
agents.id = calls.transfers.from_agent.id
agents.id = calls.transfers.to_agent.id
chats
agents.id = chats.transfers.from_agent.id
agents.id = chats.transfers.to_agent.id
menus
agents.id = menus.agent_assignments.assignee.id
agents.id = menus.team_assignments.team.assignees.id
agents.teams.id = menus.team_assignments.team.id
teams
agents.teams.id = teams.id

agent_number

STRING

avatar_url

STRING

call_count

INTEGER

channels

ARRAY

channel_type

STRING

menu

OBJECT

chat_count

INTEGER

created_at

DATE-TIME

crm_authenticated

BOOLEAN

email

STRING

first_name

STRING

id

INTEGER

last_login_time

DATE-TIME

last_name

STRING

location

STRING

middle_name

STRING

online

BOOLEAN

roles

ARRAY

status

OBJECT

color

STRING

id

INTEGER

name

STRING

wfm_id

INTEGER

status_updated_at

DATE-TIME

teams

ARRAY

agents_count

INTEGER

deleted

BOOLEAN

id

INTEGER

name

STRING

parent_id

INTEGER

position

INTEGER

wrap_up

BOOLEAN

calls

The calls table contains info about calls.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

calls schema on GitHub

Join calls with on
agents
calls.agent_info.id = agents.id
calls.transfers.from_agent.id = agents.id
calls.transfers.to_agent.id = agents.id
agent_activity_logs
calls.agent_info.id = agent_activity_logs.agent_id
calls.transfers.from_agent.id = agent_activity_logs.agent_id
calls.transfers.to_agent.id = agent_activity_logs.agent_id
calls.id = agent_activity_logs.call_id
calls.participants.call_id = agent_activity_logs.call_id
chats
calls.agent_info.id = chats.transfers.from_agent.id
calls.transfers.from_agent.id = chats.transfers.from_agent.id
calls.transfers.to_agent.id = chats.transfers.from_agent.id
calls.agent_info.id = chats.transfers.to_agent.id
calls.transfers.from_agent.id = chats.transfers.to_agent.id
calls.transfers.to_agent.id = chats.transfers.to_agent.id
menus
calls.agent_info.id = menus.agent_assignments.assignee.id
calls.transfers.from_agent.id = menus.agent_assignments.assignee.id
calls.transfers.to_agent.id = menus.agent_assignments.assignee.id
calls.agent_info.id = menus.team_assignments.team.assignees.id
calls.transfers.from_agent.id = menus.team_assignments.team.assignees.id
calls.transfers.to_agent.id = menus.team_assignments.team.assignees.id

agent_info

OBJECT

agent_number

INTEGER

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

answer_type

STRING

assigned_at

DATE-TIME

call_duration

INTEGER

call_type

STRING

connected_at

DATE-TIME

created_at

DATE-TIME

deflection

STRING

deflection_details

ARRAY

call_id

INTEGER

deflection

STRING

from_menu_path

OBJECT

items_count

INTEGER

materialized_path

STRING

name

STRING

id

INTEGER

transfer_id

INTEGER

disconnected_by

STRING

end_user

OBJECT

id

INTEGER

identifier

STRING

out_contact_id

STRING

ends_at

DATE-TIME

fail_details

STRING

fail_reason

STRING

has_feedback

BOOLEAN

hold_duration

INTEGER

id

INTEGER

lang

STRING

menu_path

OBJECT

offer_events

ARRAY

casting_time

DATE-TIME

group

STRING

offer_type

STRING

out_ticket_id

STRING

out_ticket_url

STRING

outbound_number

STRING

participants

ARRAY

call_duration

INTEGER

call_id

INTEGER

connected_at

DATE-TIME

end_user_id

INTEGER

ended_at

DATE-TIME

fail_reason

STRING

hold_duration

INTEGER

id

INTEGER

status

STRING

type

STRING

user_id

INTEGER

photos

ARRAY

id

INTEGER

photo_type

STRING

url

STRING

queued_at

DATE-TIME

rating

STRING

recording_url

STRING

scheduled_at

DATE-TIME

selected_menu

OBJECT

deleted

BOOLEAN

hidden

BOOLEAN

id

INTEGER

menu_type

STRING

name

STRING

output_msg

STRING

parent_id

INTEGER

position

INTEGER

status

STRING

support_number

STRING

transfers

ARRAY

answer_type_path

STRING

assigned_at

DATE-TIME

call_duration

INTEGER

connected_at

DATE-TIME

created_at

DATE-TIME

deflection

STRING

fail_reason

STRING

from_agent

OBJECT

agent_number

INTEGER

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

from_menu_path

OBJECT

items_count

INTEGER

materialized_path

STRING

name

STRING

from_queue_priority_level

INTEGER

id

INTEGER

status

STRING

to_agent

OBJECT

agent_number

INTEGER

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

to_menu_path

STRING

to_queue_priority_level

STRING

updated_at

DATE-TIME

wait_duration

INTEGER

updated_at

DATE-TIME

verified

BOOLEAN

videos

ARRAY

id

INTEGER

url

STRING

voicemail_reason

STRING

voip_provider

STRING

wait_duration

INTEGER

chats

The chats table contains info about chats.

Replication Method

Key-based Incremental

Primary Key

id

Replication Key

updated_at

Useful links

chats schema on GitHub

Join chats with on
agents
chats.transfers.from_agent.id = agents.id
chats.transfers.to_agent.id = agents.id
agent_activity_logs
chats.transfers.from_agent.id = agent_activity_logs.agent_id
chats.transfers.to_agent.id = agent_activity_logs.agent_id
chats.id = agent_activity_logs.chat_id
chats.participants.chat_id = agent_activity_logs.chat_id
calls
chats.transfers.from_agent.id = calls.agent_info.id
chats.transfers.to_agent.id = calls.agent_info.id
chats.transfers.from_agent.id = calls.transfers.from_agent.id
chats.transfers.to_agent.id = calls.transfers.from_agent.id
chats.transfers.from_agent.id = calls.transfers.to_agent.id
chats.transfers.to_agent.id = calls.transfers.to_agent.id
menus
chats.transfers.from_agent.id = menus.agent_assignments.assignee.id
chats.transfers.to_agent.id = menus.agent_assignments.assignee.id
chats.transfers.from_agent.id = menus.team_assignments.team.assignees.id
chats.transfers.to_agent.id = menus.team_assignments.team.assignees.id

agent_info

STRING

assigned_at

DATE-TIME

average_response_time

INTEGER

chat_duration

INTEGER

chat_type

STRING

created_at

DATE-TIME

end_user

OBJECT

id

INTEGER

identifier

STRING

out_contact_id

STRING

ends_at

DATE-TIME

fail_reason

STRING

first_msg_sent_at

DATE-TIME

has_feedback

BOOLEAN

id

INTEGER

lang

STRING

last_msg_sent_at

DATE-TIME

longest_response_time

INTEGER

menu_path

OBJECT

message_count

INTEGER

offer_events

ARRAY

offer_type

STRING

out_ticket_id

STRING

out_ticket_url

STRING

participants

ARRAY

chat_duration

INTEGER

chat_id

INTEGER

connected_at

DATE-TIME

end_user_id

INTEGER

fail_reason

STRING

finished_at

DATE-TIME

id

INTEGER

status

STRING

type

STRING

user_id

STRING

photos

ARRAY

id

INTEGER

photo_type

STRING

url

STRING

rating

STRING

selected_menu

OBJECT

deleted

BOOLEAN

hidden

BOOLEAN

id

INTEGER

menu_type

STRING

name

STRING

output_msg

STRING

parent_id

INTEGER

position

INTEGER

status

STRING

transcript

BOOLEAN

transfers

ARRAY

answer_type_path

STRING

assigned_at

DATE-TIME

call_duration

INTEGER

connected_at

DATE-TIME

created_at

DATE-TIME

deflection

STRING

fail_reason

STRING

from_agent

OBJECT

agent_number

INTEGER

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

from_menu_path

OBJECT

items_count

INTEGER

materialized_path

STRING

name

STRING

from_queue_priority_level

INTEGER

id

INTEGER

status

STRING

to_agent

OBJECT

agent_number

INTEGER

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

to_menu_path

STRING

to_queue_priority_level

STRING

updated_at

DATE-TIME

wait_duration

INTEGER

updated_at

DATE-TIME

verified

BOOLEAN

videos

ARRAY

id

INTEGER

url

STRING

wait_duration

INTEGER

The menu_tree table contains info about menu trees.

Replication Method

Full Table

Primary Key

id

Useful links

menu_tree schema on GitHub

The menus table contains info about menus.

Replication Method

Key-based Incremental

Primary Key

id

Useful links

menus schema on GitHub

team_tree

The team_tree table contains info about team trees.

Replication Method

Full Table

Primary Key

id

Useful links

team_tree schema on GitHub

agents_count

INTEGER

deleted

BOOLEAN

id

INTEGER

name

STRING

parent_id

INTEGER

position

INTEGER

teams

The teams table contains info about teams.

Replication Method

Full Table

Primary Key

id

Useful links

teams schema on GitHub

Join teams with on
agents
teams.id = agents.teams.id
menus
teams.id = menus.team_assignments.team.id

agents_count

INTEGER

assignees

ARRAY

agent_number

STRING

avatar_url

STRING

first_name

STRING

id

INTEGER

last_name

STRING

name

STRING

deleted

BOOLEAN

id

INTEGER

name

STRING

parent_id

INTEGER

position

INTEGER

user_statuses

The user_statuses table contains info about user statuses.

Replication Method

Full Table

Primary Key

id

Useful links

user_statuses schema on GitHub

color

STRING

id

INTEGER

name

STRING

wfm_id

INTEGER


Questions? Feedback?

Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.