create_crm_deal
ChatGPTCreates a new CRM deal (lead, quote, negotiation) and saves it immediately. Use this when the user wants to record a new lead, opportunity or deal in the CRM. Required: title. Optional: partner_id (from the search_partners result; if the user names a partner, look it up first), contact_id (a contact of the partner), status (name or key of a CRM workflow status; defaults to "Új lead"), assignee_ids, tag_ids, priority (none|low|high|urgent), due_date (YYYY-MM-DD or YYYY-MM-DDTHH:MM), notes (the deal description as plain text). The response is the created deal (data.items).
create_partner
ChatGPTCreates a new CRM partner (company, customer) and saves it immediately. Use this when the user wants to add a new company or customer to the CRM. Required: name. Optional: tax_number, address, website (http/https), email, phone, notes, and one primary contact (contact_name, contact_position, contact_email, contact_phone). Before creating, check with search_partners that the same partner does not already exist. The response is the created partner (data.items).
create_task
ChatGPTCreates a new task and saves it immediately (there is no separate confirmation step). Use this when the user asks to create, add or record a task or to-do. Required: title (short and concise) and project_id (from the get_workspace tool - a task cannot be created without a project). Optional: description (the task description as plain text with paragraphs - if the user does not give one separately, infer it from the request), status (name or key; if omitted, the default status of the project), assignee_ids and tag_ids (ids from the get_workspace tool), priority (none|low|high|urgent, default none), start_date and due_date (YYYY-MM-DD, the due date optionally with time: YYYY-MM-DDTHH:MM), reminder (the signed-in user's own reminder, same format), parent_task_id (the id of the parent task for a subtask). The response is the created task (data.items).
get_task
ChatGPTReturns the details of one task: fields, description text, checklist, subtasks, followers, the signed-in user's own reminder and the number of comments. Use this when the user asks about a specific task or when you need its current content before changing it. task can be a task id (from the list_tasks result), a task key (e.g. "DEVEL-12") or a fragment of the title; if several tasks match, the response returns the candidates - ask the user to pick one of them.
get_workspace
ChatGPTReturns the reference data of the workspace in ONE call: the signed-in user (currentUser), today's date (today, Europe/Budapest), the teammates (users), the projects visible to the user with the statuses of their workflow (projects - a subproject uses the workflow of its parent), the tags (tags) and, when the CRM is enabled, the CRM statuses (crmStatuses). Use this first, before any other tool: the other tools expect the ids returned here (project_id, assignee_ids, tag_ids, status name/key). Takes no parameters.
list_crm_deals
ChatGPTLists CRM deals (leads, quotes, negotiations) with optional filters. Use this when the user asks about deals, leads or the sales pipeline. Filters: query (fragment of the title), status (name or key of a CRM workflow status, e.g. "Ajánlat", "crm_won"; "open" = all open, "done" = all closed), partner_id, assignee_id, include_archived, limit (default 20, at most 50). The result is ordered by due date; data.items are the deals with id, partner and assignees.
list_tasks
ChatGPTLists the tasks visible to the user with optional filters. Use this when the user wants a list of tasks by status, assignee, project, priority or due date (e.g. "what are my open tasks?"); for keyword search in descriptions and comments use search_tasks. Every filter is optional and they narrow the result together (AND): query (fragment of the title), project_id (project id from the get_workspace tool), status (status name or key, e.g. "Kész", "todo"; the special "open" = all open, "done" = all closed), assignee_id (user id of the assignee; for the user's own tasks the id of the signed-in user), priority, due ("overdue" = past due, "today" = due today, "week" = due in the next 7 days, "none" = no due date), include_archived, limit (default 20, at most 50). The result is ordered by due date; data.items are the tasks with their ids, meta.totalCount is the total number of matches. get_task returns the details of a task, list_task_comments its comments.
my_day
ChatGPTReturns the signed-in user's day in ONE call. Use this when the user asks what they have to do today (e.g. "what is on my plate today?", "mi a dolgom ma?"). It returns, from the open tasks assigned to the user, the overdue ones (bucket = overdue), the ones due today (bucket = today), and every task on which the user has their own reminder for today (bucket = reminder). Takes no parameters. data.items are the tasks with a bucket field (overdue first), meta is the summary: overdueCount, todayCount, reminderCount. Do not enumerate the tasks one by one: state the counts and highlight the most urgent one.
project_summary
ChatGPTReturns the state of one or all projects in numbers. Use this when the user asks how a project is doing (e.g. "how is the Marketing project going?", "which project has the most overdue tasks?"). Per project: the number of visible tasks (totalCount), open (openCount), done (doneCount), overdue (overdueCount), open without assignee (unassignedCount), open and due in the next 7 days (dueThisWeekCount), and the tasks per status (byStatus: name, count, isDone). project_id is optional: without it every visible, non-archived project is returned. The result is a summary (data.projects), not a list: state the numbers together with the project name in the answer.
search_partners
ChatGPTSearches CRM partners (companies, customers) by name, e-mail, phone number, tax number or contact name. Use this when the user names a partner or asks for its contact details, and before creating a deal or a partner. query is a case-insensitive fragment; when empty, the first few partners are returned. The result contains the id, the contact details and the active contacts with their ids. Resolve the partner id with this tool before creating a deal.
search_tasks
ChatGPTFull-text search in the title, description and comments of the visible tasks (typo-tolerant, the same search as the global search of the app). Use this when the user looks for a topic, a keyword or something that was written in a description or comment; when a list by filters (status, assignee, due date) is needed, use list_tasks instead. query is required; limit defaults to 10, at most 20. data.items are the matches ordered by relevance, the excerpt field shows where the match was found (a fragment of the description or comment), meta.totalCount is the number of returned matches.
team_workload
ChatGPTReturns the workload of the teammates. Use this when the user asks who is available or how busy someone is (e.g. "who has capacity?", "who should I give this to?", "how much does Anna have to do?"), and before delegating a task. Per user: the number of open tasks assigned to them (openCount) among the tasks visible to the signed-in user, of which overdue (overdueCount), due in the next 7 days (dueThisWeekCount) and high/urgent priority (highPriorityCount); separately the number of open tasks without assignee (unassignedCount). project_id is an optional filter. The result is a summary (data.users), not a list.
update_crm_deal
ChatGPTUpdates the fields of an existing CRM deal and saves it immediately; only the given fields change. Use this when the user wants to move a deal to another status, reassign it or change its partner, priority or due date. deal_id comes from the list_crm_deals result. Fields: title, status (name or key of a CRM status, e.g. "Ajánlat", "Lezárult (sikeresen)"), partner_id and contact_id (change the partner; clear_partner: true = remove the partner), priority, due_date (YYYY-MM-DD or YYYY-MM-DDTHH:MM), clear_due_date, add_assignee_ids / remove_assignee_ids. The response is the updated deal (data.items).
update_task
ChatGPTUpdates the fields of an existing task and saves it immediately; only the given fields change. Use this when the user wants to change a task: status, assignees, dates, priority, tags, project, description or their reminder (e.g. "mark DEVEL-12 as done"). task is a task id, a task key or a fragment of the title. Fields: title, status (name or key, e.g. "Kész" - from the workflow of the task's project), priority, start_date, due_date (YYYY-MM-DD or YYYY-MM-DDTHH:MM), clear_start_date / clear_due_date (true = clear), project_ids (the NEW project list of the task: when moving it, the id of the new project; omitted or empty keeps the current one; the task gets the equivalent of its current status in the new workflow), add_assignee_ids / remove_assignee_ids (add or remove assignees), add_tag_ids / remove_tag_ids, description (FULL replacement of the description with plain text - the previous formatting and images are lost, so read it with get_task before rewriting), append_description (appends paragraphs to the end of the description, the existing content is kept), reminder (the signed-in user's own reminder) and clear_reminder. The response is the updated task (data.items).
whats_new
ChatGPTReturns what happened since a point in time. Use this when the user asks for recent activity (e.g. "what happened since yesterday?", "what is new this week?"). It returns the visible tasks that were created or changed, or received a new comment since then (data.items, with isNew and newCommentsCount fields, most recently changed first), and the notifications the signed-in user received since then by type (meta.notifications: comment, mention, status, assigned) plus the number of unread ones (meta.unreadNotificationCount). since is optional: YYYY-MM-DD or YYYY-MM-DDTHH:MM (Europe/Budapest), default the last 24 hours; limit defaults to 20, at most 50. Do not enumerate the tasks one by one: state the counts and highlight what concerns the user (mentions, assignments).