add_products_to_pinboard
ChatGPTAdd existing studio library products to a pinboard by product id, preserving the link to product details and using their stored photos. Products created from URLs or PDF specifications work the same way. Optional allowTextFallback places products without photos as labeled text cards. Positions use a 1920x1080 canvas; x/y are top-left coordinates, w/h default to 400. Page indices start at zero. Returns created items and explicit skipped reasons; does not enable sharing, but additions to an already shared board are visible to its viewers.
add_products_to_schedule
ChatGPTAdd products from the studio catalog to an FF&E schedule. Find product ids with search_products; rows are appended in the order given. Each row can set quantity (default 1) and a space label (e.g. "Living Room").
add_task_todos
ChatGPTAdd checklist items (todos / sub-steps) to a task. Appends to any existing checklist. Use this to break a task into concrete steps. (Ticking items off is done by a person, not here.)
analyze_incoming_item
ChatGPTTurn an incoming message, email, screenshot, photo, PDF, or voice transcript into a structured PREVIEW of possible project work: tasks, decisions, deadlines, products, contacts, and schedule changes. The calling assistant reads the source and supplies only facts supported by it, with short evidence and confidence. This tool verifies Atelier ids but writes nothing. Present its result in one sentence and at most five grouped bullets, preserve full counts, and ask one approval question; details are shown only on request. Never treat its output as approval to make changes.
analyze_meeting_notes
ChatGPTTurn meeting notes or a transcript already read by the calling assistant into a short PREVIEW of summary, decisions, action items, owners, deadlines, and open questions. Verifies studio members and compares actions with project tasks using normalized titles or an explicit existingTaskId. Flags repeated actions, conflicting owners/dates, and completed work. Writes nothing. Review warnings and wait for approval before saving notes or changing tasks; recheck current tasks before applying.
analyze_vendor_quote
ChatGPTRead an attached quote PDF/image, match its lines to an existing request, and preview quote and schedule price updates. It writes nothing and requires confirmation before any values are applied. Accepts one PDF, PNG, JPEG, WebP or GIF attachment under 20 MB via the file input.
compare_products
ChatGPTCompare 2–10 selected studio library products by reference price, currency, unit, dimensions, material, finish and lead time. Returns stored facts, missing fields and a numeric price range only when all prices, currencies and units are comparable. Does not infer fit, availability, current quotes or project costs. Read-only.
compare_vendor_quotes
ChatGPTCompare received vendor quotes by total, currency, lead time, validity, terms, and unpriced items. Read-only; never chooses or accepts a quote automatically.
convert_notification_to_task
ChatGPTCreate one task from a selected notification or comment after explicit confirmation. Defaults assignment to the current designer, preserves the source notification, and is idempotent so repeated calls do not duplicate the task.
create_client
ChatGPTCreate a new client in the studio. Returns the new client id. Client names are not deduplicated; list_clients returns the ones that already exist.
create_client_contact
ChatGPTAdd a person (contact) to a client — name, role, email, phone. Use for the client's decision-makers, family members, or assistants.
create_invoice_from_milestone
ChatGPTCreate one DRAFT invoice from a positive, uninvoiced milestone on an ACCEPTED proposal. Call only after the designer confirms the milestone, amount, and due date. Never sends the invoice.
create_manual_time_entry
ChatGPTCreate a manual time entry for the current designer after explicit confirmation of project, date/time or duration, and billable status. Cannot add time for another person.
create_meeting
ChatGPTCreate a meeting only when the designer explicitly asks. Report its project, date/time, and location after creation.
create_phase
ChatGPTCreate a phase (a timeline stage) in a project, with a start and end date. Phases are ordered, and list_phases returns the ones a project already has.
create_pinboard
ChatGPTCreate an empty private pinboard (mood board) in a project. Supports a name, optional pages, and an optional schedule from the same project. Returns its id and URL. Does not add images or publish the board; public sharing is a separate action.
create_product
ChatGPTCreate a new product in the connected studio library from supplied details, a product URL extraction, or PDF specifications. Returns the product id for add_products_to_pinboard. Existing library products can be added directly by id without duplicating them. imageUrl or the first images entry supplies the photo; upload_product_image accepts chat attachments. Omit unknown facts.
create_project
ChatGPTCreate a project for a client, with its address, dates and budget. The client must already exist: create_client creates one, list_clients returns existing ones. A project timeline is made of phases, which create_phase adds.
create_quote_request
ChatGPTCreate a vendor pricing request from exact schedule rows. This creates the Atelier request record but does not send email and does not mark it sent. Use only after an explicit instruction.
create_schedule
ChatGPTCreate a new FF&E schedule in a project. Returns the schedule id for adding products with add_products_to_schedule.
create_task
ChatGPTCreate a task. Only a title is required. Optionally attach it to a project, set a description, a priority (urgency), a start date and a due date, assignees, and schedule it onto a day (the "Today" planner). Creates one task per call. Assignees are given by email; list_members returns the studio emails. If you name no assignee the task goes to the person you are talking to, so it appears on their "My tasks" — say who you assigned it to when you report back, and pass an explicit assigneeEmails when they meant someone else.
create_time_report
ChatGPTCreate an active public read-only time-report link after explicit confirmation. Clearly state that anyone with the link can view it. Non-admins can share only their own time.
create_vendor
ChatGPTCreate a new vendor, including its category (what it supplies) when known or evident from the source material, optionally scoped to a project by passing the project id. Vendor names are not deduplicated; list_vendors returns the ones that already exist.
create_vendor_contact
ChatGPTAdd a person (contact) to a vendor — typically a sales rep, account manager, or fabricator point-of-contact.
draft_payment_reminder
ChatGPTPrepare a short factual payment-reminder draft for an issued invoice with an outstanding balance. Does not create a Gmail draft and never sends anything.
fetch
ChatGPTFetch the full record behind a search result id (e.g. "project:abc123") — details, related entities, and a link to open it in Atelier.
find_stale_tasks
ChatGPTFind unfinished tasks with no update for a chosen number of days. Results are read-only candidates for follow-up, completion, archival, or deletion—not permission to change them.
get_client
ChatGPTGet one client by id, including all of their contacts. Use after list_clients when you need full details.
get_financial_followup
ChatGPTGet a compact financial follow-up brief: stored OVERDUE invoices, invoices past due by date but not marked OVERDUE, upcoming uninvoiced proposal milestones, receivables by client, proposal milestone mismatches, and retainer balances. Read-only.
get_inbox_brief
ChatGPTGet a compact studio-aware Inbox brief for the current user: unread notifications grouped by project, with likely action-required items first. Use for “What did I miss?”. Read-only and does not mark anything read.
get_product
ChatGPTGet one product from the catalog by id, including unitPrice, currency, and all details. Use after search_products, or when a pinboard item is linked to a productId (returned by list_pinboard_items).
get_running_timer
ChatGPTCheck whether you currently have a time tracker running, and how long it has been going. Returns null if no timer is running.
get_schedule
ChatGPTGet an FF&E schedule by id, including every product row (name, brand, price, quantity, status, space). Find schedule ids with list_schedules.
get_task_activity
ChatGPTRead a task’s chronological comments and AI work-session history. Returns a compact list, newest first.
get_task_details
ChatGPTGet a task by id — title, description, notes, status, priority, dates, todos, and the pinboards in its project. Find task ids with list_tasks.
get_time_analysis
ChatGPTAnalyze completed time by project, task, person, or day for an exact period. Read-only. Billable hours are not automatically proven unbilled because Atelier does not yet link time entries to invoice lines.
get_time_budget_status
ChatGPTCompare tracked hours with the contractual hour allowance from the latest accepted proposal. Also returns planned task hours separately. Read-only; never invents an allowance for projects without accepted hourly fee items.
get_today_brief
ChatGPTGet a short prioritized daily brief for the current user: today and overdue tasks, work waiting on the client, late deliveries, items needing review or approval, unread notifications, recent changes, and the active timer. Counts cover all matches; each detail list is capped. Use this for questions such as “what needs my attention?”, “what changed since yesterday?”, or “what is overdue?”.
get_vendor
ChatGPTGet one vendor by id, including all of their contacts.
list_clients
ChatGPTList all clients in the studio with their stored details. Client names are not deduplicated, so this is also how to tell whether one already exists.
list_meetings
ChatGPTList project meetings in chronological order, optionally filtered by project and date range. Use this to find tomorrow’s or an upcoming client meeting.
list_members
ChatGPTList the people in the studio — name, email, and role. Use this to find the exact email addresses to pass as assignees when creating a task.
list_outstanding_pricing
ChatGPTAnswer who still owes pricing: list requested vendor quotes with days waiting, missing vendor emails, and optionally compact follow-up drafts. Read-only.
list_phases
ChatGPTList the phases (timeline stages) of a project, in order — id, name, start/end dates, and status.
list_pinboard_items
ChatGPTList the items on a pinboard, optionally filtered by page. Each item carries a kind: "IMAGE" (a picture or catalog product), "TEXT" (a label the designer wrote, whose words are in text/caption), or "ARROW" (a callout the designer drew, which has no image and no caption by design). TEXT and ARROW items have no imageUrl; that is expected rather than a sign of a broken item.
list_pinboards
ChatGPTList the pinboards (mood boards) in a project with their item counts.
list_project_files
ChatGPTList or meaningfully search files saved under a project. Search checks filename, label, AI summary, and semantic keywords; for concepts such as “latest floor plan”, use category plus relevant synonyms and prefer the newest result.
list_projects
ChatGPTList projects in the studio, most recently updated first. Returns the project ids that the other tools take as input.
list_schedules
ChatGPTList the FF&E schedules in a project — id, name, room, and status.
list_tasks
ChatGPTList the tasks in a project with status, priority, dates, and assignees.
list_time_reports
ChatGPTList active shared time reports and their links. Read-only.
list_vendors
ChatGPTList all vendors in the studio — suppliers, fabricators, and trades — including each vendor category. Vendor names are not deduplicated, so this is also how to tell whether one already exists.
mark_notifications_read
ChatGPTMark only the selected notification ids read. This changes Inbox state, so call it only after the designer explicitly names or confirms the selected items. Never marks all implicitly.
mark_quote_requested
ChatGPTRecord that the designer confirms a quote request was sent. Atelier does not send it. This mutation requires an explicit instruction after the email was actually sent or the designer confirms it.
open_app_view
ChatGPTOpens a supported Atelier workspace page or a specific record without changing data. Record IDs come from the corresponding lookup/read tools. List destinations open directories; individual destinations open the named record. Returns the opened view or an error. Navigation does not read page contents or control timers; those operations have separate data tools and start_timer/pause_timer/resume_timer/stop_timer tools.
pause_timer
ChatGPTPause the currently running time tracker, freezing the clock without saving the entry. resume_timer continues it.
prepare_meeting_agenda
ChatGPTPrepare a compact, read-only agenda from the meeting’s project: open tasks, items awaiting client decisions, recent client comments, unpaid invoices, and payment milestones. Returns at most five grouped topics and changes nothing.
prepare_quote_email
ChatGPTPrepare a read-only request or follow-up email using the vendor contact, project, trade account, and quote lines in Atelier. Never sends mail. A connected Gmail assistant may use this result to create a draft, but sending still requires confirmation.
prepare_render_brief
ChatGPTPrepare a read-only 3D artist/render brief preview from a project and selected pinboard, schedule or project-file metadata. Returns sourced product specifications, stored approval states, designer requests and a confirmation checklist. Maximum 50 items per board or schedule, with truncation warnings. Does not inspect file contents, infer geometry, create renders, save, share or send the brief.
propose_task_removal
ChatGPTPrepare a non-mutating proposal to delete a task, remove a checklist item, or archive a task. This tool NEVER performs the action. Present the exact target and impact to the designer and wait for explicit confirmation; deletion itself remains a manual action in Atelier.
reconcile_invoice_payments
ChatGPTRead one invoice and reconcile its stored paid amount and balance against its recorded Payment rows and applied retainer. Read-only; never creates, changes, or removes a payment.
reconcile_quote_vendor
ChatGPTMatch vendor identity found in a quote/email to Atelier and preview field differences. Read-only; never overwrites vendor data.
record_invoice_payment
ChatGPTRecord a real payment and recalculate invoice balance/status. High-impact financial write: call only after separate explicit confirmation of invoice, exact amount, paid date, method, and reference. Never infer payment from an email or bank screenshot.
reorder_today
ChatGPTReplace the order of your personal Today list. Pass every task id currently on that day exactly once; no tasks are deleted.
resume_timer
ChatGPTResume your paused time tracker so the clock continues on the same entry.
save_project_file
ChatGPTSave a file attached to the CURRENT chat message under a project and optionally link it to a task, vendor, schedule, or meeting. Use only after the designer explicitly asks to save it. Supply a short factual summary, category, and semantic keywords based only on the visible file. Accepts one PDF, PNG, JPEG, WebP or GIF attachment under 20 MB via the file input.
save_vendor_quote_attachment
ChatGPTSave an attached quote PDF/image to an existing quote request. Use only after an explicit instruction. This stores evidence but does not apply any extracted prices. Accepts one PDF, PNG, JPEG, WebP or GIF attachment under 20 MB via the file input.
schedule_task
ChatGPTPlan an existing task on your day list (the "Today" planner). With no date it goes on today; pass a date to plan it for that day. This is personal planning — it schedules the task for you, the caller.
search
ChatGPTSearch the studio workspace — projects, clients, vendors, products, tasks, and FF&E schedules — by name/title. Returns matches with namespaced ids; pass a result id to fetch for full details.
search_help_center
ChatGPTSearch Atelier’s current public Help Center and read the most relevant pages. Use this for questions about how Atelier works, where a control lives, what a status means, or what the assistant can do. Base the answer on the returned documentation and include the relevant Help Center link.
search_products
ChatGPTSearch existing products in the studio catalog by name or brand. Use to avoid creating duplicates.
set_task_assignees
ChatGPTSet (replace) who is assigned to an existing task. Pass the full list of assignee emails — anyone not listed is unassigned. Pass an empty list to clear all assignees. Find emails with list_members.
share_pinboard
ChatGPTMake a pinboard publicly shareable via link. Returns the share URL.
start_timer
ChatGPTStart tracking time. Pass a taskId to track against a task (the project is inferred), or a projectId to track against a project. Fails if you already have a running timer — stop it first.
stop_timer
ChatGPTStop your currently running time tracker and save the entry. Returns the tracked duration.
summarize_project_file
ChatGPTRead a saved PDF or image and return a short summary, classification, and search keywords. This is read-only; saving the proposed metadata requires explicit approval.
unschedule_task
ChatGPTRemove an existing task from your personal Today planner. This does not delete or complete the task.
update_client
ChatGPTUpdate fields on an existing client. Only the provided fields are changed; omitted fields are left untouched.
update_client_contact
ChatGPTUpdate a contact on a client. Contact ids come from get_client.
update_meeting
ChatGPTReschedule or edit a meeting. Change only explicitly requested fields and report important old → new values. appendNotes safely adds an approved summary; notes replaces existing notes and therefore requires an explicit request. Never save an unapproved transcript analysis.
update_phase
ChatGPTUpdate one phase — rename it, or move/resize its timeline by setting startDate and/or endDate. To extend a phase, set a later endDate. IMPORTANT: this changes only the phase you name. If the user asks to push a phase and it would overlap the phases after it, ask them whether the following phases should be shifted too; if yes, call update_phase again for each of those. Do not shift other phases unless the user confirms.
update_product
ChatGPTUpdate fields on an existing product — e.g. set unitPrice, brand, dimensions, description. Only the fields you provide are changed; omitted fields are left untouched. Find the productId via get_product/search_products or from a pinboard item.
update_project
ChatGPTUpdate a project's details — name, type, description, status, dates, budget, delivery/install address, area, style, hourly rate, or reassign it to a different client. Only the fields you provide are changed.
update_project_file
ChatGPTUpdate an existing project file’s label, approved summary/classification/keywords, or links. Use only for fields explicitly approved by the designer. It cannot delete a file.
update_schedule_items
ChatGPTUpdate rows on an FF&E schedule — status, quantity, or space label. Row ids come from get_schedule (items[].id). Only the fields you provide are changed. Rows cannot be deleted through this API and a quantity of 0 is rejected; removing a product from a schedule is done by the designer in the Atelier app.
update_task
ChatGPTUpdate fields on a task — status, title, description, notes, priority, dates. Only fields explicitly requested by the designer should be provided, and the result identifies what changed. Use status DONE to complete and TO_DO or IN_PROGRESS to reopen.
update_task_todo
ChatGPTComplete/reopen or edit one checklist item on a task. Only fields explicitly supplied are changed. This cannot delete an item.
update_time_entry
ChatGPTCorrect one finished time entry owned by the current designer. Show the exact old → new values and call only after explicit confirmation. Cannot delete entries or edit another person’s time.
update_vendor
ChatGPTUpdate fields on an existing vendor. Omitted fields are left untouched.
update_vendor_contact
ChatGPTUpdate a contact on a vendor. Contact ids come from get_vendor.
upload_product_image
ChatGPTSave a user-provided product photo or a cropped image from a PDF as a durable Atelier image. Accepts a PNG, JPEG, WebP or GIF file from this conversation. Returns imageUrl for create_product or update_product. Stores the selected image on Atelier’s image CDN; does not create products or add pinboard items itself.
add_products_to_schedule
Claudeadd_task_todos
Claudecreate_client
Claudecreate_client_contact
Claudecreate_phase
Claudecreate_product
Claudecreate_project
Claudecreate_schedule
Claudecreate_task
Claudecreate_vendor
Claudecreate_vendor_contact
Claudefetch
Claudeget_client
Claudeget_product
Claudeget_running_timer
Claudeget_schedule
Claudeget_task_details
Claudeget_vendor
Claudelist_clients
Claudelist_members
Claudelist_phases
Claudelist_pinboard_items
Claudelist_pinboards
Claudelist_projects
Claudelist_schedules
Claudelist_tasks
Claudelist_vendors
Claudepause_timer
Clauderesume_timer
Claudeschedule_task
Claudesearch
Claudesearch_products
Claudeset_task_assignees
Claudeshare_pinboard
Claudestart_timer
Claudestop_timer
Claudeupdate_client
Claudeupdate_client_contact
Claudeupdate_phase
Claudeupdate_product
Claudeupdate_project
Claudeupdate_schedule_items
Claudeupdate_task
Claudeupdate_vendor
Claudeupdate_vendor_contact
Claude