{"versionId":"305a91d8-2dec-4d0f-5ec2-08de8b9ac8a7","articleId":"cd655812-b03b-49b9-8d04-08de8b9ac8a7","title":"Scheduled Jobs | User Guide","tags":["All articles"],"content":"<html><head></head><body><div class=\"mce-toc\">\n<h2>Table of contents</h2>\n<ul>\n<li><a href=\"#1-what-scheduled-jobs-are\">1. What scheduled jobs are</a></li>\n<li><a href=\"#2-setting-up-a-scheduled-job\">2. Setting up a scheduled job</a>\n<ul>\n<li><a href=\"#setting-a-schedule-to-never\">Setting a schedule to Never</a></li>\n</ul>\n</li>\n<li><a href=\"#3-writing-an-effective-initial-prompt\">3. Writing an effective initial prompt</a></li>\n<li><a href=\"#4-viewing-and-managing-your-schedules\">4. Viewing and managing your schedules</a></li>\n<li><a href=\"#5-worked-example-daily-planner\">5. Worked example: daily planner</a>\n<ul>\n<li><a href=\"#assistant-setup\">Assistant setup</a></li>\n<li><a href=\"#schedule-configuration\">Schedule configuration</a></li>\n<li><a href=\"#initial-prompt\">Initial prompt</a></li>\n<li><a href=\"#how-it-works\">How it works</a></li>\n<li><a href=\"#adjusting-the-schedule\">Adjusting the schedule</a></li>\n</ul>\n</li>\n<li><a href=\"#6-worked-example-sequential-document-processing-pipeline\">6. Worked example: sequential document processing pipeline</a>\n<ul>\n<li><a href=\"#how-it-works-1\">How it works</a></li>\n<li><a href=\"#example-pipeline\">Example pipeline</a></li>\n<li><a href=\"#tools-needed-for-this-pattern\">Tools needed for this pattern</a></li>\n</ul>\n</li>\n</ul>\n</div>\n<h2 id=\"1-what-scheduled-jobs-are\" dir=\"auto\" data-line=\"18\">1. What scheduled jobs are</h2>\n<p dir=\"auto\" data-line=\"20\">A scheduled job runs an assistant automatically on a recurring schedule — daily, weekly, or on a schedule you define. At the scheduled time, Theta Assist sends your prompt to the assistant, runs the task using its configured tools and connected services, and saves the result as a thread.</p>\n<p dir=\"auto\" data-line=\"22\">Common uses:</p>\n<ul dir=\"auto\" data-line=\"24\">\n<li dir=\"auto\" data-line=\"24\">A daily morning brief that checks your emails, Teams messages, calendar, and meeting transcripts, then emails you a summary.</li>\n<li dir=\"auto\" data-line=\"25\">A weekly report that pulls data from Business Central or Dynamics and prepares a formatted summary.</li>\n<li dir=\"auto\" data-line=\"26\">A recurring monitoring or extraction task that runs overnight and has results ready when you start work.</li>\n</ul>\n<p dir=\"auto\" data-line=\"28\">Scheduled jobs require the&nbsp;<strong>Jobs</strong>&nbsp;feature to be enabled by your administrator.</p>\n<hr dir=\"auto\" data-line=\"30\">\n<h2 id=\"2-setting-up-a-scheduled-job\" dir=\"auto\" data-line=\"32\">2. Setting up a scheduled job</h2>\n<p dir=\"auto\" data-line=\"34\">Schedules are attached to an assistant. Open the assistant you want to schedule and navigate to&nbsp;<strong>Advanced Options → Schedules</strong>.</p>\n<p dir=\"auto\" data-line=\"36\">Click&nbsp;<strong>Add Schedule</strong>&nbsp;and fill in the following:</p>\n<table dir=\"auto\" data-line=\"38\">\n<thead dir=\"auto\" data-line=\"38\">\n<tr dir=\"auto\" data-line=\"38\">\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody dir=\"auto\" data-line=\"40\">\n<tr dir=\"auto\" data-line=\"40\">\n<td><strong>Name</strong></td>\n<td>A label for this schedule so you can identify it in the Jobs page (e.g., \"Daily Morning Brief\")</td>\n</tr>\n<tr dir=\"auto\" data-line=\"41\">\n<td><strong>Schedule</strong></td>\n<td>When the job should run. Use the visual builder to set the frequency, day, and time. Set to&nbsp;<strong>Never</strong>&nbsp;to save the schedule without activating it.</td>\n</tr>\n<tr dir=\"auto\" data-line=\"42\">\n<td><strong>Time Zone</strong></td>\n<td>Set automatically from your browser — shown for reference only</td>\n</tr>\n<tr dir=\"auto\" data-line=\"43\">\n<td><strong>Initial Prompt</strong></td>\n<td>The prompt sent to the assistant each time the schedule fires</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\" data-line=\"45\">Click&nbsp;<strong>Save</strong>&nbsp;when done. The schedule becomes active immediately and will run at the next matching time.</p>\n<h3 id=\"setting-a-schedule-to-never\" dir=\"auto\" data-line=\"47\">Setting a schedule to Never</h3>\n<p dir=\"auto\" data-line=\"49\">If you want to save a schedule configuration but not have it run automatically — for example, while you're still writing the prompt — set the frequency to&nbsp;<strong>Never</strong>. You can still trigger it manually from the Jobs page (see&nbsp;section 4).</p>\n<hr dir=\"auto\" data-line=\"51\">\n<h2 id=\"3-writing-an-effective-initial-prompt\" dir=\"auto\" data-line=\"53\">3. Writing an effective initial prompt</h2>\n<p dir=\"auto\" data-line=\"55\">The initial prompt tells the assistant what to do each time the schedule runs. Because scheduled jobs run without back-and-forth, the prompt should be complete, clear, and specific enough for the assistant to finish the task on its own.</p>\n<p dir=\"auto\" data-line=\"57\"><strong>Tips:</strong></p>\n<ul dir=\"auto\" data-line=\"59\">\n<li><strong>State the task clearly.</strong>&nbsp;Say exactly what the assistant needs to do.</li>\n<li><strong>List the steps in order.</strong>&nbsp;If the task has several parts, number them so the assistant follows them in the right sequence.</li>\n<li><strong>Include edge cases.</strong>&nbsp;Tell the assistant what to do when the usual process should not run. For example:&nbsp;<em>“If today is Saturday or Sunday, stop and do not proceed.”</em></li>\n<li><strong>Define the output.</strong>&nbsp;Say what the final result should look like, such as a summary in the thread, a formatted report, or an email.</li>\n<li><strong>Set completion rules.</strong>&nbsp;Tell the assistant when the task is complete and what to do if no results are found.</li>\n<li><strong>Keep permanent instructions in the system prompt.</strong>&nbsp;Use the initial prompt for the task to run each time. Use the assistant’s system prompt for ongoing context, formatting rules, and persona.</li>\n</ul>\n<hr dir=\"auto\" data-line=\"64\">\n<h2 id=\"4-viewing-and-managing-your-schedules\" dir=\"auto\" data-line=\"66\">4. Viewing and managing your schedules</h2>\n<p dir=\"auto\" data-line=\"68\">Navigate to&nbsp;<strong>Jobs → Scheduled</strong>&nbsp;to see all your schedules.</p>\n<p dir=\"auto\" data-line=\"70\">Each schedule shows:</p>\n<ul dir=\"auto\" data-line=\"71\">\n<li dir=\"auto\" data-line=\"71\">The schedule description (e.g., \"Every weekday at 07:00\") or&nbsp;<strong>Never</strong>&nbsp;if inactive</li>\n<li dir=\"auto\" data-line=\"72\">When it last ran</li>\n<li dir=\"auto\" data-line=\"73\">When it will next run</li>\n<li dir=\"auto\" data-line=\"74\">The assistant it uses</li>\n</ul>\n<p dir=\"auto\" data-line=\"76\"><strong>Actions available:</strong></p>\n<table dir=\"auto\" style=\"border-collapse: collapse; border-spacing: 2px;\" border=\"1\" data-line=\"78\">\n<thead dir=\"auto\" data-line=\"78\">\n<tr dir=\"auto\" data-line=\"78\">\n<th>Action</th>\n<th>How</th>\n</tr>\n</thead>\n<tbody dir=\"auto\" data-line=\"80\">\n<tr dir=\"auto\" data-line=\"80\">\n<td><strong>Run now</strong></td>\n<td>Trigger an immediate one-off execution, regardless of the configured schedule</td>\n</tr>\n<tr dir=\"auto\" data-line=\"81\">\n<td><strong>Edit</strong></td>\n<td>Change the name, schedule, or initial prompt</td>\n</tr>\n<tr dir=\"auto\" data-line=\"82\">\n<td><strong>Delete</strong></td>\n<td>Remove the schedule permanently</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\" data-line=\"84\">Executions appear in the&nbsp;<strong>Jobs</strong>&nbsp;tab as background operations once they run. You can click through to see the full thread and output.</p>\n<hr dir=\"auto\" data-line=\"86\">\n<h2 id=\"5-worked-example-daily-planner\" dir=\"auto\" data-line=\"88\">5. Worked example: daily planner</h2>\n<p>This example shows how to set up a daily morning brief that checks Teams, email, meeting transcripts, and your calendar, then sends you a structured summary by email.</p>\n<h3 id=\"assistant-setup\" dir=\"auto\" data-line=\"92\">Assistant setup</h3>\n<p dir=\"auto\" data-line=\"94\"><strong>Assistant name:</strong>&nbsp;Daily Planner (or similar)</p>\n<p dir=\"auto\" data-line=\"96\"><strong>MCP Server:</strong>&nbsp;M365 Tools — needed for access to Teams, email, calendar, and transcripts.</p>\n<p dir=\"auto\" data-line=\"98\"><strong>System prompt:</strong>&nbsp;Define the output structure and any standing formatting rules here. For email output, include your HTML email template in the system prompt so the assistant knows how to format and send the message each run.</p>\n<h3 id=\"schedule-configuration\" dir=\"auto\" data-line=\"100\">Schedule configuration</h3>\n<table dir=\"auto\" style=\"border-collapse: collapse; border-spacing: 2px;\" border=\"1\" data-line=\"102\">\n<thead dir=\"auto\" data-line=\"102\">\n<tr dir=\"auto\" data-line=\"102\">\n<th>Field</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody dir=\"auto\" data-line=\"104\">\n<tr dir=\"auto\" data-line=\"104\">\n<td><strong>Name</strong></td>\n<td>Daily Morning Brief</td>\n</tr>\n<tr dir=\"auto\" data-line=\"105\">\n<td><strong>Schedule</strong></td>\n<td>Every weekday at 7:00am</td>\n</tr>\n<tr dir=\"auto\" data-line=\"106\">\n<td><strong>Initial Prompt</strong></td>\n<td>See below</td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"initial-prompt\" dir=\"auto\" data-line=\"108\">Initial prompt</h3>\n<pre><code dir=\"auto\" data-line=\"110\">Do all these steps one after another.\n\nUse the M365 tools to help me plan my day. You run daily at 7am.\nIf it is Saturday or Sunday you can stop and not do these steps.\n\n1. Check my Teams chats for open loops: unanswered asks, commitments I made,\n   unanswered questions I asked, blockers, dependencies, and coordination threads\n   that imply a follow-up may be needed.\n\n2. Check my unread emails from overnight. Ignore all transactional emails unless\n   they look critical. Ignore Microsoft 365 quarantine notifications. Do not\n   mention any ignored emails in the output.\n\n3. Review the meeting transcripts from the prior day (those that are\n   accessible) and extract any actions I was assigned or committed to.\n\n4. Look at my upcoming meetings for the day and suggest what I might need to\n   prepare for them. Ignore daily recurring meetings.\n\n5. Include commitments from my direct reports, customers, and wider team\n   regarding: unanswered asks, commitments made, unanswered questions,\n   blockers, dependencies, and coordination threads that imply follow-up.\n\nUse this to prepare a summary with priorities made clear. Include links inline\nwhere available.\n\nWhen complete, email it to me.\n</code></pre>\n<h3 id=\"how-it-works\" dir=\"auto\" data-line=\"140\">How it works</h3>\n<ol dir=\"auto\" data-line=\"142\">\n<li dir=\"auto\" data-line=\"142\">At 7:00am each weekday, Theta Assist sends this prompt to the Daily Planner assistant.</li>\n<li dir=\"auto\" data-line=\"143\">The assistant works through each step using the M365 tools — reading Teams messages, emails, transcripts, and calendar.</li>\n<li dir=\"auto\" data-line=\"144\">It assembles the summary and sends an email to you using the template defined in the system prompt.</li>\n<li dir=\"auto\" data-line=\"145\">The execution appears in the&nbsp;<strong>Jobs</strong>&nbsp;tab. If the email arrives but you want to review what the assistant found, click through to the thread.</li>\n</ol>\n<h3 id=\"adjusting-the-schedule\" dir=\"auto\" data-line=\"147\">Adjusting the schedule</h3>\n<ul dir=\"auto\" data-line=\"149\">\n<li dir=\"auto\" data-line=\"149\">To pause the brief temporarily, edit the schedule and set it to&nbsp;<strong>Never</strong>. Run it manually on demand from the Jobs page when needed.</li>\n<li dir=\"auto\" data-line=\"150\">To try it immediately without waiting for 7am, click&nbsp;<strong>Run now</strong>&nbsp;from the Scheduled tab.</li>\n<li dir=\"auto\" data-line=\"151\">To run it on weekends too, remove the weekend check from the initial prompt and change the schedule to every day.</li>\n</ul>\n<hr dir=\"auto\" data-line=\"153\">\n<h2 id=\"6-worked-example-sequential-document-processing-pipeline\" dir=\"auto\" data-line=\"155\">6. Worked example: sequential document processing pipeline</h2>\n<p dir=\"auto\" data-line=\"157\">Scheduled jobs can run an end-to-end workflow in a single scheduled run — fetching documents, processing them in batches, sending results to another system, and notifying stakeholders when finished.</p>\n<h3 id=\"how-it-works-1\" dir=\"auto\" data-line=\"159\">How it works</h3>\n<p>When a scheduled job runs, the assistant continues working through the prompt until each step is complete.&nbsp;This includes waiting for a batch processing job to finish before moving on. The assistant starts the batch, waits for it to complete, then continues with follow-on actions — all within the same scheduled run.</p>\n<p dir=\"auto\" data-line=\"163\">A typical pipeline looks like this:</p>\n<ol dir=\"auto\" data-line=\"165\">\n<li dir=\"auto\" data-line=\"165\">Use M365 tools to list documents from SharePoint or OneDrive.</li>\n<li dir=\"auto\" data-line=\"166\">Start a batch processing job (<code>async_start_process_tool_results</code>&nbsp;or&nbsp;<code>async_start_process_files</code>) to analyse each document.</li>\n<li dir=\"auto\" data-line=\"167\">Once the batch completes, use the cURL Executor to POST the results to an external endpoint (a Power Automate flow, a data lake, an API).</li>\n<li dir=\"auto\" data-line=\"168\">Use M365 tools to email a summary to yourself or your team.</li>\n</ol>\n<hr dir=\"auto\" data-line=\"170\">\n<h3 id=\"example-pipeline\" dir=\"auto\" data-line=\"172\">Example pipeline</h3>\n<p dir=\"auto\" data-line=\"174\"><strong>Assistant setup:</strong></p>\n<table dir=\"auto\" style=\"border-collapse: collapse; border-spacing: 2px;\" border=\"1\" data-line=\"176\">\n<thead dir=\"auto\" data-line=\"176\">\n<tr dir=\"auto\" data-line=\"176\">\n<th>Field</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody dir=\"auto\" data-line=\"178\">\n<tr dir=\"auto\" data-line=\"178\">\n<td><strong>Tools</strong></td>\n<td><code>async_start_process_tool_results</code>, M365 Tools, cURL Executor</td>\n</tr>\n<tr dir=\"auto\" data-line=\"179\">\n<td><strong>cURL Executor config</strong></td>\n<td>POST only, locked to your data endpoint domain; API key in Additional Headers</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\" data-line=\"181\"><strong>Initial prompt:</strong></p>\n<pre><code dir=\"auto\" data-line=\"183\">You are running as a scheduled pipeline. Work through these steps in order.\nWait for each step to fully complete before moving to the next.\n\n1. Use the M365 tools to list all files modified in the last 24 hours in the\n   SharePoint folder: Documents/Contracts.\n\n2. Use async_start_process_tool_results to analyse each file. For each document,\n   extract: document title, effective date, parties involved, key obligations,\n   and any renewal or expiry dates.<br>Return the extracted data in this structure:&nbsp;<code>title, effective_date, parties, obligations, renewal_date</code>\n\n3. Once the batch is complete, POST the full results to:\n   https://pipeline.example.com/api/intake/contracts\n   Use the cURL Executor with Content-Type: application/json.\n\n4. Send me an email summarising:\n   - How many documents were processed.\n   - Any documents where extraction was incomplete or uncertain.\n   - Confirmation that the data was submitted successfully (or an error if not).\n</code></pre>\n<p dir=\"auto\" data-line=\"206\"><strong>What happens:</strong></p>\n<ol dir=\"auto\" data-line=\"207\">\n<li dir=\"auto\" data-line=\"207\">The assistant lists modified files from SharePoint via M365 tools.</li>\n<li dir=\"auto\" data-line=\"208\">It starts a batch processing job across all returned files and waits for it to complete.</li>\n<li dir=\"auto\" data-line=\"209\">Once the batch finishes, it POSTs the structured results to the configured endpoint via cURL.</li>\n<li dir=\"auto\" data-line=\"210\">It sends you an email confirming the run, including any items that failed.</li>\n</ol>\n<hr dir=\"auto\" data-line=\"212\">\n<h3 id=\"tools-needed-for-this-pattern\" dir=\"auto\" data-line=\"214\">Tools needed for this pattern</h3>\n<table dir=\"auto\" style=\"border-collapse: collapse; border-spacing: 2px;\" border=\"1\" data-line=\"216\">\n<thead dir=\"auto\" data-line=\"216\">\n<tr dir=\"auto\" data-line=\"216\">\n<th>Capability</th>\n<th>Tool required</th>\n</tr>\n</thead>\n<tbody dir=\"auto\" data-line=\"218\">\n<tr dir=\"auto\" data-line=\"218\">\n<td>List / read SharePoint or OneDrive files</td>\n<td>M365 Tools MCP server</td>\n</tr>\n<tr dir=\"auto\" data-line=\"219\">\n<td>Batch document analysis</td>\n<td><code>async_start_process_tool_results</code>&nbsp;or&nbsp;<code>async_start_process_files</code>&nbsp;built-in tools</td>\n</tr>\n<tr dir=\"auto\" data-line=\"220\">\n<td>POST results to an external endpoint</td>\n<td>cURL Executor MCP server</td>\n</tr>\n<tr dir=\"auto\" data-line=\"221\">\n<td>Send email notification</td>\n<td>M365 Tools MCP server</td>\n</tr>\n</tbody>\n</table>\n<p dir=\"auto\" data-line=\"223\">All tools must be enabled by your administrator and added to the assistant's configuration. The cURL Executor must be configured with appropriate domain or URL restrictions and credentials for your target endpoint. See the&nbsp;<a href=\"https://help.thetaassist.ai/article/c-url-executor-mcp-server-admin-guide\" target=\"_blank\" rel=\"noopener\">cURL Executor Admin Guide</a> and<a href=\"https://help.thetaassist.ai/article/batch-processing-tools-guide\" target=\"_blank\" rel=\"noopener\">&nbsp;Batch Processing Tools Guide</a> for setup details.</p></body></html>","description":"Learn how to set up and manage scheduled jobs in Theta Assist. This guide explains how to attach a schedule to an assistant, choose when it runs, write an effective initial prompt, and manage or run schedules from the Jobs page.","isMarkdown":false,"publishedOnUtc":"2026-03-29T22:56:37.2672185","modifiedOnUtc":"2026-03-27T03:15:34.2608999"}