How to Set Up Agent Schedule
Build an agent schedule from scratch — select an AI assistant, write a prompt, configure the schedule, and set up delivery.
This page demonstrates how to create an agent schedule. If you're not yet familiar with what agent scheduling does, read Agent Scheduling first.
Prerequisites
Before creating a schedule, confirm the following:
You have created an AI assistant in Agent mode — Agent scheduling only supports AI assistants in Agent mode. Non-Agent mode assistants will not appear in the dropdown.
The AI assistant is connected to at least one conversation platform — The schedule uses a conversation platform as its container to run the Agent.
You have Agent Scheduling access — If you don't see the "Agent Scheduling" menu, contact your organization admin to check permission settings.
Navigate to Agent Scheduling
From the left menu, click AI Features → Agent Scheduling. You'll see the schedule list:
Column descriptions:
Name
The schedule's identifier
AI Assistant
The AI assistant used by this schedule
Execution Mode
Context mode or independent mode
Schedule
Schedule type (Cron, interval, one_shot) and timing
Delivery
💬 = send to conversation, 🔗 = Webhook, auto = automatically created dedicated conversation
Last Execution
Time of the most recent execution
Status
Active / Paused
Create a Schedule
1. Click New Schedule
Click the New Schedule button in the upper-right corner to open the form. The form has four tabs: Basic Info, Prompt, Schedule Settings, and Delivery Settings.
2. Fill in Basic Info
AI Assistant
✅
Select an existing AI assistant (only Agent mode assistants are shown)
Name
✅
The schedule's identifier, e.g., "Daily Customer Service Summary"
Execution Mode
✅
Choose context mode or independent mode
Conversation Platform
✅
The conversation platform container used during execution; context mode uses it to accumulate Agent memory (used internally — it won't appear in the customer service conversation list)
Save Results to Context
—
Only shown in context mode. Only affects memory for the next execution (doesn't affect whether you can view results — all past responses are retained on the execution log page)
How to choose the execution mode?
Context mode: Retains memory across executions. Suitable for tasks that need to accumulate information, such as continuously tracking complaint resolution progress or monitoring data trends.
Independent mode: Starts fresh each time with no previous memory. Suitable for standalone recurring tasks, such as daily reports or periodic statistics.
The AI Assistant, Execution Mode, and Conversation Platform fields cannot be changed after creation. To change them, you must delete the schedule and create a new one. Other fields (name, prompt, schedule time, delivery method) can be edited at any time.
3. Write the Prompt
In the prompt field, describe what the Agent should do each time it runs. The prompt is sent to the Agent as its instruction, and the Agent will use its attached tools and skills to complete the task.
Prompt example:
Tips for writing prompts:
Clearly describe the task objective and output format
If you need the Agent to use a specific tool, guide it in the prompt (e.g., "Query the orders table in the database")
Avoid relying on external state beyond the current time; each execution should be an independent task (unless using context mode)
4. Configure Schedule Timing
There are three schedule types:
Use a standard 5-field cron expression to set a precise schedule: minute hour day month weekday.
0 9 * * 1-5
Monday through Friday at 9:00 AM
0 */2 * * *
Every 2 hours on the hour
30 8 * * *
Every day at 8:30 AM
0 0 1 * *
First day of every month at midnight
Must be paired with the "Timezone" field, which defaults to Asia/Taipei (Taipei time).
Execute once every fixed interval, configured by combining four fields — days/hours/minutes/seconds:
The interval must be at least 1 second
For example, to run "every 30 minutes," enter
30in the "Minutes" field and0in all othersInterval mode does not use the timezone field (since it's a relative time, not an absolute time)
Execute once at a specified time, after which the schedule automatically ends:
Select a date and time precise to the second
Must be paired with the "Timezone" field
After execution, the schedule remains in the list for viewing records but will not run again
Other fields:
Enabled
Whether to activate the schedule immediately. When off, the schedule is "Paused" and won't trigger
Maximum Executions
Limit the maximum number of times the schedule runs; it will automatically pause when the limit is reached. Leave empty for unlimited
5. Configure Delivery
Where should the results go after execution? Configure this in this tab.
This tab configures where results are actively pushed to (specified conversations, Webhook endpoints). Even if you don't set any delivery targets, the complete results of each execution are still retained on the Execution Log page — they just won't be actively pushed elsewhere.
Conversation
Click Add Conversation and select a conversation from the dropdown. Results will be sent as a bot message. You can add multiple conversations.
Webhook
Click Add Webhook URL. Results will be sent as a POST request to your external URL (must start with http:// or https://). Common use cases:
Integrate with Slack / Discord / LINE
Write to your own system for further processing
Trigger other automation workflows
It's fine not to set any delivery targets — execution results are always retained on the Execution Log page. But if you want your team/colleagues to passively receive results (e.g., push to Slack), you need to set at least one conversation or Webhook, otherwise no one will be notified.
6. Save and Enable
Click Confirm to save. If the "Enabled" toggle is on, the schedule will immediately start triggering according to the configured timing.
What Happens After Saving?
After the schedule is saved successfully, you'll immediately see the following:
The modal closes and the schedule appears in the list
Status shows "Active" (green tag), or "Paused" (if the enabled toggle was off)
The "Last Execution" column is empty until the first trigger, after which it updates with the execution time
The system does two things in the background (no UI changes visible, but happening behind the scenes)
Registers the schedule with the backend scheduler to automatically trigger at the configured time
Context mode also creates an internal system conversation container to accumulate Agent memory (this container won't appear in the Customer Service Conversations list)
Wait for the schedule to trigger
Cron / Interval: Executes automatically at the configured time, e.g., cron
0 9 * * 1-5triggers at the next Monday–Friday 9:00 AMOne-time: Executes once at the configured time
Don't want to wait? Click the ▶️ Run Now button in the list to trigger an immediate execution for testing
During execution
The list status remains "Active," and the "Last Execution" column updates with each run
Each execution creates a record on the Execution Log page (with the complete Agent response)
If you added conversations or Webhooks in "Delivery Settings," results are also sent to those targets
For details on where to view results, see Where Do Results Go? below
When the task ends
Reaches the "Maximum Executions" limit → automatically switches to "Paused" and stops triggering
One-time execution completes → the schedule remains in the list but won't trigger again
Where Do Results Go?
After a schedule runs, the Agent's response appears in the following locations. The Execution Log page is the primary entry point for viewing history — regardless of execution mode, every run leaves a complete record here. Other locations depend on your delivery settings.
1. Execution Log Page (Primary Entry Point)
Each execution generates a record. This is the most reliable way to view historical results.
How to access:
Agent Scheduling list → Click 🕘 View Execution Log on the schedule's row → Enter the execution history page → Click 👁 View Details on a specific record
You'll see:
Execution status (Success / Failed / Partial Success)
Start time, completion time
Complete Agent response (even if subsequent delivery failed, the content is still preserved here)
Error messages on failure
2. Your Specified Conversations (Conversations Added in Delivery Settings)
Execution results are sent as Agent messages into these conversations, just like messages seen by customers/colleagues.
How to find:
Customer Service Conversations → Enter the conversation you added in delivery settings → The message will be at the latest position.
3. Webhook URLs (URLs Added in Delivery Settings)
Execution results are sent as HTTP POST to your external URL. Body is JSON:
Technical details:
Content-Type:
application/jsonTimeout: 30 seconds (the Webhook endpoint must respond with 2xx within 30 seconds, otherwise it's treated as failed)
Failures are recorded in the execution log's "Error Message" field (execution log status becomes "Partial Success"), but no retry is attempted
What Does the "Save Results to Context" Toggle Do?
This toggle only affects the memory for the next execution in context mode — it doesn't affect whether you can view results.
On (default)
The previous prompt and Agent response are carried forward as conversation history for the next run, allowing the Agent to continue the context
Off
No messages are retained per execution, effectively behaving like independent mode
Regardless of the toggle state, the Execution Log page always retains the complete response from each run — this toggle doesn't affect your ability to view history.
Summary: Results Visibility Reference Table
Context mode + Save results to context (default)
✅
✅ If configured
✅ If configured
✅ With memory
Context mode + Don't save results
✅
✅ If configured
✅ If configured
❌ No memory
Independent mode
✅
✅ If configured
✅ If configured
❌ No memory
Why is there no "Dedicated Conversation" entry point? Context mode creates a dedicated backend conversation to accumulate memory, but this conversation currently does not appear in the Customer Service Conversations list — it's an internal system container, not a conversation for human agents to handle. To view historical results, go to the Execution Log.
Full Example: Daily Customer Service Summary
Below is an end-to-end example showing how to create a schedule that automatically compiles the previous day's customer service summary every morning at 9:00 AM and sends the results to Slack.
Scenario
Every morning before work, you want the AI assistant to compile all unresolved complaints from yesterday, create a summary, and send it to the team's Slack #customer-support channel so the customer service manager can see it as soon as they open Slack.
Preparation
An AI assistant in Agent mode, with tools attached that can query complaint data (e.g., database tool or customer service system API tool)
A connected conversation platform (as the schedule's execution container)
A Slack incoming webhook URL (to receive results)
Configuration
Basic Info:
AI Assistant
Customer Service AI Manager
Name
Daily Complaint Summary - 9:00
Execution Mode
Independent mode (compile independently each day, no need to remember the previous day)
Conversation Platform
Internal Customer Service
Prompt:
Schedule Settings:
Schedule type:
CronCron expression:
0 9 * * 1-5(Monday through Friday at 9:00 AM)Timezone:
Asia/TaipeiEnabled: On
Maximum executions: Leave empty (run continuously)
Delivery Settings:
Conversation: Don't add extra conversations (the Execution Log page already retains the Agent's complete output — no need to send it to a customer service conversation and take up space)
Webhook URL:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXX
After Saving
Monday at 9:00 AM (first trigger): The schedule triggers automatically and the Agent starts querying and compiling
Within ~30 seconds (depending on Agent processing speed):
The team's Slack #customer-support channel receives the summary via Webhook push (POST body is
{"content": "..."})The "Last Execution" in the schedule list updates to
2026-04-20 09:00:12
Want to review what the Agent produced? Two places:
Execution Log page (primary entry): Agent Scheduling → Click the schedule's 🕘 → Click 👁 → View the complete bot response and token usage
Slack: Go directly to the #customer-support channel (this is the Webhook endpoint you configured)
Tuesday, Wednesday… ongoing execution: Triggers automatically every weekday at 9:00 AM with no further human intervention needed
Troubleshooting
Slack didn't receive a message → First check the Execution Log page to confirm the execution status. If "Failed," check the error message. If "Success" but Slack didn't receive it, verify the Webhook URL is correct and check for Slack rate limits
Summary content doesn't match expectations → Check the Agent's actual output in the execution log details, then adjust the prompt
Schedule didn't trigger → See the "FAQ" section below
Manage Existing Schedules
Back in the schedule list, the action area on the right side of each row provides these functions:
✏️
Edit
Modify schedule content (except AI Assistant, Execution Mode, and Conversation Platform)
🕘
View Execution Log
Enter the schedule's execution history page
▶️
Run Now
Trigger an immediate execution without waiting for the scheduled time
⏸️ / ⏻
Pause / Enable
Toggle the schedule's active status
🗑
Delete
Delete the schedule. Execution logs are also removed
Run Now
"Run Now" is the fastest way to test if a schedule is configured correctly. After clicking:
The system triggers an immediate execution without affecting the original schedule timing
A "Schedule triggered" notification appears
Check "View Execution Log" to observe the execution results
Pause and Enable
After pausing, the schedule won't trigger, but settings and execution logs are preserved. You can re-enable it at any time.
View Execution Logs
Click the 🕘 icon in the list to enter the execution log page:
Filters
Status: Pending / Running / Success / Failed
Date Range: Specify start and end dates
Column Descriptions
Status
Pending (queued), Running, Success, Failed
Start Time
When the Agent started execution
Completion Time
When execution ended
Error Message
If execution failed, displays the error reason
Bot Response
Response content generated by the Agent (full content available in details)
View Execution Details
Click the 👁 icon on the right side of each row to open the details modal, where you can view the complete bot response and error messages:
FAQ
Why didn't the schedule trigger?
Possible reasons:
The schedule status is "Paused" — check the status column in the list
The "Maximum Executions" limit has been reached — the schedule auto-pauses
The cron expression or timezone setting is incorrect — check in the edit page
One-time execution mode has already run — one-time schedules only trigger once
Try using "Run Now" first to confirm the schedule itself can execute correctly, then troubleshoot the timing settings.
Why can't I find my AI assistant in the dropdown?
Agent scheduling only supports Agent mode AI assistants. If your assistant is in Chatbot mode or another mode, it won't appear in the dropdown. Go to the AI Assistant settings page to confirm the mode, then come back to create the schedule.
The schedule ran — where do I see what the Agent produced?
The primary entry point is Agent Scheduling → Click the schedule's 🕘 View Execution Log → Click a record's 👁. The details will show the Agent's complete response.
If you've set delivery targets (conversation/Webhook), a copy is also sent there:
Specified conversations: Go directly to that conversation to view the message
Webhook: Check the POST body at your external endpoint
After turning on "Save Results to Context," where do I see that conversation?
This toggle doesn't affect whether you can see results — all past responses are always retained on the Execution Log page.
It only affects "whether the Agent remembers what happened last time when it runs next":
On (default): The Agent uses the same backend conversation container to accumulate memory, and can continue the context on the next execution
Off: No messages are retained per execution, effectively behaving like independent mode
This backend conversation container currently doesn't appear in the Customer Service Conversations list — it's used internally by the system, not meant for human agents to handle.
What's the data format received by Webhook?
POST request with Content-Type application/json, body structure:
30-second timeout, no retry. The Webhook endpoint should respond with a 2xx status code within 30 seconds, otherwise the delivery is recorded as failed (but the Execution Log page still retains the Agent's complete response).
Independent mode vs. context mode — what's the actual difference?
The biggest difference is whether the Agent can see the conversation history from previous runs when it executes:
Context mode: Uses the same backend conversation to accumulate messages. On the next execution, the Agent can see the prompts and responses from previous runs, allowing it to continue its analysis (suitable for tasks that need to track trends, avoid duplicates, or accumulate context)
Independent mode: Creates a temporary conversation each time, deleted immediately after execution. The Agent starts from scratch every time with no knowledge of what happened before (suitable for tasks with independent daily output, such as daily reports)
The execution results from both modes are saved on the Execution Log page — the difference isn't "whether you can view history," but "whether the Agent carries memory while working."
Further Reading
Agent Scheduling — Conceptual introduction to agent scheduling
Agent (AI Assistant) — Create an AI assistant in Agent mode
Platform Integration: Website — Set up a conversation platform (using website as an example)
Last updated
Was this helpful?
