在 Amazon Connect 分析資料湖中排程資料 - Amazon Connect

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon Connect 分析資料湖中排程資料

本主題詳細說明 Amazon Connect 分析資料湖排程資料表中的內容。資料表列出內容的欄、類型和描述。

有兩種方式可存取分析資料湖並設定要共用的資料:

如果您無法使用「選項 1」存取排程資料表,請嘗試使用「選項 2」。

員工排程設定檔

資料表名稱:staff_scheduling_profile

複合主鍵:{instance_id, agent_arn, staff_scheduling_profile_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
agent_arn string 客服人員的 ARN。
staff_scheduling_profile_version bigint 員工排程設定檔版本。
instance_arn string Amazon Connect 執行個體的 ARN。
staffing_group_arn string 指派給客服人員之人員配置群組的 ARN。
start_timestamp 時間戳記 在「員工規則」中設定的客服人員 StartTimestamp (排程只會在此時間戳記之後產生)。
end_timestamp 時間戳記 在「員工規則」中設定的客服人員 EndTimestamp (產生排程的時間不會超過此時間戳記)。
shift_profile_arn string 在「員工規則」中設定之已指派客服人員的輪班設定檔 ARN。
timezone string 為客服人員設定的時區。
is_deleted Boolean 如果客服人員已刪除,請設定為 True。否則設定為 False。
last_updated_timestamp 時間戳記 建立/更新/刪除員工排程設定檔時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

輪班活動

資料表名稱:shift_activities

複合主鍵:{instance_id, shift_activity_arn, shift_activity_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
shift_activity_arn string 輪班活動的 ARN。
shift_activity_version bigint 輪班活動版本。
instance_arn string Amazon Connect 執行個體的 ARN。
shift_activity_name string 輪班活動的名稱。
type string 輪班活動的類型。可能的值為:PRODUCTIVE、NON_PRODUCTIVE 和 LEAVE。
sub_type string 輪班活動的子類型。這僅適用於 NON_PRODUCTIVE 類型活動。可能的值為:BREAK_OR_MEAL 和 NONE。
is_adherence_tracked Boolean 如果輪班活動設定為遵循追蹤,則設定為 True。否則設定為 False。
is_paid Boolean 如果輪班活動設定為已支付,則設定為 True。否則設定為 False。
is_deleted Boolean 如果刪除輪班活動,則設定為 True。否則設定為 False。
last_updated_timestamp 時間戳記 建立/更新/刪除輪班活動時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

輪班設定檔

資料表名稱:shift_profiles

複合主鍵:{instance_id, shift_profile_arn, shift_profile_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
shift_profile_arn string 輪班設定檔的 ARN。
shift_profile_version bigint 輪班設定檔版本。
instance_arn string Amazon Connect 執行個體的 ARN。
shift_profile_name string 輪班設定檔的名稱。
is_deleted Boolean 如果刪除輪班設定檔,則設定為 True。否則設定為 False。
last_updated_timestamp 時間戳記 建立/更新/刪除輪班設定檔時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

人員配置群組

資料表名稱:staffing_groups

複合主鍵:{instance_id, staffing_group_arn, staffing_group_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
staffing_group_arn string 人員配置群組的 ARN。
staffing_group_version bigint 人員配置群組版本。
instance_arn string Amazon Connect 執行個體的 ARN。
staffing_group_name string 人員配置群組的名稱。
is_deleted Boolean 如果刪除人員配置群組,則設定為 True。否則設定為 False。
last_updated_timestamp 時間戳記 建立/更新/刪除人員配置群組時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

人員配置群組 - 預測群組

資料表名稱:staffing_group_forecast_groups

複合主鍵:{instance_id, staffing_group_arn, staffing_group_version, forecast_group_arn}

應透過在 staffing_group_arnstaffing_group_version 上聯結 staffing_groups 資料表來查詢此資料表。

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
staffing_group_arn string 人員配置群組的 ARN。
staffing_group_version bigint 人員配置群組版本。
forecast_group_arn string 與人員配置群組相關聯的預測群組 ARN。
instance_arn string Amazon Connect 執行個體的 ARN。
is_deleted Boolean 當人員配置群組 - 預測群組關聯有效時,設定為 False。
last_updated_timestamp 時間戳記 建立/更新人員配置群組時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

人員配置群組 - 主管

資料表名稱:staffing_group_supervisors

複合主鍵:{instance_id, staffing_group_arn, staffing_group_version, supervisor_arn}

應透過在 staffing_group_arnstaffing_group_version 上聯結 staffing_groups 資料表來查詢此資料表。

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
staffing_group_arn string 人員配置群組的 ARN。
staffing_group_version bigint 人員配置群組版本。
supervisor_arn string 與人員配置群組相關聯之主管的客服人員 ARN。
instance_arn string Amazon Connect 執行個體的 ARN。
is_deleted Boolean 當人員配置群組 - 預測群組關聯有效時,設定為 False。
last_updated_timestamp 時間戳記 建立/更新人員配置群組時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工輪班

資料表名稱:staff_shifts

複合主鍵:{instance_id, shift_id, shift_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
shift_id string 輪班的 ID。
shift_version bigint 輪班版本。
instance_arn string Amazon Connect 執行個體的 ARN。
agent_arn string 客服人員的 ARN。
shift_start_timestamp 時間戳記 輪班開始時的時間戳記。
shift_end_timestamp 時間戳記 輪班結束時的時間戳記。
created_timestamp 時間戳記 建立輪班時的時間戳記。
is_deleted Boolean 如果刪除輪班,則設定為 True。否則設定為 False。
last_updated_timestamp 時間戳記 建立/更新/刪除輪班時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工輪班活動

資料表名稱:staff_shift_activities

複合主鍵:{instance_id, shift_id, shift_version, activity_id}

應透過在 shift_idshift_version 上聯結 staff_shifts 資料表來查詢此資料表。

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
shift_id string 輪班的 ID。
shift_version bigint 輪班版本。
activity_id string 活動的 ID。
instance_arn string Amazon Connect 執行個體的 ARN。
activity_start_timestamp 時間戳記 活動開始時的時間戳記。
activity_end_timestamp 時間戳記 活動結束時的時間戳記。
shift_activity_arn string 輪班活動的 ARN。如果 shift_activity_arn 為 null,則表示 'Work' 活動。
activity_status string 活動的狀態。如果活動與休假重疊,這會設定為 INACTIVE。
is_overtime Boolean 如果活動是加班的一部分,則設定為 True。否則設定為 False。
is_deleted Boolean 當輪班活動有效時,設定為 False。
last_updated_timestamp 時間戳記 建立/更新輪班時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工休假餘額變更

資料表名稱:staff_timeoff_balance_changes

複合主鍵:{instance_id, agent_arn, shift_activity_arn, timeoff_balance_version}

資料行 Type 說明
instance_arn string Amazon Connect 執行個體的 ARN。
instance_id string Amazon Connect 執行個體的 ID。
account_id string AWS 帳戶的 ID。
agent_arn string 客服人員的 ARN。
shift_activity_arn string 配置此餘額之輪班活動的 ARN。
timeoff_balance_version bigint 休假餘額版本,用來表示變更順序的遞增數字。
balance_update_source string 餘額更新的來源。可能的值為 TIME_OFF_BALANCE_UPLOAD、CONNECT_TIME_OFF_REQUEST、SCHEDULE_PUBLISH、CSV_TIME_OFF_BALANCE_DELETION、TIME_OFF_BALANCE_BACKFILL、SYSTEM_UPDATE
timeoff_id string 造成此餘額變更的休假 ID,如果有的話。
last_updated_by string 造成此餘額變更的客服人員 ARN,如果有的話。
balance_change_in_hours double 透過此變更 (以小時為單位) 更新的休假餘額量。如果此值為正數,則此變更會計入休假餘額。如果此值為負數,則此變更會扣除休假餘額。此值未針對任何餘額上傳和刪除事件定義。
remaining_balance_in_hours double 此變更事件之後的剩餘休假餘額時數。此值未針對任何餘額刪除事件定義。
last_created_timestamp 時間戳記 建立休假餘額變更記錄時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工休假

資料表名稱:staff_timeoffs

複合主鍵:{instance_id, timeoff_id, agent_arn, timeoff_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
timeoff_id string 休假的 ID。
agent_arn string 客服人員的 ARN。
timeoff_version bigint 休假版本。
instance_arn string Amazon Connect 執行個體的 ARN。
timeoff_type string 休假的類型。可能的值為:TIME_OFF 和 VOLUNTARY_TIME_OFF。
timeoff_start_timestamp 時間戳記 休假開始時的時間戳記。
timeoff_end_timestamp 時間戳記 休假結束時的時間戳記。
timeoff_status string 休假的狀態。可能的值為:PENDING_CREATE、PENDING_UPDATE、PENDING_CANCEL、PENDING_ACCEPT、PENDING_APPROVE、PENDING_DECLINE、APPROVED、ACCEPTED、REJECTED、CANCELLED、WAITING_ACCEPT 和 WAITING_APPROVE。WAITING 狀態表示休假正在等待使用者動作。PENDING 狀態表示休假正在等待使用者動作的系統處理。
shift_activity_arn string 用於休假之輪班活動的 ARN。
effective_timeoff_hours double 有效休假時數總計。有效休假時數是根據休假扣除邏輯計算的。這只會針對 TIME_OFF 類型設定。
last_updated_timestamp 時間戳記 建立/更新/刪除休假時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工休假間隔

資料表名稱:staff_timeoff_intervals

複合主鍵:{instance_id, timeoff_id, timeoff_version, interval_id}

應透過在 timeoff_idtimeoff_version 上聯結 staff_timeoffs 資料表來查詢此資料表。

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
timeoff_id string 休假的 ID。
timeoff_version bigint 休假版本。
interval_id string 休假間隔的 ID。
instance_arn string Amazon Connect 執行個體的 ARN。
timeoff_interval_start_timestamp 時間戳記 特定休假間隔開始時的時間戳記。
timeoff_interval_end_timestamp 時間戳記 特定休假間隔結束時的時間戳記。
interval_effective_timeoff_hours double 此特定休假間隔的有效休假時數。有效休假時數是根據休假扣除邏輯計算的。
last_updated_timestamp 時間戳記 建立/更新/刪除休假時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工需求群組

資料表名稱: staff_demand_group

複合主鍵:{instance_id, agent_arn, demand_group_arn, staff_demand_group_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
agent_arn string 客服人員的 ARN。
demand_group_arn string 需求群組的 ARN。
staff_demand_group_version Long 此代理程式需要群組關聯的版本
priority string 此代理程式需求群組的優先順序。可以是低、中或高
instance_arn string Amazon Connect 執行個體的 ARN。
is_override Boolean 如果這是客服人員至需求群組關聯是客服人員層級覆寫,則設定為「true」。
is_deleted Boolean 如果刪除客服人員與需求群組的關聯,則設為 true。
last_updated_timestamp 時間戳記 建立/更新客服人員至需求群組關聯的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

人員配置群組需求群組

資料表名稱: staffing_group_demand_group

複合主鍵:{instance_id, staffing_group_arn, demand_group_arn, staffing_group_demand_group_version}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
staffing_group_arn string 人員配置群組的 ARN。
demand_group_arn string 需求群組的 ARN。
staffing_group_demand_group_version Long 此人員配置群組對需求群組關聯的版本
priority string 此人員配置群組之需求群組的優先順序。可以是低、中或高
instance_arn string Amazon Connect 執行個體的 ARN。
is_deleted Boolean 如果刪除人員配置群組與需求群組的關聯,則設為 true。
last_updated_timestamp 時間戳記 created/updated/deleted人員配置群組至需求群組關聯的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

員工輪班活動分配

資料表名稱: staff_shift_activity_allocations

複合主鍵:{instance_id, shift_id, shift_version, activity_id, demand_group_arn}

資料行 Type 說明
instance_id string Amazon Connect 執行個體的 ID。
shift_id string 輪班的 ID。
shift_version Long 輪班版本。
activity_id string 活動的 ID。
demand_group_arn string 需求群組的 ARN。
foecast_group_arn string 預測群組的 ARN。
allocation_percentage double 活動對需求群組的百分比分配。
is_deleted Boolean 當 StaffingGroup-ForecastGroupassociation 有效時,設定為 False。
last_updated_timestamp 時間戳記 建立/更新人員配置群組時的時間戳記。
data_lake_last_processed_timestamp 時間戳記 時間戳記,顯示資料湖上次觸碰記錄的時間。這可能包括轉換和回填。此欄位無法用來判斷可靠的資料新鮮度。

資料結構描述

以下是實體關係圖,顯示 Amazon Connect 分析資料湖中排程資料表之間的結構和關係。

每個資料表會顯示其主索引鍵和屬性及其資料類型。圖表說明這些資料表如何透過外部索引鍵關係相互關聯,提供排程資料模型的全面檢視。

實體關係圖,顯示 Amazon Connect 分析資料湖中排程資料表之間的結構和關係。

範例查詢

1. 查詢以取得在特定預測群組上工作之客服人員的所有排程輪班活動

SELECT * FROM agent_scheduled_shift_activities_view where forecast_group_name = 'AnyDepartmentForecastGroup'

完成下列步驟以建立上述的 agent_scheduled_shift_activities_view

步驟 1:建立檢視以取得主管名稱

CREATE OR REPLACE VIEW "latest_supervisor_names_view" AS SELECT   staffing_group_arn , array_agg(supervisor_name ORDER BY supervisor_name ASC) supervisor_names FROM   (    SELECT      s.staffing_group_arn    , CONCAT(u.first_name, ' ', u.last_name) supervisor_name    FROM      ((       SELECT         staffing_group_arn       , supervisor_arn       FROM         (          SELECT            *          , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency          FROM            staffing_group_supervisors          WHERE (instance_id = 'YourAmazonConnectInstanceId')       )  t       WHERE (recency = 1)    )  s    INNER JOIN USERS u ON (s.supervisor_arn = u.user_arn)) ) GROUP BY staffing_group_arn

步驟 2:建立檢視以取得與客服人員相關聯的人員配置群組和預測群組

CREATE OR REPLACE VIEW "latest_agent_staffing_group_forecast_group_view" AS WITH   latest_staff_scheduling_profile AS (    SELECT      agent_arn    , staffing_group_arn    , last_updated_timestamp    FROM      (       SELECT         *       , RANK() OVER (PARTITION BY agent_arn ORDER BY staff_scheduling_profile_version DESC) recency       FROM         staff_scheduling_profile       WHERE ((instance_id = 'YourAmazonConnectInstanceId') AND (is_deleted = false))    )  t    WHERE (recency = 1) ) , latest_staffing_groups AS (    SELECT      staffing_group_name    , staffing_group_arn    FROM      (       SELECT         *       , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency       FROM         staffing_groups       WHERE (instance_id = 'YourAmazonConnectInstanceId')    )  t    WHERE (recency = 1) ) , latest_forecast_groups AS (    SELECT      forecast_group_arn    , forecast_group_name    FROM      (       SELECT         *       , RANK() OVER (PARTITION BY forecast_group_arn ORDER BY forecast_group_version DESC) recency       FROM         forecast_groups       WHERE (instance_id = 'YourAmazonConnectInstanceId')    )  t    WHERE (recency = 1) ) , latest_staffing_group_forecast_groups AS (    SELECT      staffing_group_arn    , forecast_group_arn    FROM      (       SELECT         *       , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency       FROM         staffing_group_forecast_groups       WHERE (instance_id = 'YourAmazonConnectInstanceId')    )  t    WHERE (recency = 1) ) SELECT   ssp.agent_arn , U.agent_username AS username , U.agent_routing_profile_id AS routing_profile_id , CONCAT(u.first_name, ' ', u.last_name) agent_name , fg.forecast_group_arn , fg.forecast_group_name , sg.staffing_group_arn , sg.staffing_group_name FROM  latest_staff_scheduling_profile ssp INNER JOIN latest_staffing_groups sg ON ssp.staffing_group_arn = sg.staffing_group_arn INNER JOIN latest_staffing_group_forecast_groups sgfg ON ssp.staffing_group_arn = sgfg.staffing_group_arn INNER JOIN latest_forecast_groups fg ON fg.forecast_group_arn = sgfg.forecast_group_arn INNER JOIN USERS u ON ssp.agent_arn = u.user_arn

步驟 3:取得最新的輪班活動

CREATE OR REPLACE VIEW "latest_shift_activities_view" AS SELECT   shift_activity_arn , shift_activity_name , shift_activity_version , type , sub_type , is_adherence_tracked , is_paid , last_updated_timestamp FROM   (    SELECT      *    , RANK() OVER (PARTITION BY shift_activity_arn ORDER BY shift_activity_version DESC) recency    FROM      shift_activities    WHERE (instance_id = 'YourAmazonConnectInstanceId') )  t WHERE (recency = 1)

步驟 4:建立檢視以取得客服人員排程輪班活動

CREATE OR REPLACE VIEW "agent_scheduled_shift_activities_view" AS WITH   latest_staff_shifts AS (    SELECT      agent_arn    , shift_id    , shift_version    , shift_start_timestamp    , shift_end_timestamp    , created_timestamp    , last_updated_timestamp    , data_lake_last_processed_timestamp    , recency    FROM      (       SELECT         RANK() OVER (PARTITION BY shift_id ORDER BY shift_version DESC) recency       , *       FROM         staff_shifts sa       WHERE (instance_id = 'YourAmazonConnectInstanceId')    )  t    WHERE ((recency = 1) AND (is_deleted = false)) ) SELECT   asgfg.forecast_group_name , array_join(sn.supervisor_names, ',') supervisor_names , s.agent_arn , u.first_name , u.last_name , asgfg.staffing_group_name , ssa.activity_id , (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.shift_activity_name, 'Work') ELSE sa.shift_activity_name END) shift_activity_name , s.shift_start_timestamp , s.shift_end_timestamp , (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.type, 'PRODUCTIVE') ELSE sa.type END) type , (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.is_paid, true) ELSE sa.is_paid END) is_paid , ssa.activity_start_timestamp , ssa.activity_end_timestamp , ssa.last_updated_timestamp , ssa.data_lake_last_processed_timestamp , u.agent_username as username , u.agent_routing_profile_id as routing_profile_id FROM   staff_shift_activities ssa INNER JOIN latest_staff_shifts s ON s.shift_id = ssa.shift_id AND s.shift_version = ssa.shift_version INNER JOIN USERS u ON s.agent_arn = u.user_arn INNER JOIN latest_agent_staffing_group_forecast_group_view asgfg ON s.agent_arn = asgfg.agent_arn LEFT JOIN latest_shift_activities_view sa ON sa.shift_activity_arn = ssa.shift_activity_arn INNER JOIN latest_supervisor_names_view sn ON sn.staffing_group_arn = asgfg.staffing_group_arn WHERE (ssa.is_deleted = false) AND (COALESCE(ssa.activity_status, ' ') <> 'INACTIVE') AND (ssa.instance_id = 'YourAmazonConnectInstanceId')

2. 查詢以取得特定預測群組中客服人員的所有休假請求

SELECT * FROM agent_timeoff_report_view where forecast_group_name = 'AnyDepartmentForecastGroup'

使用下列查詢來建立上述的 agent_timeoff_report_view

CREATE OR REPLACE VIEW "agent_timeoff_report_view" AS WITH latest_staff_timeoffs AS (         SELECT t1.*,             CAST((t1.effective_timeoff_hours * 60) AS INT) total_effective_timeoff_minutes         FROM (                 SELECT RANK() OVER (                         PARTITION BY timeoff_id                         ORDER BY timeoff_version DESC                     ) recency,                     agent_arn,                     timeoff_id,                     shift_activity_arn,                     timeoff_status,                     timeoff_version,                     effective_timeoff_hours,                     timeoff_start_timestamp,                     timeoff_end_timestamp,                     last_updated_timestamp,                     data_lake_last_processed_timestamp                 FROM staff_timeoffs                 WHERE (                         instance_id = 'YourAmazonConnectInstanceId'                     )             ) t1         WHERE (recency = 1)     ) SELECT asgfg.forecast_group_name,     to.agent_arn,     asgfg.agent_name,     asgfg.staffing_group_name,     asgfg.username,     sa.shift_activity_name,     to.timeoff_start_timestamp,     to.timeoff_end_timestamp,     to.timeoff_status,     array_join(sn.supervisor_names, ',') AS supervisor_names,     sa.is_paid,     to.last_updated_timestamp,     to.data_lake_last_processed_timestamp,     u.agent_routing_profile_id AS routing_profile_id,     to.timeoff_id,     to.shift_activity_arn,     to.total_effective_timeoff_minutes FROM latest_staff_timeoffs to     INNER JOIN latest_agent_staffing_group_forecast_group_view asgfg ON asgfg.agent_arn = to.agent_arn     INNER JOIN latest_shift_activities_view sa ON sa.shift_activity_arn = to.shift_activity_arn     INNER JOIN latest_supervisor_names_view sn ON sn.staffing_group_arn = asgfg.staffing_group_arn     INNER JOIN users u ON u.user_arn = to.agent_arn