← Back to Guides GN Logo

📅 Schedule Management – User Guide

📅

Overview

1 of 8

The Schedule Management tool lets you view and manage Hours of Operation and Overrides for your Amazon Connect instances — directly from the portal, without needing access to the Connect console.

📋

View Schedules

See all Hours of Operation, their weekly hours, and timezone settings.

🎄

Holiday Overrides

Create one-time or recurring overrides for holidays, closures, and special hours.

đŸ’Ŧ

Closure Messages

Attach custom TTS messages to overrides — callers hear a specific message per holiday.

📊

Audit Trail

Every change is logged with who, what, and when for full traceability.

‏â„šī¸ Access: Schedule access is controlled via Cognito groups. Admins (ConnectTools-Admin) see all schedules. Other users only see schedules assigned to their groups via User Management → Groups → Schedule Access Groups.
💡

Key Concepts

2 of 8

Hours of Operation

An Hours of Operation (HoO) defines the standard weekly schedule for a queue or contact flow. Each day has open/close times and a timezone setting. For example: Monday–Friday 08:00–17:00 CET.

Overrides

An Override temporarily changes the schedule for a specific date range. Overrides take priority over the base schedule. Common uses:

  • Full closure — e.g. Christmas Day, New Year’s Day
  • Reduced hours — e.g. Christmas Eve closes at 14:00
  • Extended hours — e.g. Black Friday open until 22:00
  • Recurring — e.g. every Saturday closed (repeats weekly)

Closure Messages

Each override can have an optional Closure Message — a text string that your Connect flow reads aloud (TTS) to callers when the override is active. This lets you say “We are closed for Christmas and will reopen on January 2nd” instead of a generic “We are currently closed”.

How Connect Uses Them

In your Connect flow, the Check hours of operation block evaluates the HoO and returns one of these outcomes:

Outcome Meaning
True Within normal business hours — route to queue / IVR
False Outside normal business hours — play closed message
OpenedByOverride Normally closed, but an override has opened hours — route to queue
ClosedByOverride Normally open, but an override has closed it — play holiday message
💡 Key insight: ClosedByOverride is where closure messages become valuable — you can branch to a Lambda that looks up and plays a holiday-specific message instead of the generic closed prompt.
đŸ–Ĩī¸

Using the Portal

3 of 8

Navigating to Schedule Management

  1. 1 Log in to the GN Connect Tools Portal at aws-connect-tools.gn.com.
  2. 2 Click the Schedule Management card on the homepage.
  3. 3 Select your Region (US, EU, Tokyo, or Sydney) from the dropdown.
  4. 4 Select an Hours of Operation from the dropdown. The schedule details and overrides will load.

Viewing Schedule Details

The Schedule tab shows the weekly hours grid — each day with its open and close times. The Overrides tab lists all existing overrides with their date ranges, whether they are one-time or recurring, and whether they close the line or change the hours.

Audit Log

The Audit tab shows a history of all changes made to the selected schedule (and its overrides), including who made the change, what was changed, and when.

🎄

Creating Overrides

4 of 8

Adding a Holiday / Closure

  1. 1 On the Overrides tab, click Add Override.
  2. 2 Enter a Name (e.g. Christmas Day 2026) and Description.
  3. 3 Choose One-Time or Recurring.
  4. 4 Set the Effective From and Effective To dates.
  5. 5 Check Closed all day if the line should be completely closed. Otherwise, set the opening hours for each day in the range.
  6. 6 Optionally, enter a Closure Message (see next section).
  7. 7 Click Save Override.

Editing & Deleting Overrides

Click the Edit button on any override row to modify it. Click Delete to remove it permanently. Both actions are logged in the audit trail.

âš ī¸ Description is required: The Amazon Connect API requires a non-empty description for overrides. If left blank, the system will auto-fill it with a dash.
💡 Planning ahead: You can create overrides months in advance. They only take effect on their Effective From date. This is useful for scheduling the entire year’s holidays in one session.
đŸ’Ŧ

Closure Messages (TTS)

5 of 8

Closure messages let you attach a custom text-to-speech message to each override. When a caller rings during an active override, your Connect flow can read this message aloud instead of a generic “we are closed” prompt.

Setting Up a Closure Message

  1. 1 When creating or editing an override, check Closed all day.
  2. 2 The Closure Message (TTS) field will appear below.
  3. 3 Enter the message you want callers to hear. For example:
    Thank you for calling. We are closed today for Christmas and will reopen on Monday, December 28th. Happy holidays!
  4. 4 Save the override. The closure message is stored in DynamoDB, linked to this specific override.

How It Works

A dedicated Lambda function (ScheduleManagement-GetClosureMessage-{region}) is invoked by your Connect flow. It:

  • Receives the HoursOfOperationId from the contact attributes
  • Queries DynamoDB for all closure messages linked to that HoO
  • Finds the message whose date range covers today
  • Returns ClosureMessage, OverrideName, and HasClosureMessage
â„šī¸ Name or UUID: The Lambda accepts both the HoO UUID (e.g. 43cd7727-d15c-...) and the HoO name (e.g. GNH EU Support) in the contact attribute. If a name is passed, it resolves it to the UUID automatically. Using the UUID is recommended for performance.
💡 Multiple overrides: If multiple overrides exist for the same HoO, only the one whose date range covers today (and has a non-empty message) will be returned.
🔧

Connect Flow Setup

6 of 8

This section explains how to set up a Connect flow that checks hours of operation, handles override closures with custom messages, and plays prompts from Data Tables when the line is open.

Full Flow Diagram

â–ļ Entry 🕐 Check Hours
Mdenully-Temp
True / OpenedByOverride
📋 Data Table
Evaluate queries
🔊 Set Voice 🔈 Play Prompt
IVR Menu
ClosedByOverride
📝 Set Attribute
HoursOfOperationId
⚡ Invoke Lambda
GetClosureMessage
🔀 Check
HasClosureMessage
= true 🔈 Play
$.External.ClosureMessage
No Match 🔈 Play
“Out of hours closed”
False
🔈 Play
“Out of hours closed”
❌ Disconnect

Step-by-Step: Check Hours Block

  1. 1 Check hours of operation block:
    • Select your Hours of Operation (e.g. GNH EU Support)
    • Ensure Check Override is enabled (True)
    • This makes the block return OpenedByOverride and ClosedByOverride in addition to True/False
  2. 2 Branch configuration:
    True / OpenedByOverride → Route to your IVR / queue (the line is open)
    ClosedByOverride → Route to the closure message lookup (see next section)
    False → Play generic “out of hours” message and disconnect
    Error → Fall back to “out of hours” (safe default)
âš ī¸ Check Override must be True: If Check Override is not enabled, the block will only return True / False and will ignore all overrides entirely. Always set it to True.

Open Branch: Data Tables & Prompts

When the line is open (True or OpenedByOverride), you typically continue to your IVR menu. If you use Data Tables for prompt management, see the Prompt Management User Guide for detailed instructions on:

  • Setting up Data Tables with prompt columns
  • Using the Evaluate Data Table block to load prompts
  • Configuring Play Prompt blocks with SSML and dynamic references
  • Multi-language branching and voice selection
â„šī¸ Reference flow: In the example flow, the open branch uses Evaluate Data Table to load Welcome and Menu queries from a Data Table, then branches by language selection (press 1 for English, 2 for German) before playing the prompts via $.DataTables.Welcome.Prompt-EN / $.DataTables.Welcome.Prompt-DE.
⚡

Closure Message Flow Setup

7 of 8

This is the ClosedByOverride branch. It calls a Lambda to look up the holiday-specific closure message and plays it if one exists.

Detailed Flow

🕐 Check Hours
ClosedByOverride
📝 Set Attribute
HoursOfOperationId = UUID
⚡ Invoke Lambda
GetClosureMessage
🔀 Check Attribute
$.External.HasClosureMessage
= true
🔈 Play Prompt
$.External.ClosureMessage
❌ Disconnect
No Match (no message set)
🔈 Play Prompt
“Out of hours closed”
❌ Disconnect

Step-by-Step

  1. 1 Set contact attributes block:
    Destination: User Defined
    Key: HoursOfOperationId
    Value: The UUID of the Hours of Operation being checked
    Example: 43cd7727-d15c-46b7-8409-23f25d2dc011
  2. 2 Invoke AWS Lambda function block:
    Function: ScheduleManagement-GetClosureMessage-{region}
    Timeout: 3 seconds (recommended)
    Response type: String Map
    • On Error: Route to generic closed message (safe fallback)
  3. 3 Check contact attributes block:
    Type: External
    Attribute: HasClosureMessage
    Condition: Equalstrue
  4. 4 Play prompt block (true branch):
    Interpret as: SSML
    Source: Dynamic
    Attribute: External > ClosureMessage
    (Reference: $.External.ClosureMessage)
  5. 5 Play prompt block (no match branch):
    • Set to Text with your generic closed message
    • Example: We are currently closed. Please try again during business hours.
  6. 6 Disconnect block: After playing the message, disconnect the call.

Finding the HoO UUID

You can find the UUID of each Hours of Operation in the Schedule Management portal. When you select an HoO from the dropdown, the URL or the page data will show the ID. Alternatively, use the Amazon Connect console under Routing → Hours of operation.

Lambda per Region

Region Lambda Function Name
US (us-east-1) ScheduleManagement-GetClosureMessage-us-east-1
EU (eu-central-1) ScheduleManagement-GetClosureMessage-eu-central-1
Tokyo (ap-northeast-1) ScheduleManagement-GetClosureMessage-ap-northeast-1
Sydney (ap-southeast-2) ScheduleManagement-GetClosureMessage-ap-southeast-2
âš ī¸ Must use the correct region: Use the Lambda in the same region as your Connect instance. The Lambda reads from a region-specific DynamoDB table.

Lambda Return Values

Attribute Type Description
$.External.ClosureMessage String The TTS message text (empty if none)
$.External.OverrideName String Name of the active override (e.g. “Christmas Day”)
$.External.HasClosureMessage String true or false
đŸŽ¯

Tips & Pitfalls

8 of 8

Common Mistakes

âš ī¸ Wrong HoO ID in Set Attribute: The HoursOfOperationId contact attribute must match the HoO that your Check hours block is evaluating. If you use a different ID (e.g. a Data Table ID), the Lambda will find no closure messages and return HasClosureMessage = false.
âš ī¸ Check Override not enabled: If Check Override is not set to True on the Check Hours block, overrides are completely ignored. The block will only return True/False, and the ClosedByOverride branch will never fire.
âš ī¸ Lambda not whitelisted: The Connect flow can only invoke Lambdas that have been added to the Connect instance’s resource-based policy. In the Connect console, go to Flows → AWS Lambda and add the ScheduleManagement-GetClosureMessage-{region} function.

Best Practices

💡 Plan holidays annually: At the beginning of each year, create all holiday overrides in advance. Each can have its own closure message. This avoids last-minute changes.
💡 Test with today’s date: When testing, create an override covering today’s date. The Lambda only returns messages for overrides active today.
💡 Fallback always: Always have a generic “out of hours” message on the No Match branch. If no closure message is configured, or the Lambda errors, the caller still hears something meaningful.
💡 Use UUID over name: Although the Lambda supports HoO names, using the UUID is faster (no extra API call). Copy the UUID from the portal or the Connect console.
â„šī¸ Prompt Management integration: The open branches of your flow likely use Data Tables for IVR prompts. See the Prompt Management User Guide for setup instructions on Evaluate Data Table, Play Prompt, and multi-language flows.