Skip to main content
Zuper Sense Agent Studio offers prebuilt agents through the Marketplace for common tasks. If your requirements go beyond these ready-to-use agents, you can create your own custom agent. When building a custom agent, you can define what it should do, configure the tools, skills, and business knowledge it needs, and choose when it runs. For example, you can create custom agents to identify completed jobs awaiting invoices, follow up on stalled quotes, flag incomplete customer records, or process new leads submitted through your website.
SCR 20261027 Lgbo

Before activating a custom agent, you can test it using your Zuper data to verify its behavior. Once activated, you can review its run history to monitor execution and confirm that it works as expected.
To compare custom agents with Marketplace agents, skills, and workflows, see Choose what to build.
Custom agents must be enabled for your organization. If Create agent or Create your own is unavailable, contact your Zuper account manager or Zuper Support.

Understand how custom agents work

A custom agent combines instructions, tools, skills, knowledge, and triggers to perform a specific task. Configure the components according to the task. Not every agent needs additional skills, knowledge, or an automatic trigger.
Before building an agent, read Limits and good practices for understanding data limits and keeping runs within them.

Create an agent

Navigation: Sense → Agent Studio → My agents
  1. Open Sense from the left navigation, then select Agent Studio.
    SCR 20261027 Jfpc
  2. On My agents, select Create agent at the top right or select the Create agent card after your existing agents.
    SCR 20261027 Jfyp
  3. Enter a name for the agent. It opens in draft status.
  4. Select Add a description and enter a short description of the agent’s purpose. This description appears on the agent’s card.
  5. Select the avatar to choose a different image.
  6. Under Configuration, write instructions that describe the task, expected behavior, rules, and output.
  7. Configure the tools, skills, and knowledge the agent needs.
  8. Set a trigger if the agent should run automatically.
  9. Test the agent using your Zuper data.
  10. Review the results and refine the configuration as needed. Deploy the agent when it behaves as expected.
    SCR 20261027 Lkxu
Changes are not saved automatically. Select Save as draft from the dropdown next to Deploy agent to save your work and return to it later. Select Deploy agent when the agent is ready to go live.
Instructions define what your agent should do, which records it should work with, and how it should deliver the results.In Agent Studio, go to Configuration and select the Instructions field to open the editor. Enter the instructions, then select Done.
Start with a few plain sentences and run a test. You do not have to get the instructions right first time: read what the agent produced, add the detail it got wrong, and test again.
SCR 20261027 Lgpv

What to include in your instructions

Good instructions answer four questions:

Example instructions

For an overdue invoice report, you could use the following instructions:
Find invoices that are not paid in full and have a due date more than 30 days ago. Group them by customer and calculate the total amount due for each customer. Email the report to finance@yourcompany.com as a table containing the customer name, number of overdue invoices, oldest due date, and total due. Sort the table by total due, from largest to smallest, and include the grand total at the bottom. Use the subject “Overdue invoices – [today’s date]”. If no invoices match these conditions, send a one-line email stating that there are no overdue invoices.
Compare these instructions with “Send me overdue invoices.” The shorter request leaves the agent to interpret what overdue means, which details to include, how to organize the results, and where to send them. Clear instructions help the agent produce more consistent results.

Tips for reliable instructions

  • Specify the filters. Define the date range, status, team, or other criteria the agent should use. Filtering for relevant records helps keep the task focused and within the data limits.
  • Explain what to do when no records match. Tell the agent whether to send a message, return an empty result, or take another action.
  • Use exact Zuper field and status names. This helps the agent identify the intended records and conditions.
  • Give each agent one primary job. Focused agents are easier to test, troubleshoot, and maintain than agents handling several unrelated tasks.

Reference tools, skills, and knowledge

You can reference tools, skills, and knowledge entries directly in your instructions.
  • Add a reference: Type @ in the editor to find an item by name. If the item is not already configured for the agent, referencing it adds it when you save. If a tool requires additional settings, the editor opens those settings first.
  • Remove a reference: Select × on its chip. Make sure no other reference to the same item remains, then select Done.
  • Format instructions: Type / to access formatting options, including headings, lists, and tables.
If you’re unsure where to start, use one of the ready-made examples later in this article and adapt the instructions to your workflow.
Configure the capabilities and business context your agent needs. In Agent Studio, select Add tools, Add skills, or Add knowledge in the corresponding section. Choose the items you need, then select Done.

Add tools

Tools determine which data your agent can access and which actions it can perform. Choose tools based on the task in its instructions.Some tools require additional settings, such as a recipient email address or Chat channel. Complete the settings when prompted. To change them later, select the Configure icon on the tool row. Tools with incomplete settings display Configuration required.Add only the tools the agent needs. For example, an agent that identifies overdue invoices and emails a report needs Read Zuper data to retrieve the invoices and Send Email to deliver the report.Use Write Zuper data carefully. This tool can create or update live records in your account. Add it only when the task requires those changes, and test the agent thoroughly before deploying it.

Add skills

Skills are reusable instructions that help an agent perform a task consistently. Each skill also provides the tools it needs.SCR 20261027 KbfqSelect Add skills and choose the skills relevant to the task. Use a skill when you want multiple agents or users working in Sense Chat to follow the same process.

Add knowledge

Knowledge base entries provide business-specific context, such as terminology, policies, and internal rules.
SCR 20261027 Kbjm
Select Add knowledge and choose the relevant entries. For example, you could add your collections policy or explain what your team means by a callback.Add knowledge when the agent needs business context that is not adequately covered by its instructions or available data. Keep the information relevant to the task.

Choose when your agent runs

You can start an agent manually with Run now or configure it to run automatically using a scheduled or webhook trigger.
SCR 20261027 Lgyy
You can configure both triggers for the same agent. For example, schedule an agent to generate a daily summary and use a webhook to run an additional check when an external system sends a request.
Use a scheduled trigger to run an agent automatically at specific times.
  1. Open the Triggers section and select Add trigger.
  2. Turn on Scheduled and choose a Frequency:
    • Hourly
    • Daily
    • Weekly (every Monday)
    • Monthly (on the first day of the month)
    • Weekdays
    • Custom
  3. Choose a Time. Check the Times are in … line below the schedule summary to confirm the timezone.
  4. Select Done to return to the trigger configuration, then select Done again to add the trigger.
SCR 20261027 Kapz
For the overdue invoice example, select Weekdays and set the time to 8:00 AM.To configure a different pattern, such as every Friday or twice a day, select Advanced cron expression and enter a standard five-field cron expression in this order: minute, hour, day of month, month, and day of week.For example, 0 16 * * 5 runs every Friday at 4:00 PM. Review the schedule summary to confirm when the agent will run.Choose a frequency that matches how often the data changes. A daily overdue invoice report, for example, may be sufficient without running the agent every hour.
A webhook lets another system start an agent by sending a request to a unique web address. The agent receives the request body along with its instructions.

Set up the webhook

  1. Open the Triggers section and select Add trigger.
  2. Turn on Webhook. Zuper generates the webhook and displays Your webhook is ready, along with the Webhook URL and Signing secret.
  3. Copy the URL and signing secret. Store the secret securely, such as in a password manager or the calling system’s secret settings.
  4. Select I’ve saved my signing secret, then select Done to close the secret dialog.
  5. Select Done to return to the trigger list.
  6. Select Done again to add the trigger.
  7. Select Deploy agent to save the trigger, including when updating an already deployed agent.
The webhook accepts requests only while the agent is Active.
SCR 20261027 Kato
The signing secret is displayed only once. If you close the dialog without saving it, regenerate the secret before configuring the calling system.

Define how the agent handles requests

The agent receives the body of each webhook request. Explain the request’s structure and the action the agent should take in its instructions.For example:
Each request contains a new lead from our website form, with the fields name, email, phone, and message. Look up the email and phone in Zuper customers. Email sales@yourcompany.com the lead’s name, their message, and whether they are an existing customer. If they are, include their last job.

Configure the calling system

Configure the external system to send requests that meet these requirements:
  • Method: POST
  • URL: The webhook URL generated by Zuper
  • Body: JSON, up to 512 KB
  • Authentication: Sign the request using the webhook’s signing secret.
Include these headers in every request:An accepted request returns a 202 response and creates a run in the agent’s run history. The history includes the request content.For supported response codes and implementation examples in cURL, Node.js, and Python, see the Webhook Signing Policy.

Manage the webhook

  • Disable the webhook: Select × on the Webhook row in Triggers, then save the agent. Requests are rejected while the trigger is disabled. You can enable it again through Add trigger. Pausing the agent also stops webhook-triggered runs.
  • Regenerate the signing secret: Open the Webhook trigger and select the Regenerate signing secret icon next to Signing secret. Confirm the change and update every system that calls the webhook. The previous secret stops working immediately.
  • Review request limits: A webhook accepts up to 60 requests per minute. See Limits and good practice.
An agent without a trigger runs only when you select Run now. If you deploy an agent without a trigger, review the pre-deployment checks before proceeding.

Test and deploy an agent

Test an agent before deploying it to verify that its instructions, tools, skills, and knowledge produce the expected results. While the agent is a draft or has unsaved changes, Test run appears at the top right of the agent card. A test run uses your latest configuration, including unsaved changes. During a test run:
  • The agent reads real data from your Zuper account.
  • Emails, Chat messages, and changes to Zuper records are not carried out. Instead, the agent prepares the action, and the activity marks the step as held back.
You cannot provide a sample webhook request during a test run. A webhook-triggered agent therefore has no incoming request to process during testing. To test a webhook end-to-end, configure the agent to email you, deploy it, and send a signed request from the calling system. This starts a live run.

Review a test run

Select Test run to open the Test agent panel on the right.
  • Activity shows the steps the agent took and the calls it made. Review these details to confirm that it accessed the right records and applied the correct filters. For example, check that it filtered invoices by due date rather than invoice date.
  • Output shows the result the agent prepared, such as the email it would have sent.
    SCR 20261027 Lhww
Before deploying, check the following:
  • The results match the records in Zuper for the same filters.
  • The output indicates how many records were processed. If it reports 1,000 of 4,517, the agent has reached the data limit. Narrow the instructions with additional filters.
  • The email or Chat message contains the information your team needs and uses the expected format.
  • Every step marked held back represents an action you expect the agent to perform during a live run.
Update the instructions or configuration as needed, then run the test again.

Deploy the agent

When the test results meet your expectations, select Deploy agent. Zuper runs pre-deployment checks and lists items that need attention under Before you deploy.
SCR 20261027 Lmus
  • Required fixes: Issues such as empty instructions or incomplete tool settings prevent deployment. Resolve each issue, then select Deploy agent again.
  • Suggestions: Items such as instructions that may be too short or an agent without a trigger are recommendations. Address them, select Ignore for suggestions that do not apply, or select Deploy anyway.
After deployment, the agent’s status changes to Active, and it runs according to its configured triggers. To review previous runs, select the Run history icon next to Run now.
Selecting Run now on an active agent with no unsaved changes starts a live run. Emails are sent, Chat messages are posted, and records can be changed if the agent has the Write Zuper data tool. Review the configuration carefully before running the agent.

Manage your agent

Open an agent from My agents to review or change its configuration. Select Deploy agent to apply changes to an active agent. For a paused agent, select Save agent. Zuper runs the Before you deploy checks again when you apply changes. From the ··· menu on an agent card in My agents, you can perform the following actions:
  • Duplicate: Create a new draft based on an existing agent. The duplicate’s schedule is switched off, and webhook triggers are not copied. Before deploying the duplicate, open Triggers, select Add trigger, and enable the required triggers. A new webhook has its own URL and signing secret.
  • Pause agent: Stop the agent from running on its triggers.
  • Resume agent: Resume a paused agent. Webhook requests are refused while the agent is paused.
  • Delete: Permanently delete the agent.
    SCR 20261027 Kcjs
Review the run history regularly after deployment. If a run produces unexpected results, inspect its activity, update the instructions or configuration, and test the changes before applying them.

Custom agents for common tasks

Use these examples as starting points for common business tasks. For each example, create a custom agent, add the specified tools and trigger, enter the instructions, and test the agent before deploying it. Replace the sample email addresses, Chat channels, field names, and business rules with values appropriate for your organization. Verify that the referenced statuses and fields match your Zuper configuration.
Use this agent to identify completed jobs that may still need an invoice.Tools: Read Zuper data, Send EmailTrigger: Daily at 7 AMInstructions:
  • Find jobs with the status Completed and a completion date of yesterday.
  • Identify jobs that do not have an invoice.
  • Email office@yourcompany.com a table with the job number, customer, category, assigned technician, and completion date.
  • Sort the results by customer.
  • Use the subject Jobs to invoice – [today's date].
  • If no jobs need invoicing, send a one-line email confirming that no jobs need invoicing.
Use this agent to help your sales team follow up on quotes that have not been accepted or declined.Tools: Read Zuper data, Send Message (Chat)Trigger: Every Monday at 8 AMInstructions:
  • Find quotes with the status Sent that are more than 14 days old and have not been accepted or declined.
  • Group quotes by the Sold by field.
  • List the customer, quote number, amount, and number of days since the quote date.
  • Sort each group by quote date, oldest first.
  • Mark quotes over $20,000 with ⚠️.
  • Include the total number and value of stalled quotes.
  • Post the summary in the Sales channel.
  • If no stalled quotes are found, post No stalled quotes this week.
Use this agent to help dispatchers spot scheduling gaps before the next workday.Tools: Read Zuper data, Send Message (Chat)Trigger: Weekdays at 3 PMInstructions:
  • Find jobs scheduled for tomorrow that have no assigned technician.
  • List the job number, customer, address, scheduled time, and category.
  • Sort jobs by scheduled time, earliest first.
  • Post the list in the Dispatch channel under Unassigned for tomorrow.
  • If all jobs are assigned, post All of tomorrow's jobs are assigned.
Use this agent to identify recently created customer records that are missing contact information.Tools: Read Zuper data, Send EmailTrigger: Every Friday at 4 PMInstructions:
  • Find customer records that have neither an email address nor a phone number.
  • Email admin@yourcompany.com a list containing the customer name, creation date, and created by.
  • Sort the results by creation date, newest first.
  • If no records need updating, do not send an email.
Use this agent to help your sales team review website leads, identify existing customers, and flag urgent requests.Tools: Read Zuper data, Send EmailTrigger: Webhook called by your website form or an integration such as Zapier, Make, or n8nInstructions:
  • Read the lead’s name, email, phone number, address, and message from the incoming request.
  • Search Zuper for existing customers using the email address or phone number.
  • Email sales@yourcompany.com the lead details and indicate whether the lead is a new or existing customer.
  • For existing customers, include their most recent job and its status.
  • If the message mentions a leak, outage, or urgent issue, prefix the email subject with 🔴 Urgent.

Troubleshoot custom agents