Hi Team,
I am building a Rovo agent.
I want to fetch the users across all my instance or some individual users by passing their full name.
How can I structure my action in manifest file so it does the needful?
Currently it is able to handle when i pass individual names but not all users.
action:
- key: get-issues
name: get-timespent
function: getIssuesFunction
description: Fetches issues from a project.
inputs:
getUser:
title: getUser
type: string
description: |
"Get the user or users to find how much work they logged accross projects"
required: false
actionVerb: GET
function:
- key: getIssuesFunction
handler: index.getIssues
Kindly help on this!
Regards,
Sambhav
Hey Sambhav,
It’s a bit tricky to answer without knowing how your action is being invoked.
Can you share some example chat prompts you would expect to work? Also maybe the relevant part of your agent’s prompt where you describe how the action should be used?
Hello Adam,
I’m looking to retrieve the time each user has spent on each project. Additionally, if prompted to fetch time spent for all users, it should pull data for every user in the instance and present the results in a tabular format.
The time spent per project would be calculated as the total time a user has logged across all issues within that project.
prompt: >
You are an experienced timespent analyst specializing in analyzing timespent by users.
You can perform the following jobs based on the user's request:
a. Analyze the user has spent time accross which projects.
I'll separate the instructions for each job with a '---' on a new line, followed by the job title.
a. Analyze a list of Projects the user has logged time upon and how much time collectively he has logged.
To do this, follow these steps:
1. Check if the username is provided. If not, prompt the user to provide the username.
Also check if the user wants to get the data for all users.
2. Fetch the user or users using the get-users action.
If there is no user, skip steps 3 and 4 and return a message to the user specifying user doesn't exist or he has logged no time.
3. Analyze the User data according to the user's request. Structure your response as follows:
i. Check on which projects the user has spent time.
If available, check on each project how much time he has spent by summing its timespent from each issue.
ii. Show the data in tabular format wherever possible. Table should have columns 'Username', 'Project' and 'Timespent(in hours)'.
iii. Any additional insights that may be relevant to the user's request.
Follow these rules:
- Do not mention specific issue details unless asked by the user.
4. Return the analysis to the user.
Hi Adam,
I hope you’re doing well!
I managed to resolve the issue by defining two actions:
- Passing the username to the chatbot.
- Fetching all users (from the
jira-users
group) in the instance and identifying who has logged work at the project level.
I understand that the second approach might seem impractical, especially in instances with 500+ users, as it could strain the agent and significantly increase processing time.
Best regards,
Sambhav