- Brand
- Contreal
- Category
- Productivity
- Primary Subcategory
- Project & Task Management Platforms
Integration details
Description
Contreal is a business management platform for small businesses, agencies and freelancers: clients and leads, projects and tasks, meetings, time tracking and finance (expenses, income, invoices, payment requests and reports) in one place. This plugin lets ChatGPT work with your Contreal account in plain language: - Find and read tasks, clients and leads, projects, meetings, notes, files and hours. - Owners and managers can also read finance data: expenses, income, invoices, payment requests and a monthly summary. - Create tasks, clients, projects and meetings; update tasks, clients and projects; add task comments and attach files. Every result links to the record in Contreal. Limitations: the plugin acts as the signed-in user, sees only what that user can already see in Contreal and works in one company per connection. Finance data is read-only: it cannot issue invoices, send payment requests, charge anyone or move money. It cannot delete data or change account, billing or permission settings. A Contreal account is required.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Project & Task Management Platforms
- Secondary Subcategories
- None listed
- Brand
- Contreal
- Access
- Account required
- First tracked
- 2026-10-19
- Tool count
- 37
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Contreal
Get updates when Contreal’s Discoverability Score or category rank changes.
Competing in ChatGPT Project & Task Management Platforms
View Category37 tools agents can invoke
Adds a comment to a task the user can access, written as this user, exactly as commenting on the website, and returns the saved comment. Once it is saved Contreal notifies everyone involved in the task except you: its assignees, its creator and everyone who commented on it before — including users of the company's clients who are among them (a client user who created the task, is assigned to it or commented on it receives this comment's text). Only those who have communication notifications turned on are notified: in-app, plus an email and/or WhatsApp message with the comment for the channels they turned on; anyone who turned communication notifications off gets nothing, not even in-app. The comment thread is read with get_task. `parent_id` makes it a reply to an existing comment of the same task.
add_task_comment
Attaches uploaded files to a task the user can access; they then appear among the task's files on the website and in get_task. The files are ones uploaded through an upload link of this connection (create_upload_link → get_uploaded_files) and must have finished uploading. Returns the task's new file ids (a file already attached somewhere else is attached as a copy, with its own id). Nobody is notified.
attach_file_to_task
Adds a client (or a lead) to the company's CRM, as the website's new-client form does, and returns the saved card with the company's client statuses. Without `status_id` the card gets the default active client status; a status whose kind is lead makes it a lead. When an email is given, Contreal creates a login for that email (or uses the existing account with it) and links it to the client's projects; no invitation or email is sent, and nobody is notified. Search first (search_clients) to avoid a duplicate card. Available to owners, managers and full team members.
create_client
Turns an uploaded recording of a meeting that already took place into a Contreal meeting and starts its transcription, as the website's "upload a recording" form does. The recording is an audio or video file (mp3, m4a, wav, ogg, webm, aac, flac, mp4, mov) uploaded through an upload link of this connection (create_upload_link → get_uploaded_files), fully uploaded. The meeting is created with the given title and date (default now), optionally for a project the user is a member of and/or any active client of the company (the client need not be the project's client); a meeting in a project also appears as a step of that project. No calendar event is created and nobody is invited. Transcription is paid with the company's credits exactly as on the website; when the company has no credits left, nothing is created and the answer says so. It runs in the background and usually takes a few minutes; the meeting is `processing` until then. When it finishes, the meeting gets a transcript, a summary, key points and suggested tasks (saved inactive, on the meeting), and this user is told by WhatsApp or else email that the transcript is ready. get_meeting shows the status; get_meeting_transcript reads the result.
create_meeting_from_recording
Creates a project for a client, as the website's new-project form does, and returns it. Types: fixed (one price), hourly (price per hour), hourly_bank (a bank of hours at a price per hour), retainer (a recurring price, optionally with hours). The project starts in progress. You become its manager; every full team member of the company is added to it; when the client has a Contreal login (a client email), that login is added to the project as its client. Nobody is notified and nothing is sent to the client. Tasks are added afterwards (create_task). Available to owners, managers and full team members.
create_project
Creates a task as this user, the same way the website's new-task form does, and returns it (task_id, fields, assignee_ids). A task may belong to a project (optionally to one of its steps) and to any active client of the company, which need not be the project's client. The user must be a member of the project, and the step must belong to that project; otherwise the task is not created. Status and priority ids are the company's own (list_statuses_and_priorities lists them); when omitted the task gets the company's default open status and default priority. Assignment: without `assignee_ids` the task is assigned to this user, as on the website; with `assignee_ids` exactly those users are assigned. Only internal team members can be assigned: active members of the task's project, or, for a task without a project, active full members of the company; through this connection a user whose role is client cannot be assigned. When any requested assignee cannot be assigned, the task is not created. Every newly assigned user other than you who has task notifications turned on is notified: in-app, plus email and/or WhatsApp for the channels they turned on. A user who turned task notifications off gets nothing, not even in-app. Nobody else is notified; nothing is sent to clients.
create_task
Opens an upload link: the way files reach Contreal, for attaching to a task (attach_file_to_task) or for transcribing a meeting recording (create_meeting_from_recording). Tools take a file only by its Contreal file_id, and a file gets one by being uploaded through such a link. The link belongs to this connection, works for 30 minutes without signing in, and takes up to 25 files of up to 2 GiB each. The answer always has `upload_id` and `upload_page_url`. Two ways to upload: (1) A person in a browser opens `upload_page_url` — a page in Hebrew or English where they pick or drag one or more files, see each file's progress, and end on a screen listing the uploaded files with their file ids. (2) Whoever can run commands on the computer that holds the files passes `files` (name, content_type, exact size_bytes of each): every file comes back with a `file_id`, a signed `put_url` valid for 10 minutes and `required_headers`; one HTTP PUT of the exact bytes with exactly those headers stores it, e.g. `curl -X PUT --data-binary @contract.pdf -H "Content-Type: application/pdf" -H "x-goog-content-length-range: 48213,48213" -H "x-goog-if-generation-match: 0" "<put_url>"`. A PUT with another size or content type is refused; a URL that expired is replaced by calling this tool again. Either way, get_uploaded_files with the `upload_id` lists the link's files and whether each has arrived (uploaded) or not yet (pending). Uploaded files stay in the company's storage even if nothing uses them. Nobody is notified.
create_upload_link
The business's financial summary for a period — the figures at the top of the website's Finance page, in ILS: money in, money out and net for the period (default: the current month), all open income still expected, how many expenses wait for review, how many payment requests are open and how many of them are overdue. `contains_estimates` / `valuation_incomplete` say when foreign-currency amounts were estimated or could not be valued. For the rows behind the figures use search_expenses, search_incomes and search_payment_requests. Owners and managers only — for a team member the call is refused.
get_finance_summary
Returns one client or lead by id: contact details, status, source, value, dates, the internal note and the activity log. Their projects, tasks, meetings and notes are read with search_projects / search_tasks / search_meetings / search_notes filtered by client_id. Available to owners, managers and team members.
get_client
Returns the communication thread between the company and the client of one project — the same thread as the project's "communication" tab: work sent for approval, approvals and change requests, payment requests and payments, scheduled meetings and meeting summaries sent to the client. Each message has its type, who sent it (company or client, with name), when, whether it was read, the step it concerns and the payment request or meeting summary it carries. Newest first. Reading it does not mark anything as read.
get_client_communication
Returns a temporary download link for one file the user may open, with its name, type and size. The link works without signing in and expires 5 minutes after this call; calling again gives a fresh one. File ids come from get_task, search_files, get_meeting (recording_storage_id) and the other tools that list files.
get_file_link
Returns one meeting the user can access: title, status, date, duration, project, client, attendees, notes, the AI summary (and the client-facing summary), key points, insights and the action items the AI extracted from the conversation. `has_transcript` says whether a transcript exists; read it with get_meeting_transcript. `recording_storage_id` is the recording's file id for get_file_link.
get_meeting
Returns the full transcript of one meeting the user can access, one line per utterance as "[mm:ss] Speaker: text", together with the meeting's title, date, summary, creator and the Contreal tasks that were created from it. `transcript` is null while the recording is still being processed (status "processing") or when there was no recording. For the summary and action items alone, get_meeting is enough.
get_meeting_transcript
Returns one note the user can read, with its full body, title, what it is attached to (client, project, task, step, meeting or standalone), visibility (private = the author only, company = the team, client = also shown to the client) and author id.
get_note
Returns one project the user is a member of: name, status, type, price and currency, dates, description, client, its steps (id, title, type, status, order, dates) and its members. Use get_step for a step's tasks and details, search_tasks with project_id for the project's tasks.
get_project
Returns one step of a project: title, type, status, dates, description, the step's own data (depends on the step type), total tracked time in seconds and the step's tasks. Step ids come from get_project.
get_step
Returns one task the user can access: title, description, status, priority, deadline, estimate, project, client, step, meeting, creator, assignees, links, sub-tasks, tracked time, the full comment thread (author, text, time, attached files, replies) and the files attached to the task (file ids for get_file_link). It also returns the company's `available_statuses` and `available_priorities`, for a task in a project the project's steps, and `assignable_members`: the team members this connection can assign to the task (for a task in a project, its members; otherwise the company's full team members) — never client users, whom it cannot assign. These are the ids other tools take for these fields.
get_task
Lists the files of an upload link made by create_upload_link on this connection: file_id, file name, content type, size and status — `uploaded` (the bytes arrived; the file_id works in attach_file_to_task and create_meeting_from_recording) or `pending` (reserved, the upload has not finished). Files a person uploads on the page appear here as they finish, and a file PUT directly to its put_url is confirmed here on the first call after the PUT. Also says whether the link still accepts uploads (`link_active`, `expires_at`).
get_uploaded_files
Totals of tracked (timer) hours for a period, broken down by person, task, project or day — the answer to "how many hours did X / the team / this project take in <period>". Returns the total, one line per group and any running timers. A timer run belongs in full to the day and the period it STARTED in, open runs included: a run that started before date_from is out even if it ended inside the period, and a 22:00→02:00 run counts entirely on its start day. Durations come as exact seconds and as H:MM or H:MM:SS (a duration, may exceed 24 hours; never rounded, so the lines add up to the total). `scope` is "company" for owners and managers; for a team member it is "self" and the answer covers only their own hours, whatever user_ids were passed, and their own lines are labelled "You (the asking user)" instead of their name. `runningTimers` lists timers still open. `truncated` with `truncatedReason: "row_cap"` means too many runs matched: `coveredFrom` is the day the figures actually start from. For the individual timer runs behind the totals, use list_time_entries.
get_hours_summary
Lists the accounting documents the company issued through its invoicing provider (tax invoices, receipts, invoice-receipts), newest first: document number and type, status, amount, client, project and step, when and to whom it was sent, and a link to the document when the provider has it. Read-only: issuing or sending documents is done in Contreal itself. Owners and managers only — for a team member the call is refused.
search_invoices
Returns the values this company uses for status and priority fields, as set in its Contreal settings (each company has its own names and ids): `task_statuses` (id, name, `is_completed` — a status whose is_completed is true completes the task; `is_default` marks the status a new task gets), `task_priorities` (id, name; `is_default` marks the priority a new task gets) and `client_statuses` (id, label, `kind` lead or client — a lead status makes the card a lead). These are the ids search_tasks, create_task and update_task take for status and priority, and create_client / update_client take for a client status. Call it before filtering or changing by a status or priority the user names in words, e.g. "move it to in progress".
list_statuses_and_priorities
Lists the company's internal team (owners, managers and team members, not client users): user id, name, email, role, membership status and whether a team member is a full member. Use these user ids to filter tasks or hours by person. Any team member may call it.
list_team_members
Lists individual timer runs in a period, oldest first: who, which task and project, start, end (null while running) and duration in seconds, plus the period total. A timer run belongs in full to the day and the period it STARTED in, open runs included: a run that started before date_from is out even if it ended inside the period, and a 22:00→02:00 run counts entirely on its start day. Durations come as exact seconds and as H:MM or H:MM:SS (a duration, may exceed 24 hours; never rounded, so the lines add up to the total). `scope` is "company" for owners and managers; for a team member it is "self" and the answer covers only their own hours, whatever user_ids were passed, and their own lines are labelled "You (the asking user)" instead of their name. `runningTimers` lists timers still open. `truncated` with `truncatedReason: "row_cap"` means too many runs matched: `coveredFrom` is the day the figures actually start from. For totals per person, task, project or day, get_hours_summary answers directly.
list_time_entries
Returns the timer the connected user has running right now, if any: the task it runs on (id and title), when it started and how long it has been running (seconds, and as H:MM or H:MM:SS). `running: false` when no timer is running. Timers are read-only here: starting and stopping them is done in Contreal itself.
get_active_timer
Searches the company's CRM: clients and leads (a lead is a prospective client; `kind` says which). Matches the text against name, business name, email and phone; returns id, name, contact details, status, source, value and follow-up date, newest first. The company's client statuses (lead and client stages) are listed by list_statuses_and_priorities. Use get_client for one client's full card (notes, activity), search_projects with client_id for their projects, search_tasks with client_id for their tasks. Available to owners, managers and team members.
search_clients
Lists the company's expenses as on the website's Expenses page: one-time expenses and each occurrence of a recurring expense, grouped by month (or week / year), with supplier, category, amount, currency, the amount in ILS, date, status and source, plus the total in ILS of everything that matches. Filter by text, date range, history or forecast, category, one-time / recurring, project, supplier, or status (rejected and skipped rows appear only when asked for by status). `limit`/`offset` count expense rows, not groups. Owners and managers only — for a team member the call is refused.
search_expenses
Searches the files stored in Contreal that this user may open: file id, file name, type, size, upload time and what each file is attached to (task, meeting, project, step, expense, income or invoice document), newest first. Filter by text in the file name, by MIME type, or by what it is attached to. The files of one task are also in get_task. To open or download a file, get_file_link returns a short-lived link.
search_files
Lists the company's incomes as on the website's Incomes page — money expected or received from clients: amount, currency, expected date, received date, status, client, project, the payment request it came from and its invoice/receipt documents. Ordered by expected date, latest first. The text filter matches the income title or the name of its client or project. Owners and managers only — for a team member the call is refused.
search_incomes
Lists the meetings on the website's Meetings page that this user can access (meetings they created, meetings of projects they belong to, and — for full members — meetings with no project): id, title, status, date and time, project and client ids and the AI summary, most recent first. Filter by text, project, client or status. Use get_meeting for key points, action items and participants, and get_meeting_transcript for what was said.
search_meetings
Searches the internal notes this user can read (notes on clients, projects, tasks, steps and meetings, plus private notes of their own): id, title, the first 500 characters, what the note is attached to, visibility and author id, newest first. Filter by text in title or body, or by client, project or task. Use get_note for the full text.
search_notes
Lists the payment requests the company created for its clients, newest first: title, amount, VAT, currency, status (draft, sent, paid, cancelled, refunded), due date, when it was sent and paid, whether it waits for the owner to approve a manual payment, document status, client and project. Filter by project, client, status or text (title, project or client name). Read-only: creating, sending or cancelling requests is done in Contreal itself. Owners and managers only — for a team member the call is refused.
search_payment_requests
Lists the projects this user is a member of (the same list as the website's projects page), newest first: id, name, status (in_progress, on_hold, completed), type (fixed, hourly, retainer, hourly_bank), dates and client. Filter by name text, client or status. Use get_project for one project's steps and members.
search_projects
Lists the tasks this user can see on the website's tasks page: tasks they created, tasks in projects they are a member of, and (for full members) tasks without a project. Without filters it covers all of them, across every project. Each task comes with id, title, status (with `is_completed`), priority, deadline, project, client, step and assignees. Filter by text, open/completed, project, client, step, assignee (user ids from get_me / list_team_members), status or priority ids (the company's own, from list_statuses_and_priorities), or deadline. Tasks of on-hold projects are left out unless the search filters by project or step, as on the website. Default order: newest first. Use get_task for the description, comments and files of one task.
search_tasks
Changes a client or lead card; only the fields you pass change. Returns the saved card with the company's client statuses. Moving a lead to a status of kind client turns it into a client and records the date it became one; every status change is written to the card's activity log. Setting or changing the email creates (or links) a Contreal login for the new email and links it to the client's projects, and removes the previous email's login from those projects and from the company; no invitation or email is sent and nobody is notified. Available to owners, managers and full team members.
update_client
Changes a project the user is a member of; only the fields you pass change. Fields: name, client, status (in_progress, on_hold, completed) and the price fields that fit the project's type (fixed: price; hourly: price_per_hour; hourly_bank: price_per_hour + hours_amount; retainer: price + hours_amount). The type itself does not change. Changing the client moves the project's client access: the old client's login leaves the project and the new client's login (when it has one) joins it. Nobody is notified and nothing is sent to clients. Returns the project as it now is. Available to owners, managers and full team members.
update_project
Changes a task the user can access; only the fields you pass change, and the task as it now is comes back (fields and assignee_ids). Fields: title, description, deadline, estimate, project, step, client, status, priority, and assignees added or removed. Moving a task to another project also moves it to that project's client (a client_id passed with the move is applied after it), clears a step that is not in the new project and unassigns users who are not members of it; the user must be a member of the target project. The client can be any active client of the company, not only the project's client. Status and priority ids are the company's own (list_statuses_and_priorities); a status whose `is_completed` is true completes the task. Notifications go only to recipients who have task notifications turned on — in-app, plus email and/or WhatsApp for the channels they turned on; a recipient who turned task notifications off gets nothing, not even in-app. Newly assigned users other than you are notified of the assignment. Completing the task notifies its creator only when the new status is the company's own completed status (the one the website's "complete" uses — with several `is_completed` statuses, the others complete the task without notifying), and only when the creator is a team member and not you. Removing an assignee or changing other fields notifies nobody. Only internal team members can be assigned — through this connection a user whose role is client cannot be assigned. Nothing is sent to clients.
update_task
Returns the Contreal user this connection acts as and the one company it is connected to: user id, name and email; company id and name; the user's role in the company (owner, manager or team_member) and whether a team member is a full member; and the current date and time in the company's time zone (Asia/Jerusalem). Every other tool answers with exactly what this user can see and do on the Contreal website (for example, only projects they are a member of); finance is visible to owners and managers only. The user id here is the id to pass wherever a tool filters by person, e.g. "my" tasks or hours.
get_me
Contreal ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Contreal's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Contreal alternatives on ChatGPT?
As of 2026-10-19, Contreal competes with Asana, Linear, Atlassian Rovo (Legacy), monday.com, ClickUp, Trello, Smartsheet AU, Smartsheet EU and 60 more in ChatGPT Project & Task Management Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.