add_contract_items
ChatGPTAdds items to an existing contract. Each item needs a title and a quantity, and may give a rate.
add_invoice_item
ChatGPTAdds one line item to an existing invoice.
add_lead_note
ChatGPTAdd a note to a lead, shown in the Notes section of the lead. Identify the lead by lead_id, or by lead_email (the email of one of its contacts; when several leads match, the most recently updated one is used). Required parameters: description (the note text) and either lead_id or lead_email. Optional parameters: title (defaults to "Notes"), important (true to mark the note as important). Only adds a new note; existing notes are never changed.
add_project_member
ChatGPTAdds a team member of the account to a project, optionally as a project leader. The member is emailed about it.
add_project_subtask
ChatGPTAdds a sub-task to a project task.
add_quote_items
ChatGPTAdds items to an existing quote. Each item needs an item_id (an existing catalogue item) or a title, and a quantity.
analyze_mysql_database_campaign_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: campaigns, campaign_emails. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_client_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: clients, client_settings, statuses. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_contract_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: contracts, estimate_items, leads, lead_contacts. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_form_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: forms. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_invoice_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: invoices, invoice_items, invoice_payments, leads, lead_contacts. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_lead_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: leads, lead_contacts, lead_companies. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_lead_task_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: lead_tasks, lead_task_status, lead_task_comments. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_mms_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: mms, mms_trackings. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_phone_number_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: phone_numbers, users. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_project_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: projects, project_notes, project_tasks, project_members, project_categories, project_comments, statuses. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first. when some one ask you to summarize a project by title, please add all possible titles in or condition and use like '%%' query. when someone ask the project status, the status field in project stores id to the statuses table and use this get status name and show it.
analyze_mysql_database_project_task_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: project_tasks, project_members, project_comments. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_quote_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: estimates, estimate_items, leads, lead_contacts. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_sms_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: sms, sms_trackings. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_user_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: users, user_infos. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
analyze_mysql_database_website_page_schema
ChatGPTRetrieves MySQL database schema information including tables, columns, relationships, and indexes. This tool covers these tables: website_pages, users. MANDATORY: Use this tool FIRST before writing any SQL queries to understand the database structure. Essential for generating accurate queries with proper table/column names, JOIN conditions, and performance optimization. NEVER assume you know the database structure - ALWAYS use this tool first. Do NOT guess or assume column names exist without verifying them through this schema tool first.
clock_in
ChatGPTClocks the signed-in user in by creating a new attendance record. The clock-in time defaults to now.
clock_out
ChatGPTClocks out an existing attendance record by setting its clock-out time, which defaults to now. Non-admins can only clock out their own records.
convert_quote_to_invoice
ChatGPTCreates an invoice from an existing quote, copying its items. It does not send the invoice.
create_automation
ChatGPTSaves a new automation definition in the user's Telagus account (Marketing > Automation): a trigger and an ordered list of steps, stored as configuration in the same format the Automation page's builder saves. Use IDs from get_automation_options. This call only writes that one record. It performs none of the steps: it sends, assigns, tags, moves and creates nothing, and the automation is always saved switched off. Telagus's own automation scheduler carries out the steps later, for leads that match the trigger, and only once the user has switched the automation on with set_automation_status. Returns the automation ID and editor link.
create_campaign
ChatGPTSaves HTML the user supplied as a new email campaign. It does not send anything. To have an email written from a brief, use write_campaign_email instead. You can use shortcodes like {!!customerName!!}, {!!companyName!!} and {!!mobileNumber!!} in html_body for data filled in when the campaign is sent.
create_contract
ChatGPTCreates a new contract for the latest lead with the given email, optionally with items. It does not send it. Each item needs a title and a quantity, and may give a rate, e.g. [{"title": "Website Development", "quantity": 2, "rate": 100}]. A title matching a catalogue item takes that item's rate and unit type.
create_custom_field
ChatGPTCreate a new custom field on a Telagus module, so records in that module can carry a value the standard fields do not have. Provide title, field_type and related_to. One of: text, textarea, selectbox, radiobuttons, checkboxes, single_checkbox, date. Everyday names are accepted too and are converted to the stored name — "dropdown" becomes selectbox, "radio" becomes radiobuttons, "checkbox" becomes checkboxes, "toggle" becomes single_checkbox. Options must be supplied for selectbox, radiobuttons, checkboxes. This tool defines the field itself. It does not set a value on any record: filling a custom field in for a particular lead or user is done in Telagus. When the user message contains 'create custom field from below details' followed by parameter details in the format 'parameter_name:parameter_value', extract these parameters and use them directly without asking for additional information. Fields for health information, biometric data, national or government identifiers, payment card or bank details, authentication credentials, or a protected characteristic such as a date of birth or gender cannot be created or renamed over this connection, and neither can a field that accepts a file upload. They are managed in Telagus at Dashboard > Settings > Custom Fields. Over this connection client_id is not accepted: every call acts on your own account and is attributed to you.
create_invoice
ChatGPTCreates a new invoice for a lead, optionally with line items. It does not send it. Each item needs an item_id (an existing catalogue item) or a title, and a quantity, e.g. [{"title": "Website Development", "quantity": 2, "rate": 100}, {"item_id": 5, "quantity": 1}].
create_lead_task
ChatGPTCreate a new lead task in the database. Required parameters: lead_email, title, activity, set_remainder. Optional parameters: description, due_date_time, remainder_time, tags, assigned_to, lead_task_status_id, job_id. The lead_id is automatically determined from the lead with the specified email. If multiple leads match the email, the most recently updated one is used.
create_project
ChatGPTCreates a new project. The signed-in user is emailed about it.
create_project_from_quote
ChatGPTCreates a project from a quote, found by quote_id or by the lead's email, and returns a link to open the project.
create_project_task
ChatGPTCreates a task in a project. The assignee is added to the collaborators, and the signed-in user, the assignee and the collaborators are emailed about it.
create_quote
ChatGPTCreates a new quote for the latest lead with the given email, optionally with items. It does not send it. Each item needs an item_id (an existing catalogue item) or a title, and a quantity, e.g. [{"title": "Website Development", "quantity": 2}, {"item_id": 5, "quantity": 1}]. A title matching a catalogue item takes that item's rate and unit type.
delete_project
ChatGPTDeletes a project. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
delete_project_task
ChatGPTDeletes a project task. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
edit_lead_task
ChatGPTEdit an existing lead task in the database. Required parameters: lead_email, task_title. Optional parameters: activity, description, due_date_time, set_remainder, remainder_time, tags, assigned_to, lead_task_status_id, job_id. The lead_id is automatically determined from the lead with the specified email. If multiple leads match the email, the most recently updated one is used. The first call changes nothing: it returns a confirmation question listing the changes, and the task is edited only when called again with the same arguments plus confirm=true after the user agrees.
email_contract
ChatGPTEmails a contract to the address given, with optional CC and BCC addresses and a message.
execute_campaign_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to campaign in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give user name. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_client_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to client in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give user name. IMPORTANT: Before using this tool, you MUST first call MySQLClientSchemaTool to understand the database structure. Common mistakes to avoid: - Many tables that seem logical DO NOT exist (e.g., website_page_visits) - Always verify table existence in schema before querying - Use statuses table instead of module-specific status tables IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_contract_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to contract in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). When someone ask you specifically to get info about sent contracts, bring contracts with the statuses 'sent', 'accepted', 'declined', 'messaged', 'bounced', 'clicked', 'complaint', 'delivered', 'viewed', as other statuses can only be assigned after after 'sent' status. When some ask you to get contracts information according to whom it is assigned to, use leads tables assigned_to field, which is foreign key to id of users table, to get the related quotes as quotes are meant for leads. Do not respond with id instead give title or first 30 characters of description. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. VERY IMPORTANT: if table has column deleted_at, bring records where deleted_at field's value is null. Always add client_id condition if the column exists as we dont want to leak one client's data to another client. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_form_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to form in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Leads that comes through forms, stores form_id(not the id column) field of forms table to telsa_form_id column of leads table. Do not respond with id instead give user name. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_invoice_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to invoice in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). When some ask you to get invoice information according to whom it is assigned to, use leads tables assigned_to field, which is foreign key to id of users table, to get the related invoices as invoices are meant for leads. Do not respond with id instead give title or first 30 characters of description. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. VERY IMPORTANT: if table has column deleted_at, bring records where deleted_at field's value is null. Always add client_id condition if the column exists as we dont want to leak one client's data to another client. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_lead_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to leads in MySQL database. This the tool to use only to gather information from the MySQL database. When some ask you to get the best lead generation method, use the leads table and include records where the lead_source column and lead_source is not null and date filter apply on the created_at column, and returned response with lead source name and total lead count of lead source and proper format. IMPORTANT: Before using this tool, you MUST first call MySQLLeadSchemaTool to understand the database structure. Common mistakes to avoid: - Do not assume column names exist in tables without checking schema first - leads table does not have first_name, last_name - these are in lead_contacts table - Use proper JOINs to get contact and company information for leads SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first. Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent).
execute_lead_task_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to lead_task in MySQL database. always use condition of user must be one of 12, 16, 21, 69, 143, 515, 519, 645, 1677, 1748, 1753, 1764, 1900, 1909, 2042, 2154, 2205, 2259, 2302, 2344, 2350, 2397, 2434, 2534, 2555, 2560, 2594, 2595, 2596, 2653, 2658, 2668, 2669, 2673, 2681, 2685, 2686, 2689, 2693, 2694, 2695, 2697, 2706, 2715, 2724, 2749, 2752. When query is specific to current user only, use user id 143. This the tool to use only to gather information from the MySQL database. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_mms_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to mms in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give title or first 30 characters of description. Available MMS Tables and their columns: mms table columns: id, user_id, client_id, title, from, description, media_type, is_text_to_speech_audio, text_to_speech_content, created_at, updated_at, deleted_at mms_trackings table columns: id, user_id, client_id, mms_id, lead_id, phone_number, media_type, delivered, twilio_valid, created_at, updated_at, deleted_at If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_phone_number_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to phone numbers in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give phone number. The main table is phone_numbers. Its assigned_to column is JSON (a list of user ids), and user_id/client_id are foreign keys to the users and clients tables. Join users to resolve the owner of a number. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_project_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to projects in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). when some one ask you to summarize a project by name, please add all possible names in or condition and use like '%%' query. Do not respond with id instead give name or title. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_project_task_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to project tasks in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give name or title. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_quote_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to quote also referred as estimates in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). If Request is for single record then, response must contain ID. When someone ask you specifically to get info about sent quotes or estimates, bring estimates with the statuses 'sent', 'accepted', 'declined', 'messaged', 'bounced', 'clicked', 'complaint', 'delivered', 'viewed', as other statuses can only be assigned after after 'sent' status. When some ask you to get quotes information according to whom it is assigned to, use leads tables assigned_to field to get the related quotes as quotes are meant for leads. When some ask you to get total revenue, use estimates and estimate_items table and use estimate_items total column for calculate the revenue and include records where status is accepted and deleted_at is null and date filter apply on estimate_accepted_at column and the total revenue should be returned with proper format, and should remove quote id and type from the response. When some ask to get best sales person/user by revenue, use estimates and estimate_items table and use estimate_items total column for calculate the revenue and include records where status is accepted and deleted_at is null and date filter apply on estimate_accepted_at column and created_by column use for specific user and the total revenue should be returned with proper format, and should remove quote id and type from the response. Do not respond with id instead give title or first 30 characters of description. IMPORTANT: Before using this tool, you MUST first call MySQLQuoteSchemaTool to understand the database structure. Common mistakes to avoid: - Do not assume column names exist - always check schema first - There may be no 'title' column in estimates table - verify in schema - Use estimates table, not quotes table for quote information IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. Don't calculate placeholders value or any other placeholder values in the response. If a column or table is unclear, call the matching schema tool first and then write the query. VERY IMPORTANT: if the table has a column deleted_at, bring records where the deleted_at field's value is null, and the same applies to join tables. Also, Always add client_id condition if the column exists as we dont want to leak one client's data to another client SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_sms_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to SMS/campaigns in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give title or first 30 characters of description. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
execute_user_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to user in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Do not respond with id instead give user name. IMPORTANT: Before using this tool, you MUST first call MySQLUserSchemaTool to understand the database structure. Common mistakes to avoid: - There is NO 'name' column in users table - use first_name and last_name instead - Use CONCAT(first_name, ' ', last_name) to get full name - Check schema first to understand table structure All response should be in detailed. Like need to describe the answer in detail. Also ask user for more details if needed. Like, Let me know for more details or etc. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first. Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent).
execute_website_page_select_query
ChatGPTUse this tool only to run SELECT query against the tables related to website page in MySQL database. This the tool to use only to gather information from the MySQL database. The signed-in user is id 143; use it for questions about "me" or "my". Every SELECT must be scoped to this account: constrain client_id to 1 in the WHERE clause (scope child tables through their parent). Do not respond with id instead give title. IMPORTANT: Only use columns that exist in the database schema. Do not assume column names. If a column or table is unclear, call the matching schema tool first and then write the query. SCHEMA VALIDATION: Before it runs, your query is automatically checked against the live database schema. If it references a table or column that does not exist, the query is NOT executed — you receive the database error together with the real columns of every table the query references. When that happens, do not give up or ask the user: read the listed columns, rewrite the query using only those names, and retry immediately. You may query directly and let this check correct you rather than always calling the schema tool first.
find_dashboard_feature
ChatGPTReturns the click path to a feature in the Telagus dashboard, for "how do I ...", "where do I ...", or "how do I set up ..." questions about parts of the app that have no tool of their own. Call it with an optional topic to get the routes that match, or with no arguments to get every route it knows. It only returns navigation guidance: it reads no account data and changes nothing, so it is safe to call whenever a user asks where something lives. Topics covered: create forms, update forms, check client campaign, list mms, create mms, update mms, check report of mms, whatsapp, create automation, update automation, website builder, gmail integration, outlook integration, create events, update events, scheduled events, manage availability, appointments, xero, quickbooks, ecommerce integration, seo reports, ppc reports, website ads reports, website analytics, page visitors, call tracking, chat, team, leave, public holiday, time card, monthly invoice, settings. Give the user the path exactly as returned.
get_attendance_record
ChatGPTReturns one attendance record by its ID, with the employee it belongs to. Non-admins can only read their own records.
get_automation
ChatGPTReturns one automation's trigger and steps, in the same shape create_automation and update_automation take, with its status, how many leads are running through it and its editor link.
get_automation_options
ChatGPTReturns what an automation can be built from: the trigger types, step types, condition checks per trigger and lead fields with their operators, and this account's email campaigns, SMS templates, approved WhatsApp templates, team members, positions with stages, and date fields, each with its ID. Call it before create_automation or update_automation and use only these IDs.
get_contract
ChatGPTReturns the details of one contract: dates, status, contact and financial details.
get_facebook_ads_report
ChatGPTReturns the performance of one Facebook (Meta) ad account the signed-in user connected in Telagus over a period: the totals (spend, impressions, reach, frequency, clicks, link clicks, CTR, CPC, CPM, leads, cost per lead, purchases, cost per purchase) and the top campaigns, the ad sets of one campaign, or the ads of one ad set, ranked by one metric. It only reads: the figures come from the Meta Marketing API, through Telagus's cache, and nothing is changed in Meta or in Telagus.
get_google_ads_report
ChatGPTReturns the performance of one Google Ads account the signed-in user connected in Telagus over a period: the totals (cost, impressions, clicks, CTR, average CPC, conversions, conversion rate, cost per conversion, conversion value, ROAS), optionally the totals per day, week or month, and the top campaigns, keywords or search terms ranked by one metric. It only reads: the figures come from the Google Ads API, through Telagus's cache, and nothing is changed in Google Ads or in Telagus.
get_lead_import_fields
ChatGPTReturns what a lead import can fill in the user's Telagus account: the positions (pipelines) with their stages and IDs; every lead, contact and company field with its key, label, type, dropdown options and everyday names (e.g. "phone" for Mobile Number); the account's custom fields; the most rows one call takes; how many more leads the plan allows; and whether an import is already running. Call it before import_leads or update_leads_from_import.
get_lead_import_status
ChatGPTReturns the progress of the lead import running in the account (rows done, failed and waiting), or else the result of the last import started from here: how many leads were created or updated, the column mapping used, and which rows failed or matched no lead, with why.
get_project
ChatGPTReturns the details of one project.
get_project_task
ChatGPTReturns the details of one project task.
get_user_attendance
ChatGPTReturns the attendance records of one team member, found by email or full name, optionally for a single date. Without a name it returns the signed-in user's own records; only admins, HR and managers can read someone else's.
import_leads
ChatGPTQueues a list of leads (rows from a spreadsheet, CSV or pasted table) to be added as new leads in one position of the user's Telagus account, the same as Leads > Import on the dashboard. This call: 1. checks every row and the column mapping, and returns every problem with its row number (then nothing is queued); 2. skips rows whose email already belongs to a lead of that position, unless skip_existing_emails is false; 3. saves the rows as one import job in the account. Telagus's own import process then adds the leads in the background, usually within minutes, and emails the signed-in user a report when it finishes. It sends nothing to the leads and starts no automations. With dry_run=true it only checks and queues nothing. Show the user the mapping (column -> field, columns not imported, default values) and get their agreement before calling without dry_run. Returns the import ID and a link to the leads page.
insert_lead
ChatGPTInsert a new lead to database with contact and company information. Required parameters: first_name, email, lead_title. Optional parameters: last_name, lead_source, mobile_number, position_name, lead_stage_name, company_name, company_website, phone_number, street_address, city, state, postcode. If position_name is provided and that position has stages enabled (has_stages=1), lead_stage_name is required.
list_ad_accounts
ChatGPTLists the Google Ads and Facebook (Meta) ad accounts the signed-in user connected in Telagus: for each Google login and Facebook profile, every ad account's ID, name and currency (Facebook also its status). It only reads: the lists come from the Google Ads and Meta APIs, through Telagus's cache. Ad accounts other team members connected are not included. Call it before get_google_ads_report or get_facebook_ads_report.
list_all_attendance
ChatGPTLists every attendance (clock-in and clock-out) record in the account, newest first, with a summary of today's records and who is still clocked in. Only admins, HR and managers can use it.
list_analytics_properties
ChatGPTLists the Google Analytics 4 properties (websites/apps) that the signed-in user's connected Google Analytics account can read, and marks the default one. This call only reads: it asks Google for the property list and changes nothing in Telagus or Google Analytics. If Google Analytics is not connected for this user, it says so and gives the Telagus screen where they can connect it. Use it when the user names a website or asks which sites are available; run_website_analytics_report already uses the default property when none is given.
list_automations
ChatGPTLists the account's marketing automations (Marketing > Automation) with their ID, title, trigger and whether each is active.
list_catalog_items
ChatGPTLists the account's catalogue of products and services (ID, title, rate and unit type), for use as items on quotes, invoices and contracts.
list_contracts
ChatGPTLists the account's contracts (ID, title and contact), optionally only those for the lead with the given email.
list_invoice_items
ChatGPTLists the line items of one invoice, with their IDs, and a summary of the invoice.
list_invoices
ChatGPTLists the account's invoices with their IDs and details, optionally only those billed to a lead with the given email.
list_mms
ChatGPTLists the account's saved MMS messages with their IDs, titles, media types and sender numbers.
list_project_tasks
ChatGPTLists the tasks of one project with their IDs and details.
list_projects
ChatGPTLists the account's projects with their IDs and details.
list_quotes
ChatGPTLists the account's quotes (ID and title), optionally only those for the lead with the given email.
list_sms
ChatGPTLists the account's saved SMS messages with their IDs, text and sender numbers.
project_task_details
ChatGPTReturns a progressive, plan-ready brief for a project task: the task itself (resolved status, assignee, collaborators, document attachments), its parent project, the task comment thread (with attachments and nested replies), a paged basic list of its sub-tasks (10 at a time, with offset/total/next_offset), and the FULL detail of one focused sub-task (description, attachments, comments, replies) ready to be planned/resolved. Defaults to focusing the first sub-task of the returned page (newest-first ordering, so the most recent on page one); pass subtask_id to focus a specific one and subtask_offset to page the list, so an agent can resolve sub-tasks one at a time. The brief is capped at 40,000 characters: if it runs over, the oldest comments are dropped and the result says truncated: true with a notice — read totals from the totals keys, not from the lists.
remove_invoice_item
ChatGPTDeletes one line item from an invoice. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
remove_project_member
ChatGPTRemoves a team member from a project. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
run_website_analytics_report
ChatGPTRuns one read-only report on the signed-in user's own Google Analytics 4 property and returns the numbers. This call only reads: it sends one report request to Google Analytics with the user's connected account and changes nothing in Telagus or Google Analytics. Use it for website questions: visitors, sessions, page views, bounce and engagement, traffic sources and channels, landing pages, countries, devices, key events (conversions) and revenue, by day or month, optionally compared with the previous period of the same length. Pick metrics and dimensions from the allowed lists. With no dimensions it returns totals only. Rates are returned as percentages, durations in seconds. "last_N_days" ends yesterday, as in Google Analytics. If Google rejects a metric and dimension pair, the error says so; drop one and call again. If Google Analytics is not connected, it says where to connect it.
search_attendance
ChatGPTSearches attendance records of every team member whose email or name matches the text given, optionally for a single date. Only admins, HR and managers can use it.
send_campaign
ChatGPTSends an email campaign, now or at schedule_time, to recipients named explicitly by lead IDs, contact IDs or email addresses. The first call only returns a confirmation question with the recipient count; nothing is sent until it is called again with confirm_send=true after the user agrees.
send_invoice_email
ChatGPTEmails an invoice to the address given, with the subject given and optional CC and BCC addresses.
send_mms
ChatGPTSends one saved MMS (by media_id) from the account's number to the phone number given. The account needs MMS credit and a sender number.
send_quote_email
ChatGPTEmails a quote to its lead, with an optional custom message.
send_sms
ChatGPTSends one SMS from the account's number to the phone number given: either the text given, or a saved SMS by sms_id. The account needs SMS credit and a sender number.
set_automation_status
ChatGPTSets one automation's status to active or inactive, the same as the on/off switch on the Automation page. The call itself performs none of the automation's steps and sends nothing. While it is active, Telagus's own scheduler carries out its saved steps for leads that match its trigger from then on, and those steps can send emails, SMS and WhatsApp messages. Switching off stops further steps. Either way the first call changes nothing: it returns a confirmation question, and the status is changed only when called again with the same arguments plus confirm=true after the user agrees.
update_automation
ChatGPTReplaces the stored definition (title, trigger and steps) of one of the user's existing automations with the one given; read it first with get_automation. This call only writes that record and performs none of the steps itself. The on/off status is left as it is: if the automation is switched on, Telagus's own scheduler uses the new steps from then on, including for leads already part-way through it, and those steps can send emails, SMS and WhatsApp messages to leads. Returns the editor link. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
update_campaign
ChatGPTReplaces the content and settings of an existing email campaign with HTML the user supplied. The campaign is found by campaign_id, or else by its exact title (a new one is created when no campaign has that title). It does not send anything. When it would replace an existing campaign, the first call changes nothing: it returns a confirmation question naming the campaign, which is replaced only when called again with the same arguments plus confirm=true after the user agrees.
update_custom_field
ChatGPTChange an existing custom field's definition. Identify it by its current title and supply only what should change. The first call changes nothing: it returns a confirmation question listing the changes, and the field is changed only when called again with the same arguments plus confirm=true after the user agrees. If several custom fields share a title, the most recently updated one is the one modified. One of: text, textarea, selectbox, radiobuttons, checkboxes, single_checkbox, date. Everyday names are accepted too and are converted to the stored name — "dropdown" becomes selectbox, "radio" becomes radiobuttons, "checkbox" becomes checkboxes, "toggle" becomes single_checkbox. Options must be supplied for selectbox, radiobuttons, checkboxes. This tool changes the field definition. It does not set a value on any record: filling a custom field in for a particular lead or user is done in Telagus. When the user message contains 'update custom field from below details' followed by parameter details in the format 'parameter_name:parameter_value', extract these parameters and use them directly without asking for additional information. Fields for health information, biometric data, national or government identifiers, payment card or bank details, authentication credentials, or a protected characteristic such as a date of birth or gender cannot be created or renamed over this connection, and neither can a field that accepts a file upload. They are managed in Telagus at Dashboard > Settings > Custom Fields.
update_invoice
ChatGPTUpdates an existing invoice's dates, note, status or taxes. Only the values given are changed. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
update_invoice_item
ChatGPTUpdates one line item of an invoice. Only the values given are changed. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
update_lead
ChatGPTUpdate an existing lead in the database. The first call changes nothing: it returns a confirmation question listing the changes, and the lead is updated only when called again with the same arguments plus confirm=true after the user agrees. Needs the edit all leads permission, or edit assigned leads for a lead assigned to the user. Required parameters: email (to identify the lead). If multiple leads have the same email, only the most recently updated lead will be modified. Optional parameters include lead properties (lead_title, lead_source, assigned_to, lead_position_id, lead_stage_name), contact properties (first_name, last_name, new_email, mobile_number, job_title), and company properties (company_name, company_website, phone_number, street_address, city, state, postcode). If lead_position_id is provided and that position has stages enabled (has_stages=1), lead_stage_name is required. If company properties are provided but no company exists, a new company will be created.
update_leads_from_import
ChatGPTQueues changes to existing leads of one position in the user's Telagus account from a list of rows, matching each row to a lead by its email, the same as Leads > Import with "update existing" on the dashboard. Blank cells change nothing; email addresses themselves are never changed. This call: 1. checks every row and the column mapping, and returns every problem with its row number (then nothing is queued); 2. saves the rows as one import job. Telagus's own import process then overwrites the mapped fields of the matching leads in the background, usually within minutes, and emails the signed-in user a report listing rows that matched no lead. With create_missing=true those rows are added as new leads instead. It sends nothing to the leads and starts no automations. With dry_run=true it only checks, reports how many rows match, and queues nothing. Without confirm=true the call does only step 1 and, if every row is fine, returns a confirmation question with the check result; step 2 happens only when called again with the same arguments plus confirm=true after the user has seen the mapping and agreed.
update_project
ChatGPTUpdates an existing project. Only the values given are changed. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
update_project_subtask
ChatGPTUpdates an existing sub-task of a project task. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
update_project_task
ChatGPTUpdates an existing project task. Only the values given are changed. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
update_quote
ChatGPTUpdates an existing quote, found by quote_id or by the lead's email (quote_id is needed when that lead has several quotes). Only the values given are changed. The first call changes nothing: it returns a confirmation question describing the change, which is made only when called again with the same arguments plus confirm=true after the user agrees.
user_get
ChatGPTReturns the profile details of the current authenticated user (the one making this request) as JSON. Takes no parameters — use it to answer "who am I", "my account", or "my details" style questions. To look up other users in the account, use the user schema and select tools instead.
write_campaign_email
ChatGPTWrites a marketing email from a brief and saves it as a draft email campaign in the user's Telagus account. Use it whenever the user asks to write, draft, design or rewrite an email, newsletter or email template, instead of writing the HTML yourself. One call does the following, and nothing else: 1. Reads the account's brand kit, its AI training notes and its recent campaigns, so the email matches the account's voice. A designed email reuses the header and footer of the account's latest designed campaign (or of reference_campaign_id). 2. Writes the subject line, preview text and body with Telagus AI. This counts toward the account's AI usage. 3. Only when include_images is true: creates one hero image for the email with Telagus AI. 4. Saves the result as a new draft campaign or, when campaign_id is given, replaces that campaign's subject and content. With campaign_id, the first call does none of the above: it only returns a confirmation question naming the campaign to be rewritten. The steps run only when called again with the same arguments plus confirm=true after the user agrees. It never sends the email. Sending is a separate add_edit_campaign send_campaign call, made only after the user has reviewed it. email_style is "designed" unless the user explicitly asks for a plain or plain-text email. For a sequence, call once per step with sequence_step. Returns the campaign ID, subject and editor link.