add_event_note
ChatGPTAdd a note to an event.
add_event_note
ChatGPTAdd a note to an event.
add_quote_items
ChatGPTAppend line items to a quote. Totals are computed server-side from the same VAT engine as the UI (incl. is_offered and discount_amount). Items linked to a catalog (location_item_id) are validated against the catalog minimum price — offered lines bypass the check.
add_quote_items
ChatGPTAppend line items to a quote. Totals are computed server-side from the same VAT engine as the UI (incl. is_offered and discount_amount). Items linked to a catalog (location_item_id) are validated against the catalog minimum price — offered lines bypass the check.
block_venue_dates
ChatGPTMark a venue (or sub-space) as unavailable for a date range. Omit start_time/end_time for a full-day block, or pass both for a partial-day block. Returns the created closure with its id.
block_venue_dates
ChatGPTMark a venue (or sub-space) as unavailable for a date range. Omit start_time/end_time for a full-day block, or pass both for a partial-day block. Returns the created closure with its id.
check_venue_availability
ChatGPTDetect conflicts on a venue/space between two dates.
check_venue_availability
ChatGPTDetect conflicts on a venue/space between two dates.
convert_lead_to_event
ChatGPTCreate an event from a lead and mark the lead validated.
convert_lead_to_event
ChatGPTCreate an event from a lead and mark the lead validated.
count_companies
ChatGPTCount companies matching filters.
count_companies
ChatGPTCount companies matching filters.
count_events
ChatGPTCount events matching filters. Use for "how many" questions.
count_events
ChatGPTCount events matching filters. Use for "how many" questions.
count_leads
ChatGPTCount leads matching filters. Use for "how many" questions.
count_leads
ChatGPTCount leads matching filters. Use for "how many" questions.
count_people
ChatGPTCount contacts matching filters.
count_people
ChatGPTCount contacts matching filters.
count_quotes
ChatGPTCount quotes matching filters.
count_quotes
ChatGPTCount quotes matching filters.
count_tasks
ChatGPTCount tasks matching filters.
count_tasks
ChatGPTCount tasks matching filters.
create_catalog_item
ChatGPTAdd an item to a venue catalog.
create_catalog_item
ChatGPTAdd an item to a venue catalog.
create_company
ChatGPTCreate a company.
create_company
ChatGPTCreate a company.
create_event
ChatGPTCreate an event. company_name and contact_email auto-create rows if needed.
create_event
ChatGPTCreate an event. company_name and contact_email auto-create rows if needed.
create_person
ChatGPTCreate a contact.
create_person
ChatGPTCreate a contact.
create_quote
ChatGPTCreate a quote on an event. Returns quote_id.
create_quote
ChatGPTCreate a quote on an event. Returns quote_id.
create_task
ChatGPTCreate a task, optionally linked to an event.
create_task
ChatGPTCreate a task, optionally linked to an event.
delete_catalog_item
ChatGPTRemove a catalog item.
delete_catalog_item
ChatGPTRemove a catalog item.
delete_event
ChatGPTPermanently delete an event and its data.
delete_event
ChatGPTPermanently delete an event and its data.
delete_person
ChatGPTDelete a contact.
delete_person
ChatGPTDelete a contact.
delete_quote
ChatGPTPermanently delete a quote and its items.
delete_quote
ChatGPTPermanently delete a quote and its items.
delete_quote_item
ChatGPTRemove a single line item from a quote.
delete_quote_item
ChatGPTRemove a single line item from a quote.
delete_task
ChatGPTDelete a task.
delete_task
ChatGPTDelete a task.
download_quote
ChatGPTGenerate a PDF for a quote (or its invoice once accepted), store it as a new version in quote_pdfs, and return a 1h signed URL the client can download. Mirrors the web download flow: if the quote is accepted without an invoice number, a legal invoice number is generated and persisted.
download_quote
ChatGPTGenerate a PDF for a quote (or its invoice once accepted), store it as a new version in quote_pdfs, and return a 1h signed URL the client can download. Mirrors the web download flow: if the quote is accepted without an invoice number, a legal invoice number is generated and persisted.
duplicate_quote
ChatGPTClone a quote with all its line items. The copy is a clean draft (status=draft, is_invoiced=false, signature_mode='manual'). Header snapshot (client, terms, reverse-charge flag) is preserved. Returns the new quote id.
duplicate_quote
ChatGPTClone a quote with all its line items. The copy is a clean draft (status=draft, is_invoiced=false, signature_mode='manual'). Header snapshot (client, terms, reverse-charge flag) is preserved. Returns the new quote id.
generate_email_draft
ChatGPTAI-draft an email body for an event.
generate_email_draft
ChatGPTAI-draft an email body for an event.
get_accounting_analytics
ChatGPTConfirmed revenue per month over the last 12 months.
get_accounting_analytics
ChatGPTConfirmed revenue per month over the last 12 months.
get_beo
ChatGPTFull BEO (feuille de fonction): event-level fields (schedule, setup, notes, vendors, on-site contact, context), staff, day-of contacts, and per-day overrides. This is the canonical way to inspect everything an event's BEO holds.
get_beo
ChatGPTFull BEO (feuille de fonction): event-level fields (schedule, setup, notes, vendors, on-site contact, context), staff, day-of contacts, and per-day overrides. This is the canonical way to inspect everything an event's BEO holds.
get_commercial_analytics
ChatGPTConversion rate and revenue over the last 12 months.
get_commercial_analytics
ChatGPTConversion rate and revenue over the last 12 months.
get_event
ChatGPTFull event with company/contact/venue/spaces/BEO. Excludes search vector and embedding.
get_event
ChatGPTFull event with company/contact/venue/spaces/BEO. Excludes search vector and embedding.
get_events_analytics
ChatGPTMonthly event counts by status over the last 12 months.
get_events_analytics
ChatGPTMonthly event counts by status over the last 12 months.
get_lead
ChatGPTGet full lead with ai_summary, requirements and metadata.
get_lead
ChatGPTGet full lead with ai_summary, requirements and metadata.
get_quote_details
ChatGPTFull quote with line items, totals and status.
get_quote_details
ChatGPTFull quote with line items, totals and status.
get_venue
ChatGPTVenue with spaces and members.
get_venue
ChatGPTVenue with spaces and members.
get_venue_availability
ChatGPTBusiness hours, blocked dates (closures) and enforcement mode for a venue or sub-space. Use from/to to scope closures to a date window.
get_venue_availability
ChatGPTBusiness hours, blocked dates (closures) and enforcement mode for a venue or sub-space. Use from/to to scope closures to a date window.
global_search
ChatGPTSearch events, companies and people.
global_search
ChatGPTSearch events, companies and people.
import_venue_holidays
ChatGPTBulk-create public-holiday closures on a venue (enable=true) or remove all auto-imported ones (enable=false). Country is an ISO-3166 alpha-2 or alpha-3 code, e.g. "FR".
import_venue_holidays
ChatGPTBulk-create public-holiday closures on a venue (enable=true) or remove all auto-imported ones (enable=false). Country is an ISO-3166 alpha-2 or alpha-3 code, e.g. "FR".
link_lead_to_event
ChatGPTAttach a lead to an existing event.
link_lead_to_event
ChatGPTAttach a lead to an existing event.
list_catalog_items
ChatGPTVenue catalog (paginated). detail="full" includes description and tags.
list_catalog_items
ChatGPTVenue catalog (paginated). detail="full" includes description and tags.
list_companies
ChatGPTList companies (paginated, compact summary). detail="full" includes enrichment_data.
list_companies
ChatGPTList companies (paginated, compact summary). detail="full" includes enrichment_data.
list_email_connections
ChatGPTUser Gmail/Outlook connections. Required before send.
list_email_connections
ChatGPTUser Gmail/Outlook connections. Required before send.
list_email_templates
ChatGPTAvailable email templates.
list_email_templates
ChatGPTAvailable email templates.
list_event_contacts
ChatGPTDay-of contacts for an event (on-site & remote): display name, role, phone, email, isOnsite, isPrimary, optional day pin. The primary contact is mirrored to events.onsite_contact_person_id.
list_event_contacts
ChatGPTDay-of contacts for an event (on-site & remote): display name, role, phone, email, isOnsite, isPrimary, optional day pin. The primary contact is mirrored to events.onsite_contact_person_id.
list_event_days
ChatGPTPer-day rows for a multi-day event (setup/catering/technical/service overrides). Mono-day events return [] — fall back to the flat events.<col> values in that case. Rows are auto-created by a Postgres trigger when start_date/end_date change.
list_event_days
ChatGPTPer-day rows for a multi-day event (setup/catering/technical/service overrides). Mono-day events return [] — fall back to the flat events.<col> values in that case. Rows are auto-created by a Postgres trigger when start_date/end_date change.
list_event_emails
ChatGPTEmails linked to an event.
list_event_emails
ChatGPTEmails linked to an event.
list_event_files
ChatGPTFiles attached to an event.
list_event_files
ChatGPTFiles attached to an event.
list_event_notes
ChatGPTNotes attached to an event.
list_event_notes
ChatGPTNotes attached to an event.
list_event_staff
ChatGPTBEO staff list for an event: display name, role, call/leave time, phone, email, notes, optional day pin.
list_event_staff
ChatGPTBEO staff list for an event: display name, role, call/leave time, phone, email, notes, optional day pin.
list_events
ChatGPTList events with company/contact/venue (paginated, compact summary). detail="full" returns every column.
list_events
ChatGPTList events with company/contact/venue (paginated, compact summary). detail="full" returns every column.
list_leads
ChatGPTList inbox leads (paginated, compact summary). The summary omits personal identifiers (client_email, client_phone); use detail="full" or get_lead to retrieve contact details plus ai_summary/requirements/metadata.
list_leads
ChatGPTList inbox leads (paginated, compact summary). The summary omits personal identifiers (client_email, client_phone); use detail="full" or get_lead to retrieve contact details plus ai_summary/requirements/metadata.
list_notifications
ChatGPTRecent notifications for the current user.
list_notifications
ChatGPTRecent notifications for the current user.
list_people
ChatGPTList contacts (paginated, compact summary). The summary omits personal identifiers (email, phone); pass detail="full" to include email, phone and enrichment_data when the task requires them.
list_people
ChatGPTList contacts (paginated, compact summary). The summary omits personal identifiers (email, phone); pass detail="full" to include email, phone and enrichment_data when the task requires them.
list_quotes
ChatGPTList quotes (paginated, compact summary). detail="full" includes terms and client snapshot.
list_quotes
ChatGPTList quotes (paginated, compact summary). detail="full" includes terms and client snapshot.
list_tasks
ChatGPTList tasks (paginated, compact summary). detail="full" includes description/notes/attachments.
list_tasks
ChatGPTList tasks (paginated, compact summary). detail="full" includes description/notes/attachments.
list_team_members
ChatGPTMembers of the workspace, for picking task/event assignees. Returns the assignee id and display name only — no email, avatar or other personal identifiers.
list_team_members
ChatGPTMembers of the workspace, for picking task/event assignees. Returns the assignee id and display name only — no email, avatar or other personal identifiers.
list_venue_closures
ChatGPTEffective blocked-date list for a venue (own closures + those inherited from a parent venue, plus any auto-imported holidays). Filter with from/to.
list_venue_closures
ChatGPTEffective blocked-date list for a venue (own closures + those inherited from a parent venue, plus any auto-imported holidays). Filter with from/to.
list_venue_conflicts
ChatGPTOverlapping events for a venue.
list_venue_conflicts
ChatGPTOverlapping events for a venue.
list_venue_spaces
ChatGPTSub-spaces of a venue.
list_venue_spaces
ChatGPTSub-spaces of a venue.
list_venues
ChatGPTVenues with nested spaces.
list_venues
ChatGPTVenues with nested spaces.
reorder_quote_items
ChatGPTBatch update sort_order + event_day on a quote's line items. Use this for drag-and-drop reordering across days. Only items that actually belong to the specified quote are touched.
reorder_quote_items
ChatGPTBatch update sort_order + event_day on a quote's line items. Use this for drag-and-drop reordering across days. Only items that actually belong to the specified quote are touched.
search_companies
ChatGPTTop company matches by name.
search_companies
ChatGPTTop company matches by name.
send_event_email
ChatGPTSend email via a Gmail/Outlook connection, linked to an event. Connection must have send permission.
send_event_email
ChatGPTSend email via a Gmail/Outlook connection, linked to an event. Connection must have send permission.
unblock_venue_dates
ChatGPTRemove a previously-created closure by its id. Use list_venue_closures or get_venue_availability to find the id. Auto-imported holiday closures share the same id surface but should normally be removed via import_venue_holidays(enable=false) to clear the whole batch at once.
unblock_venue_dates
ChatGPTRemove a previously-created closure by its id. Use list_venue_closures or get_venue_availability to find the id. Auto-imported holiday closures share the same id surface but should normally be removed via import_venue_holidays(enable=false) to clear the whole batch at once.
update_beo
ChatGPTUpdate event-level BEO fields: schedule (rich), setup_type, *_notes, beo_vendors, beo_context, onsite_contact_person_id. Only the fields you pass are written; omit a field to leave it untouched. Pass null on a nullable field to clear it. For staff / day-of contacts / per-day overrides use the dedicated upsert tools.
update_beo
ChatGPTUpdate event-level BEO fields: schedule (rich), setup_type, *_notes, beo_vendors, beo_context, onsite_contact_person_id. Only the fields you pass are written; omit a field to leave it untouched. Pass null on a nullable field to clear it. For staff / day-of contacts / per-day overrides use the dedicated upsert tools.
update_catalog_item
ChatGPTUpdate a catalog item.
update_catalog_item
ChatGPTUpdate a catalog item.
update_company
ChatGPTUpdate company fields.
update_company
ChatGPTUpdate company fields.
update_event
ChatGPTUpdate event fields.
update_event
ChatGPTUpdate event fields.
update_event_status
ChatGPTChange event status.
update_event_status
ChatGPTChange event status.
update_lead_status
ChatGPTValidate or reject a lead.
update_lead_status
ChatGPTValidate or reject a lead.
update_person
ChatGPTUpdate contact fields.
update_person
ChatGPTUpdate contact fields.
update_quote
ChatGPTPatch any subset of quote header fields: title, currency, signature_mode, is_reverse_charge, billing_profile_id, expires_at, due_date, payment_date, purchase_order, the three terms blocks (payment / cancellation / postponement), and the frozen client snapshot (client_first_name, client_email, client_company_name, client_address, client_vat_number, etc.). Use update_quote_status to change status — not this tool. For line items use add_quote_items / update_quote_item. Omit a field to leave it untouched; pass null to clear a nullable field.
update_quote
ChatGPTPatch any subset of quote header fields: title, currency, signature_mode, is_reverse_charge, billing_profile_id, expires_at, due_date, payment_date, purchase_order, the three terms blocks (payment / cancellation / postponement), and the frozen client snapshot (client_first_name, client_email, client_company_name, client_address, client_vat_number, etc.). Use update_quote_status to change status — not this tool. For line items use add_quote_items / update_quote_item. Omit a field to leave it untouched; pass null to clear a nullable field.
update_quote_item
ChatGPTPatch a single line item. Any of: title, description, quantity, unit_price, vat, location_item_id, is_option, is_discount, is_offered, discount_amount, event_day, sort_order. The stored total is recomputed when any pricing input changes. Catalog min-price is re-validated against the effective post-patch state.
update_quote_item
ChatGPTPatch a single line item. Any of: title, description, quantity, unit_price, vat, location_item_id, is_option, is_discount, is_offered, discount_amount, event_day, sort_order. The stored total is recomputed when any pricing input changes. Catalog min-price is re-validated against the effective post-patch state.
update_quote_status
ChatGPTChange a quote's status. Setting to accepted is exclusive per event: if another quote on the same event is already accepted, the tool returns a conflict result WITHOUT writing — call again with force_confirm: true to demote the conflicting quotes to pending and proceed. Side effects mirror the editor: signed stamps signed_at; pending stamps sent_at on first transition; draft resets is_signed and clears sent_at.
update_quote_status
ChatGPTChange a quote's status. Setting to accepted is exclusive per event: if another quote on the same event is already accepted, the tool returns a conflict result WITHOUT writing — call again with force_confirm: true to demote the conflicting quotes to pending and proceed. Side effects mirror the editor: signed stamps signed_at; pending stamps sent_at on first transition; draft resets is_signed and clears sent_at.
update_task
ChatGPTUpdate task fields.
update_task
ChatGPTUpdate task fields.
upsert_event_contacts
ChatGPTReplace the day-of contacts list for an event. Same diff semantics as upsert_event_staff: entries with id are updated, without are inserted, missing ids are deleted. Day-of contacts are STANDALONE — free-text entries are NOT auto-linked to the CRM annuaire (use the CRM tools if you need to register them as people). The first onsite contact (or first contact tout court) becomes primary and is mirrored to events.onsite_contact_person_id.
upsert_event_contacts
ChatGPTReplace the day-of contacts list for an event. Same diff semantics as upsert_event_staff: entries with id are updated, without are inserted, missing ids are deleted. Day-of contacts are STANDALONE — free-text entries are NOT auto-linked to the CRM annuaire (use the CRM tools if you need to register them as people). The first onsite contact (or first contact tout court) becomes primary and is mirrored to events.onsite_contact_person_id.
upsert_event_days
ChatGPTPatch per-day overrides for a multi-day event. Keyed by (event_id, day_index) rather than id — that lets you send patches without first round-tripping through the trigger-generated ids. This tool NEVER deletes rows (same rule as the trigger) to protect against silent data loss on accidental date edits — shrink the event date range instead, the UI ignores overflow rows.
upsert_event_days
ChatGPTPatch per-day overrides for a multi-day event. Keyed by (event_id, day_index) rather than id — that lets you send patches without first round-tripping through the trigger-generated ids. This tool NEVER deletes rows (same rule as the trigger) to protect against silent data loss on accidental date edits — shrink the event date range instead, the UI ignores overflow rows.
upsert_event_staff
ChatGPTReplace the BEO staff list for an event. The submitted array is the new ground truth: entries with an existing id are updated, entries without id are inserted, and any existing row whose id is missing from the payload is deleted. Free-text entries with an email or phone are auto-linked to (or created in) the CRM annuaire. Use list_event_staff first to fetch the current ids you want to preserve.
upsert_event_staff
ChatGPTReplace the BEO staff list for an event. The submitted array is the new ground truth: entries with an existing id are updated, entries without id are inserted, and any existing row whose id is missing from the payload is deleted. Free-text entries with an email or phone are auto-linked to (or created in) the CRM annuaire. Use list_event_staff first to fetch the current ids you want to preserve.