create_expense
ChatGPTCreate and record a new expense. This is a write operation and must be executed exactly once after all required information is resolved and confirmed. Use when the user asks to: - add, create, or record an expense ENTITY RESOLUTION (MANDATORY) Never ask for internal IDs.Use Resolved IDs from resolver tool instead Never call resolve_entity(entity='office'). For office expenses: - Call resolve_entity(entity='transporter') - Use the resolved transporter_id as entity_id - Set entity_type='office' For Truck Expenses: - Call resolve_entity(entity='trucks'). - Use the resolved truck_id as entity_id. For Trip Expenses: - Resolve using resolve_entity(entity='trips'). - Use the resolved trip_id as entity_id. Never guess entity_id or default from session. EXPENSE CATEGORY - Always call resolve_expense_category before this tool. - Use only the returned expense_master_code for input - Never invent or guess category codes. Expense amount must be provided or confirmed by the user. EXPENSE DATE - Use user-provided date if supplied. - Otherwise use today's date. POST-CREATION RULE - A created expense may return an expense ID. Do not reuse that ID in future requests. For approve, reject, update, or view operations, locate the target expense again using the appropriate tool flow. - Acknowledge success only after a successful tool response and always return the expense code and status. (Category: Expense Management)
create_expense
ChatGPTCreate and record a new expense. This is a write operation and must be executed exactly once after all required information is resolved and confirmed. Use when the user asks to: - add, create, or record an expense ENTITY RESOLUTION (MANDATORY) Never ask for internal IDs.Use Resolved IDs from resolver tool instead Never call resolve_entity(entity='office'). For office expenses: - Call resolve_entity(entity='transporter') - Use the resolved transporter_id as entity_id - Set entity_type='office' For Truck Expenses: - Call resolve_entity(entity='trucks'). - Use the resolved truck_id as entity_id. For Trip Expenses: - Resolve using resolve_entity(entity='trips'). - Use the resolved trip_id as entity_id. Never guess entity_id or default from session. EXPENSE CATEGORY - Always call resolve_expense_category before this tool. - Use only the returned expense_master_code for input - Never invent or guess category codes. Expense amount must be provided or confirmed by the user. EXPENSE DATE - Use user-provided date if supplied. - Otherwise use today's date. POST-CREATION RULE - A created expense may return an expense ID. Do not reuse that ID in future requests. For approve, reject, update, or view operations, locate the target expense again using the appropriate tool flow. - Acknowledge success only after a successful tool response and always return the expense code and status. (Category: Expense Management)
create_expense
ChatGPTCreate and record a new expense. This is a write operation and must be executed exactly once after all required information is resolved and confirmed. Use when the user asks to: - add, create, or record an expense ENTITY RESOLUTION (MANDATORY) Never ask for internal IDs.Use Resolved IDs from resolver tool instead Never call resolve_entity(entity='office'). For office expenses: - Call resolve_entity(entity='transporter') - Use the resolved transporter_id as entity_id - Set entity_type='office' For Truck Expenses: - Call resolve_entity(entity='trucks'). - Use the resolved truck_id as entity_id. For Trip Expenses: - Resolve using resolve_entity(entity='trips'). - Use the resolved trip_id as entity_id. Never guess entity_id or default from session. EXPENSE CATEGORY - Always call resolve_expense_category before this tool. - Use only the returned expense_master_code for input - Never invent or guess category codes. Expense amount must be provided or confirmed by the user. EXPENSE DATE - Use user-provided date if supplied. - Otherwise use today's date. POST-CREATION RULE - A created expense may return an expense ID. Do not reuse that ID in future requests. For approve, reject, update, or view operations, locate the target expense again using the appropriate tool flow. - Acknowledge success only after a successful tool response and always return the expense code and status. (Category: Expense Management)
exit_vehicle_parking
ChatGPTExit or Remove truck or vehicle from Parking. This is a write-only operation and must be executed exactly once after all required inputs are collected and confirmed. Use when the user asks to: - Exit Vehicle or Truck from parking. Vehicle Should be in Parked status for this operation Never ask user about internal IDs truck, fetch truck id list_vehicles(truck_plate). Acknowledges success with the confirmation message. (Category: Truck Operations)
exit_vehicle_parking
ChatGPTExit or Remove truck or vehicle from Parking. This is a write-only operation and must be executed exactly once after all required inputs are collected and confirmed. Use when the user asks to: - Exit Vehicle or Truck from parking. Vehicle Should be in Parked status for this operation Never ask user about internal IDs truck, fetch truck id list_vehicles(truck_plate). Acknowledges success with the confirmation message. (Category: Truck Operations)
exit_vehicle_parking
ChatGPTExit or Remove truck or vehicle from Parking. This is a write-only operation and must be executed exactly once after all required inputs are collected and confirmed. Use when the user asks to: - Exit Vehicle or Truck from parking. Vehicle Should be in Parked status for this operation Never ask user about internal IDs truck, fetch truck id list_vehicles(truck_plate). Acknowledges success with the confirmation message. (Category: Truck Operations)
extend_fuel_voucher_expiry
ChatGPTExtend the expiry date of a fuel voucher. Use when the user asks to: - extend a fuel voucher, change voucher expiry date - push the expiry of a voucher forward - give more time on a fuel voucher NOTE: Field name is case-sensitive: use 'Extended_date' with capital E. Requires list_fuel_vouchers first to locate the voucher. Requires the user to confirm the new expiry date. Confirms success with the updated voucher code and new expiry date. (Category: Fuel Management)
extend_fuel_voucher_expiry
ChatGPTExtend the expiry date of a fuel voucher. Use when the user asks to: - extend a fuel voucher, change voucher expiry date - push the expiry of a voucher forward - give more time on a fuel voucher NOTE: Field name is case-sensitive: use 'Extended_date' with capital E. Requires list_fuel_vouchers first to locate the voucher. Requires the user to confirm the new expiry date. Confirms success with the updated voucher code and new expiry date. (Category: Fuel Management)
extend_fuel_voucher_expiry
ChatGPTExtend the expiry date of a fuel voucher. Use when the user asks to: - extend a fuel voucher, change voucher expiry date - push the expiry of a voucher forward - give more time on a fuel voucher NOTE: Field name is case-sensitive: use 'Extended_date' with capital E. Requires list_fuel_vouchers first to locate the voucher. Requires the user to confirm the new expiry date. Confirms success with the updated voucher code and new expiry date. (Category: Fuel Management)
fuel_type_resolver
ChatGPTResolve the fuel type ID for a truck or trip. call this tool before voucher_issue_truck or voucher_issue_trip. Use when you need to determine the correct fuel type for a truck or trip before issuing or creating a fuel voucher. Returns the internal fuel type ID required by voucher creation tools. (Category: Fuel Management)
fuel_type_resolver
ChatGPTResolve the fuel type ID for a truck or trip. call this tool before voucher_issue_truck or voucher_issue_trip. Use when you need to determine the correct fuel type for a truck or trip before issuing or creating a fuel voucher. Returns the internal fuel type ID required by voucher creation tools. (Category: Fuel Management)
fuel_type_resolver
ChatGPTResolve the fuel type ID for a truck or trip. call this tool before voucher_issue_truck or voucher_issue_trip. Use when you need to determine the correct fuel type for a truck or trip before issuing or creating a fuel voucher. Returns the internal fuel type ID required by voucher creation tools. (Category: Fuel Management)
get_delivery_order_summary
ChatGPTGet aggregated delivery order statistics: counts, summaries, distributions and rankings. Prefer over list_delivery_orders for any count, sum, average, ranking, or distribution question about orders. Triggers: - \"how many orders\" - \"how many flexible/fixed order type\" → distribution + group_by - \"which transporter/customer has most orders\" → ranking + group_by - \"order distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average freight or quantity\" → highest/lowest/average + metric - \"which transporter delivered highest quantity\" → highest + metric + group_by - \"ongoing/completed orders count\" → count + useFor - \"which date had highest orders\" → distribution + group_by=date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount) NOTE — - when using group_by=date, intent=(ranking or distribution) and omit metric field - when using group_by=order_type(fixed(single Location) and flexible(multi Location)),intent(will be always ranking) and omit metric field - \"delivered\" as a status word → useFor=Completed, NOT metric. - \"delivered quantity\" as a measurement → metric= order_delivered_quantity. - 'most orders', 'highest number of orders', 'which company has most' = count spread → use distribution + group_by, NOT highest + metric. FILTER RULE — \"pending approval\" or \"awaiting review\" → PendingforApproval \"waiting for scheduling\" or \"approved, not yet tripped\" → Approved \"active\" or \"in progress\" or \"ongoing\" or \"delivery pending\" → InProcess \"done\" or \"delivered\" or \"finished\" → Completed \"cancelled\" → Cancelled \"part-cancelled\" or \"partially cancelled\" → PartialCancelled \"declined\" or \"rejected\" → Declined / Rejected \"expired\" or \"timed out\" → Expired DATE RULE: Default current year — start_date: 2026-01-01, end_date: 2026-12-31. Format: YYYY-MM-DD. FOLLOW-UP RULE: If prior response already contains the requested data, reason over it before calling again. (Category: Analytics and Summary)
get_delivery_order_summary
ChatGPTGet aggregated delivery order statistics: counts, summaries, distributions and rankings. Prefer over list_delivery_orders for any count, sum, average, ranking, or distribution question about orders. Triggers: - \"how many orders\" - \"how many flexible/fixed order type\" → distribution + group_by - \"which transporter/customer has most orders\" → ranking + group_by - \"order distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average freight or quantity\" → highest/lowest/average + metric - \"which transporter delivered highest quantity\" → highest + metric + group_by - \"ongoing/completed orders count\" → count + useFor - \"which date had highest orders\" → distribution + group_by=date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount) NOTE — - when using group_by=date, intent=(ranking or distribution) and omit metric field - when using group_by=order_type(fixed(single Location) and flexible(multi Location)),intent(will be always ranking) and omit metric field - \"delivered\" as a status word → useFor=Completed, NOT metric. - \"delivered quantity\" as a measurement → metric= order_delivered_quantity. - 'most orders', 'highest number of orders', 'which company has most' = count spread → use distribution + group_by, NOT highest + metric. FILTER RULE — \"pending approval\" or \"awaiting review\" → PendingforApproval \"waiting for scheduling\" or \"approved, not yet tripped\" → Approved \"active\" or \"in progress\" or \"ongoing\" or \"delivery pending\" → InProcess \"done\" or \"delivered\" or \"finished\" → Completed \"cancelled\" → Cancelled \"part-cancelled\" or \"partially cancelled\" → PartialCancelled \"declined\" or \"rejected\" → Declined / Rejected \"expired\" or \"timed out\" → Expired DATE RULE: Default current year — start_date: 2026-01-01, end_date: 2026-12-31. Format: YYYY-MM-DD. FOLLOW-UP RULE: If prior response already contains the requested data, reason over it before calling again. (Category: Analytics and Summary)
get_delivery_order_summary
ChatGPTGet aggregated delivery order statistics: counts, summaries, distributions and rankings. Prefer over list_delivery_orders for any count, sum, average, ranking, or distribution question about orders. Triggers: - \"how many orders\" - \"how many flexible/fixed order type\" → distribution + group_by - \"which transporter/customer has most orders\" → ranking + group_by - \"order distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average freight or quantity\" → highest/lowest/average + metric - \"which transporter delivered highest quantity\" → highest + metric + group_by - \"ongoing/completed orders count\" → count + useFor - \"which date had highest orders\" → distribution + group_by=date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount) NOTE — - when using group_by=date, intent=(ranking or distribution) and omit metric field - when using group_by=order_type(fixed(single Location) and flexible(multi Location)),intent(will be always ranking) and omit metric field - \"delivered\" as a status word → useFor=Completed, NOT metric. - \"delivered quantity\" as a measurement → metric= order_delivered_quantity. - 'most orders', 'highest number of orders', 'which company has most' = count spread → use distribution + group_by, NOT highest + metric. FILTER RULE — \"pending approval\" or \"awaiting review\" → PendingforApproval \"waiting for scheduling\" or \"approved, not yet tripped\" → Approved \"active\" or \"in progress\" or \"ongoing\" or \"delivery pending\" → InProcess \"done\" or \"delivered\" or \"finished\" → Completed \"cancelled\" → Cancelled \"part-cancelled\" or \"partially cancelled\" → PartialCancelled \"declined\" or \"rejected\" → Declined / Rejected \"expired\" or \"timed out\" → Expired DATE RULE: Default current year — start_date: 2026-01-01, end_date: 2026-12-31. Format: YYYY-MM-DD. FOLLOW-UP RULE: If prior response already contains the requested data, reason over it before calling again. (Category: Analytics and Summary)
get_driver_summary
ChatGPTGet aggregated drivers statistics: counts, summaries, distributions and rankings. Prefer over list_drivers for any count, ranking, or distribution question about drivers. Triggers: - \"how many drivers\" - \"drivers overview\"→ distribution - \"drivers count by status or transporter\"→ distribution + group_by - \"which transporter has most drivers\" → ranking + group_by - \"drivers available for trip\"→ useFor=active - \"how many drivers with license expired\" → expiry_summary + group_by NOTE: ONLY status, license expiry and transporter based queries are supported, for other entities call respective summary tools. FILTER RULE — active driver → Active inactive driver → Inactive confirmation pending → Pending INTENT RULES: count → no group_by distribution/ranking → group_by required expiry_summary → group_by= license_date required FOLLOW-UP RULE: If the user asks \"how many of those are X?\" and the prior tool response already contains a breakdown, compute the answer from that data. Do not call again. (Category: Analytics and Summary)
get_driver_summary
ChatGPTGet aggregated drivers statistics: counts, summaries, distributions and rankings. Prefer over list_drivers for any count, ranking, or distribution question about drivers. Triggers: - \"how many drivers\" - \"drivers overview\"→ distribution - \"drivers count by status or transporter\"→ distribution + group_by - \"which transporter has most drivers\" → ranking + group_by - \"drivers available for trip\"→ useFor=active - \"how many drivers with license expired\" → expiry_summary + group_by NOTE: ONLY status, license expiry and transporter based queries are supported, for other entities call respective summary tools. FILTER RULE — active driver → Active inactive driver → Inactive confirmation pending → Pending INTENT RULES: count → no group_by distribution/ranking → group_by required expiry_summary → group_by= license_date required FOLLOW-UP RULE: If the user asks \"how many of those are X?\" and the prior tool response already contains a breakdown, compute the answer from that data. Do not call again. (Category: Analytics and Summary)
get_driver_summary
ChatGPTGet aggregated drivers statistics: counts, summaries, distributions and rankings. Prefer over list_drivers for any count, ranking, or distribution question about drivers. Triggers: - \"how many drivers\" - \"drivers overview\"→ distribution - \"drivers count by status or transporter\"→ distribution + group_by - \"which transporter has most drivers\" → ranking + group_by - \"drivers available for trip\"→ useFor=active - \"how many drivers with license expired\" → expiry_summary + group_by NOTE: ONLY status, license expiry and transporter based queries are supported, for other entities call respective summary tools. FILTER RULE — active driver → Active inactive driver → Inactive confirmation pending → Pending INTENT RULES: count → no group_by distribution/ranking → group_by required expiry_summary → group_by= license_date required FOLLOW-UP RULE: If the user asks \"how many of those are X?\" and the prior tool response already contains a breakdown, compute the answer from that data. Do not call again. (Category: Analytics and Summary)
get_expense_summary
ChatGPTGet aggregated expense statistics: counts, summaries, distributions and rankings. Prefer over list_expenses for any count, sum, average, ranking, or distribution question about expenses. Triggers: - \"how many expenses\" - \"total expense amount\" → total + metric - \"which transporter has most expenses\" → ranking + group_by - \"highest/lowest/average expense\" → highest/lowest/average + metric - \"expense distribution by status or type\" → distribution + group_by=date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if amount is mentioned;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(amount) group_by fields: entity_type → type of entity of expense (e.g. Truck or Trip or Office) expense_type→ expense type (e.g. brokerage or rent) trip → group by trips truck → group by trucks DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FILTER RULE — use summary_report and entity_id when specific entity is mentioned with its identifier. use useFor when status is mentioned in user query Never guess entity_id , it will always be one of transporter id or truck id or trip id after resolve entity. FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by expense type), reason over it before calling again. (Category: Analytics and Summary)
get_expense_summary
ChatGPTGet aggregated expense statistics: counts, summaries, distributions and rankings. Prefer over list_expenses for any count, sum, average, ranking, or distribution question about expenses. Triggers: - \"how many expenses\" - \"total expense amount\" → total + metric - \"which transporter has most expenses\" → ranking + group_by - \"highest/lowest/average expense\" → highest/lowest/average + metric - \"expense distribution by status or type\" → distribution + group_by=date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if amount is mentioned;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(amount) group_by fields: entity_type → type of entity of expense (e.g. Truck or Trip or Office) expense_type→ expense type (e.g. brokerage or rent) trip → group by trips truck → group by trucks DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FILTER RULE — use summary_report and entity_id when specific entity is mentioned with its identifier. use useFor when status is mentioned in user query Never guess entity_id , it will always be one of transporter id or truck id or trip id after resolve entity. FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by expense type), reason over it before calling again. (Category: Analytics and Summary)
get_expense_summary
ChatGPTGet aggregated expense statistics: counts, summaries, distributions and rankings. Prefer over list_expenses for any count, sum, average, ranking, or distribution question about expenses. Triggers: - \"how many expenses\" - \"total expense amount\" → total + metric - \"which transporter has most expenses\" → ranking + group_by - \"highest/lowest/average expense\" → highest/lowest/average + metric - \"expense distribution by status or type\" → distribution + group_by=date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if amount is mentioned;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(amount) group_by fields: entity_type → type of entity of expense (e.g. Truck or Trip or Office) expense_type→ expense type (e.g. brokerage or rent) trip → group by trips truck → group by trucks DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FILTER RULE — use summary_report and entity_id when specific entity is mentioned with its identifier. use useFor when status is mentioned in user query Never guess entity_id , it will always be one of transporter id or truck id or trip id after resolve entity. FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by expense type), reason over it before calling again. (Category: Analytics and Summary)
get_fuel_voucher_summary
ChatGPTGet aggregated fuel voucher statistics: counts, summaries, distributions and rankings. Prefer over list_fuel_vouchers for any count, sum, average, ranking, or distribution question about fuel voucher. Triggers: - \"how many fuel vouchers\" - \"which transporter has most vouchers\" → distribution + group_by - \"vouchers distribution by status/transporter/payment_mode\" → distribution + group_by - \"highest/lowest/average amount or quantity\" → highest/lowest/average + metric - \"which transporter has most pending vouchers\" → ranking + useFor + group_by INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount) FUEL CONSUMPTION - always use intent, useFor=Redeem,metric=total_quantity to check fuel consumed quantity. FILTER RULE — \"Pending\" or \"not approved\" →Pending \"Approved\" → Approved \"Redeemed\" → Redeem \"Expired\"→ Expired \"Cancelled\" →Cancelled \"Declined\" - Declined DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by truck or trip), reason over it before calling again. If user names a transporter → resolve_entity first, pass result as transporter_id. (Category: Analytics and Summary)
get_fuel_voucher_summary
ChatGPTGet aggregated fuel voucher statistics: counts, summaries, distributions and rankings. Prefer over list_fuel_vouchers for any count, sum, average, ranking, or distribution question about fuel voucher. Triggers: - \"how many fuel vouchers\" - \"which transporter has most vouchers\" → distribution + group_by - \"vouchers distribution by status/transporter/payment_mode\" → distribution + group_by - \"highest/lowest/average amount or quantity\" → highest/lowest/average + metric - \"which transporter has most pending vouchers\" → ranking + useFor + group_by INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount) FUEL CONSUMPTION - always use intent, useFor=Redeem,metric=total_quantity to check fuel consumed quantity. FILTER RULE — \"Pending\" or \"not approved\" →Pending \"Approved\" → Approved \"Redeemed\" → Redeem \"Expired\"→ Expired \"Cancelled\" →Cancelled \"Declined\" - Declined DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by truck or trip), reason over it before calling again. If user names a transporter → resolve_entity first, pass result as transporter_id. (Category: Analytics and Summary)
get_fuel_voucher_summary
ChatGPTGet aggregated fuel voucher statistics: counts, summaries, distributions and rankings. Prefer over list_fuel_vouchers for any count, sum, average, ranking, or distribution question about fuel voucher. Triggers: - \"how many fuel vouchers\" - \"which transporter has most vouchers\" → distribution + group_by - \"vouchers distribution by status/transporter/payment_mode\" → distribution + group_by - \"highest/lowest/average amount or quantity\" → highest/lowest/average + metric - \"which transporter has most pending vouchers\" → ranking + useFor + group_by INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount) FUEL CONSUMPTION - always use intent, useFor=Redeem,metric=total_quantity to check fuel consumed quantity. FILTER RULE — \"Pending\" or \"not approved\" →Pending \"Approved\" → Approved \"Redeemed\" → Redeem \"Expired\"→ Expired \"Cancelled\" →Cancelled \"Declined\" - Declined DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by truck or trip), reason over it before calling again. If user names a transporter → resolve_entity first, pass result as transporter_id. (Category: Analytics and Summary)
get_invoice_summary
ChatGPTGet aggregated invoice statistics: counts, summaries, distributions and rankings. Prefer over list_invoices for any count, sum, average, ranking, or distribution question about invoice. Triggers: - \"how many invoices\" - \"which transporter has generated highest revenue\" → ranking + group_by - \"invoice distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average amount\" → highest/lowest/average + metric - \"paid/unpaid invoice count\" → count + useFor INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if amount is mentioned;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(amount) FILTER RULE — - \"Paid invoices\" → paid - \"unpaid\" or \"yet to be paid\" → unpaid - \"declined\" or \"cancelled\" → declined - \"Pending\" → pending - \"Partially paid\" → partialPaid DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by invoice type), reason over it before calling again. (Category: Analytics and Summary)
get_invoice_summary
ChatGPTGet aggregated invoice statistics: counts, summaries, distributions and rankings. Prefer over list_invoices for any count, sum, average, ranking, or distribution question about invoice. Triggers: - \"how many invoices\" - \"which transporter has generated highest revenue\" → ranking + group_by - \"invoice distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average amount\" → highest/lowest/average + metric - \"paid/unpaid invoice count\" → count + useFor INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if amount is mentioned;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(amount) FILTER RULE — - \"Paid invoices\" → paid - \"unpaid\" or \"yet to be paid\" → unpaid - \"declined\" or \"cancelled\" → declined - \"Pending\" → pending - \"Partially paid\" → partialPaid DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by invoice type), reason over it before calling again. (Category: Analytics and Summary)
get_invoice_summary
ChatGPTGet aggregated invoice statistics: counts, summaries, distributions and rankings. Prefer over list_invoices for any count, sum, average, ranking, or distribution question about invoice. Triggers: - \"how many invoices\" - \"which transporter has generated highest revenue\" → ranking + group_by - \"invoice distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average amount\" → highest/lowest/average + metric - \"paid/unpaid invoice count\" → count + useFor INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if amount is mentioned;group_by optional (add when user asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(amount) FILTER RULE — - \"Paid invoices\" → paid - \"unpaid\" or \"yet to be paid\" → unpaid - \"declined\" or \"cancelled\" → declined - \"Pending\" → pending - \"Partially paid\" → partialPaid DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). FOLLOW-UP RULE: If the prior response already contains the requested data (e.g. a distribution by invoice type), reason over it before calling again. (Category: Analytics and Summary)
get_logged_user
ChatGPTRetrieve basic profile details of the currently logged-in user. Use when the user asks who they are, their role, company, or account info. After fetching data, respond with a short, friendly summary including only name, role or group, and company or service provider. Do not reveal internal IDs, UUIDs, codes, emails, phone numbers, or system metadata unless explicitly requested. (Category: Master)
get_logged_user
ChatGPTRetrieve basic profile details of the currently logged-in user. Use when the user asks who they are, their role, company, or account info. After fetching data, respond with a short, friendly summary including only name, role or group, and company or service provider. Do not reveal internal IDs, UUIDs, codes, emails, phone numbers, or system metadata unless explicitly requested. (Category: Master)
get_logged_user
ChatGPTRetrieve basic profile details of the currently logged-in user. Use when the user asks who they are, their role, company, or account info. After fetching data, respond with a short, friendly summary including only name, role or group, and company or service provider. Do not reveal internal IDs, UUIDs, codes, emails, phone numbers, or system metadata unless explicitly requested. (Category: Master)
get_trip_summary
ChatGPTGet aggregated trip statistics: counts, summaries, distributions and rankings. Prefer over list_trips for any count, sum, average, ranking, or distribution question about trip. Triggers: - \"how many trips\" - \"which transporter/customer has most trips\" → ranking + group_by - \"trips distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average freight or quantity\" → highest/lowest/average + metric - \"which transporter delivered highest quantity\" → highest + metric + call_from + group_by - \"ongoing/completed trips\" → count + call_from - \"Driver with highest trips\" → highest + group_by INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount/freight;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount/freight) FILTER RULE — - \"ongoing\" or \"in-transit\" → in_transit - \"upcoming\" → upcomming_trips - \"scheduled\" → scheduled_listing - \"completed\" or \"delivered\" → trip_completed - \"shortage\" → shortage_trips DO NOT USE call_from - shortage_trips when intent is about ranking. JFI, shortage trips happen after it is marked delivered and delivered quantity is not what it should be delivered. DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). NOTE: The enum value for upcoming trips is \"upcomming_trips\" (double-m, intentional). (Category: Analytics and Summary)
get_trip_summary
ChatGPTGet aggregated trip statistics: counts, summaries, distributions and rankings. Prefer over list_trips for any count, sum, average, ranking, or distribution question about trip. Triggers: - \"how many trips\" - \"which transporter/customer has most trips\" → ranking + group_by - \"trips distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average freight or quantity\" → highest/lowest/average + metric - \"which transporter delivered highest quantity\" → highest + metric + call_from + group_by - \"ongoing/completed trips\" → count + call_from - \"Driver with highest trips\" → highest + group_by INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount/freight;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount/freight) FILTER RULE — - \"ongoing\" or \"in-transit\" → in_transit - \"upcoming\" → upcomming_trips - \"scheduled\" → scheduled_listing - \"completed\" or \"delivered\" → trip_completed - \"shortage\" → shortage_trips DO NOT USE call_from - shortage_trips when intent is about ranking. JFI, shortage trips happen after it is marked delivered and delivered quantity is not what it should be delivered. DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). NOTE: The enum value for upcoming trips is \"upcomming_trips\" (double-m, intentional). (Category: Analytics and Summary)
get_trip_summary
ChatGPTGet aggregated trip statistics: counts, summaries, distributions and rankings. Prefer over list_trips for any count, sum, average, ranking, or distribution question about trip. Triggers: - \"how many trips\" - \"which transporter/customer has most trips\" → ranking + group_by - \"trips distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average freight or quantity\" → highest/lowest/average + metric - \"which transporter delivered highest quantity\" → highest + metric + call_from + group_by - \"ongoing/completed trips\" → count + call_from - \"Driver with highest trips\" → highest + group_by INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount/freight;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(quantity or amount/freight) FILTER RULE — - \"ongoing\" or \"in-transit\" → in_transit - \"upcoming\" → upcomming_trips - \"scheduled\" → scheduled_listing - \"completed\" or \"delivered\" → trip_completed - \"shortage\" → shortage_trips DO NOT USE call_from - shortage_trips when intent is about ranking. JFI, shortage trips happen after it is marked delivered and delivered quantity is not what it should be delivered. DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). NOTE: The enum value for upcoming trips is \"upcomming_trips\" (double-m, intentional). (Category: Analytics and Summary)
get_vehicle_summary
ChatGPTGet aggregated truck or vehicle statistics: counts, summaries, distributions and rankings. Prefer over list_vehicles for any count, sum, average, ranking, or distribution question about truck or vehicle. Triggers: - \"how many trucks\" - \"which transporter has most truck\" → ranking + group_by - \"truck distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average capacity\" → highest/lowest/average + metric - \"which transporter has highest capacity\" → highest + metric + group_by - \"truck by cargo types\" → distribution + group_by=cargo - \"trucks by age or year\" → distribution + group_by=year - \"insurance expiry\" → expiry_summary + group_by=insurance_date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(capacity) NOTE — - DO NOT CHOOSE THIS for \"how many scheduled trucks\" → use list_trips(call_for: scheduled_listing). - useFor refers to vehicle status whereas summary_report refers to operational group, NEVER club them together. FILTER RULE — pick exactly ONE, never send both: useFor(single status) - \"Active vehicles\" → TRUCK_ACTIVE - \"InActive vehicles\" → TRUCK_INACTIVE - \"Parked vehicles\" → TRUCK_ARRIVEDTOPARKING - \"vehicles in safety check\" → TRUCK_ONGOINGSAFETYCHECK - \"is available to load straight forward\" → TRUCK_AVAILABLETOLOAD - \"vehicles under maintenance\" → TRUCK_MAINTENANCE - \"vehicles when trip is loaded and is on move\" → TRUCK_TRIPASSIGNED - \"vehicles returning from journey\" → TRUCK_RETURNJOURNEY - \"vehicles reject safety check\" → TRUCK_REJECTEDSAFETYCHECK - \"vehicles exited from parking\" → TRUCK_EXIT_FROM_PARKING - \"vehicles intiated with trip\" → TRUCK_TRIP_INITIATE - \"vehicles in-transit with trip\" → TRUCK_TRIP_INTRANSIT summary_report(operational condition) - \"vehicles not assigned with driver\" → unassigned_vehicles - \"vehicles assigned with driver\" → assigned_vehicles - \"vehicles vts disabled/enabled\" → truck_vts_enabled/truck_vts_disabled, - \"vehicles available\" → available_trucks - \"vehicles in use\" → in_use_trucks nothing defined use \"all_vehicles\" FOLLOW-UP RULE: If the user asks \"how many of those are X?\" and the prior tool response already contains a breakdown, compute the answer from that data. Do not call again. (Category: Analytics and Summary)
get_vehicle_summary
ChatGPTGet aggregated truck or vehicle statistics: counts, summaries, distributions and rankings. Prefer over list_vehicles for any count, sum, average, ranking, or distribution question about truck or vehicle. Triggers: - \"how many trucks\" - \"which transporter has most truck\" → ranking + group_by - \"truck distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average capacity\" → highest/lowest/average + metric - \"which transporter has highest capacity\" → highest + metric + group_by - \"truck by cargo types\" → distribution + group_by=cargo - \"trucks by age or year\" → distribution + group_by=year - \"insurance expiry\" → expiry_summary + group_by=insurance_date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(capacity) NOTE — - DO NOT CHOOSE THIS for \"how many scheduled trucks\" → use list_trips(call_for: scheduled_listing). - useFor refers to vehicle status whereas summary_report refers to operational group, NEVER club them together. FILTER RULE — pick exactly ONE, never send both: useFor(single status) - \"Active vehicles\" → TRUCK_ACTIVE - \"InActive vehicles\" → TRUCK_INACTIVE - \"Parked vehicles\" → TRUCK_ARRIVEDTOPARKING - \"vehicles in safety check\" → TRUCK_ONGOINGSAFETYCHECK - \"is available to load straight forward\" → TRUCK_AVAILABLETOLOAD - \"vehicles under maintenance\" → TRUCK_MAINTENANCE - \"vehicles when trip is loaded and is on move\" → TRUCK_TRIPASSIGNED - \"vehicles returning from journey\" → TRUCK_RETURNJOURNEY - \"vehicles reject safety check\" → TRUCK_REJECTEDSAFETYCHECK - \"vehicles exited from parking\" → TRUCK_EXIT_FROM_PARKING - \"vehicles intiated with trip\" → TRUCK_TRIP_INITIATE - \"vehicles in-transit with trip\" → TRUCK_TRIP_INTRANSIT summary_report(operational condition) - \"vehicles not assigned with driver\" → unassigned_vehicles - \"vehicles assigned with driver\" → assigned_vehicles - \"vehicles vts disabled/enabled\" → truck_vts_enabled/truck_vts_disabled, - \"vehicles available\" → available_trucks - \"vehicles in use\" → in_use_trucks nothing defined use \"all_vehicles\" FOLLOW-UP RULE: If the user asks \"how many of those are X?\" and the prior tool response already contains a breakdown, compute the answer from that data. Do not call again. (Category: Analytics and Summary)
get_vehicle_summary
ChatGPTGet aggregated truck or vehicle statistics: counts, summaries, distributions and rankings. Prefer over list_vehicles for any count, sum, average, ranking, or distribution question about truck or vehicle. Triggers: - \"how many trucks\" - \"which transporter has most truck\" → ranking + group_by - \"truck distribution by status/transporter/customer\" → distribution + group_by - \"highest/lowest/average capacity\" → highest/lowest/average + metric - \"which transporter has highest capacity\" → highest + metric + group_by - \"truck by cargo types\" → distribution + group_by=cargo - \"trucks by age or year\" → distribution + group_by=year - \"insurance expiry\" → expiry_summary + group_by=insurance_date INTENT RULES: count → no metric, no group_by total or average or highest or lowest → metric only if measuring a specific qty/amount;group_by optional (add whenuser asks 'by transporter or status' etc) distribution → group_by required, no metric ranking → group_by required; metric only if user explicitly names a metric(capacity) NOTE — - DO NOT CHOOSE THIS for \"how many scheduled trucks\" → use list_trips(call_for: scheduled_listing). - useFor refers to vehicle status whereas summary_report refers to operational group, NEVER club them together. FILTER RULE — pick exactly ONE, never send both: useFor(single status) - \"Active vehicles\" → TRUCK_ACTIVE - \"InActive vehicles\" → TRUCK_INACTIVE - \"Parked vehicles\" → TRUCK_ARRIVEDTOPARKING - \"vehicles in safety check\" → TRUCK_ONGOINGSAFETYCHECK - \"is available to load straight forward\" → TRUCK_AVAILABLETOLOAD - \"vehicles under maintenance\" → TRUCK_MAINTENANCE - \"vehicles when trip is loaded and is on move\" → TRUCK_TRIPASSIGNED - \"vehicles returning from journey\" → TRUCK_RETURNJOURNEY - \"vehicles reject safety check\" → TRUCK_REJECTEDSAFETYCHECK - \"vehicles exited from parking\" → TRUCK_EXIT_FROM_PARKING - \"vehicles intiated with trip\" → TRUCK_TRIP_INITIATE - \"vehicles in-transit with trip\" → TRUCK_TRIP_INTRANSIT summary_report(operational condition) - \"vehicles not assigned with driver\" → unassigned_vehicles - \"vehicles assigned with driver\" → assigned_vehicles - \"vehicles vts disabled/enabled\" → truck_vts_enabled/truck_vts_disabled, - \"vehicles available\" → available_trucks - \"vehicles in use\" → in_use_trucks nothing defined use \"all_vehicles\" FOLLOW-UP RULE: If the user asks \"how many of those are X?\" and the prior tool response already contains a breakdown, compute the answer from that data. Do not call again. (Category: Analytics and Summary)
link_driver_and_vehicle
ChatGPTLink or assign a driver to a truck. Use when the user asks to: - link a driver to a truck, assign a driver to a vehicle - attach a driver to a truck, pair a driver with a vehicle - connect a driver and a truck together use truck id from chained tools for vehicle id Requires resolve_entity for both the driver name and truck plate before calling. Confirms success by driver name and truck plate number. (Category: Truck Operations)
link_driver_and_vehicle
ChatGPTLink or assign a driver to a truck. Use when the user asks to: - link a driver to a truck, assign a driver to a vehicle - attach a driver to a truck, pair a driver with a vehicle - connect a driver and a truck together use truck id from chained tools for vehicle id Requires resolve_entity for both the driver name and truck plate before calling. Confirms success by driver name and truck plate number. (Category: Truck Operations)
link_driver_and_vehicle
ChatGPTLink or assign a driver to a truck. Use when the user asks to: - link a driver to a truck, assign a driver to a vehicle - attach a driver to a truck, pair a driver with a vehicle - connect a driver and a truck together use truck id from chained tools for vehicle id Requires resolve_entity for both the driver name and truck plate before calling. Confirms success by driver name and truck plate number. (Category: Truck Operations)
list_companies
ChatGPTList, search, and count companies and transporters. Use when the user asks to: - show companies, list transporters, how many companies, list or show offices - view company details or transporter information - how many active transporters are there under me use term to search for companies/transporter when asked about specific details. Returns company name, status, and contact details. Never expose internal IDs in responses. (Category: Master)
list_companies
ChatGPTList, search, and count companies and transporters. Use when the user asks to: - show companies, list transporters, how many companies, list or show offices - view company details or transporter information - how many active transporters are there under me use term to search for companies/transporter when asked about specific details. Returns company name, status, and contact details. Never expose internal IDs in responses. (Category: Master)
list_companies
ChatGPTList, search, and count companies and transporters. Use when the user asks to: - show companies, list transporters, how many companies, list or show offices - view company details or transporter information - how many active transporters are there under me use term to search for companies/transporter when asked about specific details. Returns company name, status, and contact details. Never expose internal IDs in responses. (Category: Master)
list_company_users
ChatGPTList, search, and count drivers. Use when the user asks to: - show users, list users, how many users - find a users by name - show active users, setupAccount users - count users for a transporter or company send account setup requires this to check setupAccount users for company Requires resolve_entity first if user provides a company name. Returns user name - status - associated profile. Never return Internal IDs in UX. (Category: Master)
list_company_users
ChatGPTList, search, and count drivers. Use when the user asks to: - show users, list users, how many users - find a users by name - show active users, setupAccount users - count users for a transporter or company send account setup requires this to check setupAccount users for company Requires resolve_entity first if user provides a company name. Returns user name - status - associated profile. Never return Internal IDs in UX. (Category: Master)
list_company_users
ChatGPTList, search, and count drivers. Use when the user asks to: - show users, list users, how many users - find a users by name - show active users, setupAccount users - count users for a transporter or company send account setup requires this to check setupAccount users for company Requires resolve_entity first if user provides a company name. Returns user name - status - associated profile. Never return Internal IDs in UX. (Category: Master)
list_customers
ChatGPTList and count customer companies. Use when the user asks to: - show customer companies, list customers - how many customer companies does a transporter have - view customer details for a specific transporter or company Requires resolve_entity first if user provides a transporter name. Returns customer company names, status, and contact details. (Category: Master)
list_customers
ChatGPTList and count customer companies. Use when the user asks to: - show customer companies, list customers - how many customer companies does a transporter have - view customer details for a specific transporter or company Requires resolve_entity first if user provides a transporter name. Returns customer company names, status, and contact details. (Category: Master)
list_customers
ChatGPTList and count customer companies. Use when the user asks to: - show customer companies, list customers - how many customer companies does a transporter have - view customer details for a specific transporter or company Requires resolve_entity first if user provides a transporter name. Returns customer company names, status, and contact details. (Category: Master)
list_delivery_orders
ChatGPTList, search, and view delivery orders. Use when the user asks to: - show delivery orders, list orders, view order details - find an order by order code - show pending, approved, in-progress, completed, cancelled, rejected, expired, or part-cancelled orders - show orders for a specific company or transporter - show order code - show orders by order type STATUS → status_filter: pending approval → PendingforApproval | pending scheduling → Approved active or ongoing or in progress → InProcess | done or delivered → Completed cancelled → Cancelled | part-cancelled → PartialCancelled DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Requires resolve_entity(term=trasporter), if user provides a company or transporter name. Requires resolve_entity(term=customer), if user provides a customer company name. Returns order code - status only to UX. (Category: Delivery order Operation)
list_delivery_orders
ChatGPTList, search, and view delivery orders. Use when the user asks to: - show delivery orders, list orders, view order details - find an order by order code - show pending, approved, in-progress, completed, cancelled, rejected, expired, or part-cancelled orders - show orders for a specific company or transporter - show order code - show orders by order type STATUS → status_filter: pending approval → PendingforApproval | pending scheduling → Approved active or ongoing or in progress → InProcess | done or delivered → Completed cancelled → Cancelled | part-cancelled → PartialCancelled DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Requires resolve_entity(term=trasporter), if user provides a company or transporter name. Requires resolve_entity(term=customer), if user provides a customer company name. Returns order code - status only to UX. (Category: Delivery order Operation)
list_delivery_orders
ChatGPTList, search, and view delivery orders. Use when the user asks to: - show delivery orders, list orders, view order details - find an order by order code - show pending, approved, in-progress, completed, cancelled, rejected, expired, or part-cancelled orders - show orders for a specific company or transporter - show order code - show orders by order type STATUS → status_filter: pending approval → PendingforApproval | pending scheduling → Approved active or ongoing or in progress → InProcess | done or delivered → Completed cancelled → Cancelled | part-cancelled → PartialCancelled DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Requires resolve_entity(term=trasporter), if user provides a company or transporter name. Requires resolve_entity(term=customer), if user provides a customer company name. Returns order code - status only to UX. (Category: Delivery order Operation)
list_drivers
ChatGPTList, search, and view drivers. Use when the user asks to: - show drivers, list drivers - show driver details(resolve_entity driver name first if filtering by driver) - show active drivers, inactive drivers, pending drivers for drivers license expiry - - today - gives data for license expired including today. - this_week - gives data for license expiring this week. - current_month - gives data for license expiring current month. - next_month - gives data for license expiring next month. - current_year - gives data for license expiring current year. Requires resolve_entity first if user provides a company name or driver name. Returns driver name - status - associate truck. (Category: Master)
list_drivers
ChatGPTList, search, and view drivers. Use when the user asks to: - show drivers, list drivers - show driver details(resolve_entity driver name first if filtering by driver) - show active drivers, inactive drivers, pending drivers for drivers license expiry - - today - gives data for license expired including today. - this_week - gives data for license expiring this week. - current_month - gives data for license expiring current month. - next_month - gives data for license expiring next month. - current_year - gives data for license expiring current year. Requires resolve_entity first if user provides a company name or driver name. Returns driver name - status - associate truck. (Category: Master)
list_drivers
ChatGPTList, search, and view drivers. Use when the user asks to: - show drivers, list drivers - show driver details(resolve_entity driver name first if filtering by driver) - show active drivers, inactive drivers, pending drivers for drivers license expiry - - today - gives data for license expired including today. - this_week - gives data for license expiring this week. - current_month - gives data for license expiring current month. - next_month - gives data for license expiring next month. - current_year - gives data for license expiring current year. Requires resolve_entity first if user provides a company name or driver name. Returns driver name - status - associate truck. (Category: Master)
list_expenses
ChatGPTList, search, and view expense records. Use when the user asks to: - show expenses, list expenses, view expense details - find an expense by expense code or trip code - show pending expenses, approved expenses, rejected expenses, declined expenses - show expenses for a specific truck, office or trip - show expenses for a specific month - total expense amount for trip(use filter_expense_code) RULE: include the amount in the output as a relevant column. DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to filter_start_date + filter_end_date (YYYY-MM-DD). Expense Updation Flow: - expense_status is not Pending , acknowledge user that expenses which are not in pending state can not be updated`. - call update_expense with existing expense details. - ask for confirmation prior updation from user Requires resolve_entity first if user provides a company name, truck plate or trip code. Never returns any internal IDs in UX response Returns expense code, expense name, amount, status. (Category: Expense Management)
list_expenses
ChatGPTList, search, and view expense records. Use when the user asks to: - show expenses, list expenses, view expense details - find an expense by expense code or trip code - show pending expenses, approved expenses, rejected expenses, declined expenses - show expenses for a specific truck, office or trip - show expenses for a specific month - total expense amount for trip(use filter_expense_code) RULE: include the amount in the output as a relevant column. DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to filter_start_date + filter_end_date (YYYY-MM-DD). Expense Updation Flow: - expense_status is not Pending , acknowledge user that expenses which are not in pending state can not be updated`. - call update_expense with existing expense details. - ask for confirmation prior updation from user Requires resolve_entity first if user provides a company name, truck plate or trip code. Never returns any internal IDs in UX response Returns expense code, expense name, amount, status. (Category: Expense Management)
list_expenses
ChatGPTList, search, and view expense records. Use when the user asks to: - show expenses, list expenses, view expense details - find an expense by expense code or trip code - show pending expenses, approved expenses, rejected expenses, declined expenses - show expenses for a specific truck, office or trip - show expenses for a specific month - total expense amount for trip(use filter_expense_code) RULE: include the amount in the output as a relevant column. DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to filter_start_date + filter_end_date (YYYY-MM-DD). Expense Updation Flow: - expense_status is not Pending , acknowledge user that expenses which are not in pending state can not be updated`. - call update_expense with existing expense details. - ask for confirmation prior updation from user Requires resolve_entity first if user provides a company name, truck plate or trip code. Never returns any internal IDs in UX response Returns expense code, expense name, amount, status. (Category: Expense Management)
list_fuel_depot_stock
ChatGPTUse for quantity/stock data. For depot metadata (name, address, status), use list_fuel_depots instead. Use when the user asks to: - show fuel stock, check fuel inventory, how much fuel is available - view fuel stock at a depot - check stock for a specific fuel type or transporter - show available fuel quantity at depots Issuing or creating fuel voucher for trip or truck flow - use entity_company_id from resolve_entity response earlier for transporter_id to fetch transporter specific fuel depots. Returns depot name, fuel type, available stock quantity, and allocation details. (Category: Fuel Management)
list_fuel_depot_stock
ChatGPTUse for quantity/stock data. For depot metadata (name, address, status), use list_fuel_depots instead. Use when the user asks to: - show fuel stock, check fuel inventory, how much fuel is available - view fuel stock at a depot - check stock for a specific fuel type or transporter - show available fuel quantity at depots Issuing or creating fuel voucher for trip or truck flow - use entity_company_id from resolve_entity response earlier for transporter_id to fetch transporter specific fuel depots. Returns depot name, fuel type, available stock quantity, and allocation details. (Category: Fuel Management)
list_fuel_depot_stock
ChatGPTUse for quantity/stock data. For depot metadata (name, address, status), use list_fuel_depots instead. Use when the user asks to: - show fuel stock, check fuel inventory, how much fuel is available - view fuel stock at a depot - check stock for a specific fuel type or transporter - show available fuel quantity at depots Issuing or creating fuel voucher for trip or truck flow - use entity_company_id from resolve_entity response earlier for transporter_id to fetch transporter specific fuel depots. Returns depot name, fuel type, available stock quantity, and allocation details. (Category: Fuel Management)
list_fuel_depots
ChatGPTList, search, and view fuel depots. Use when the user asks to: - show fuel depots, list depots, view depot details - find active or inactive fuel depots - search a fuel depot by code - show fuel depots for a specific transporter Requires resolve_entity first if user provides a transporter name. Returns fuel depot code, name, status and address. (Category: Fuel Management)
list_fuel_depots
ChatGPTList, search, and view fuel depots. Use when the user asks to: - show fuel depots, list depots, view depot details - find active or inactive fuel depots - search a fuel depot by code - show fuel depots for a specific transporter Requires resolve_entity first if user provides a transporter name. Returns fuel depot code, name, status and address. (Category: Fuel Management)
list_fuel_depots
ChatGPTList, search, and view fuel depots. Use when the user asks to: - show fuel depots, list depots, view depot details - find active or inactive fuel depots - search a fuel depot by code - show fuel depots for a specific transporter Requires resolve_entity first if user provides a transporter name. Returns fuel depot code, name, status and address. (Category: Fuel Management)
list_fuel_vouchers
ChatGPTList, search, and view fuel vouchers. Use when the user asks to: - show fuel vouchers, list vouchers, view voucher details - find a voucher by voucher code - show vouchers for a specific truck, trip, or transporter - show pending, approved, declined, partially used, or closed vouchers - show vouchers for (PMS), (AGO), CNG, kerosene (DPK) or LPG - show fuel vouchers today, this week, this month, this year DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Voucher Updation Flow: call update_fuel_voucher with existing voucher details. ask for confirmation prior updation from user Requires resolve_entity first if user provides a company, truck plate, or trip code. Returns voucher code, fuel type, quantity, status, and validity details. (Category: Fuel Management)
list_fuel_vouchers
ChatGPTList, search, and view fuel vouchers. Use when the user asks to: - show fuel vouchers, list vouchers, view voucher details - find a voucher by voucher code - show vouchers for a specific truck, trip, or transporter - show pending, approved, declined, partially used, or closed vouchers - show vouchers for (PMS), (AGO), CNG, kerosene (DPK) or LPG - show fuel vouchers today, this week, this month, this year DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Voucher Updation Flow: call update_fuel_voucher with existing voucher details. ask for confirmation prior updation from user Requires resolve_entity first if user provides a company, truck plate, or trip code. Returns voucher code, fuel type, quantity, status, and validity details. (Category: Fuel Management)
list_fuel_vouchers
ChatGPTList, search, and view fuel vouchers. Use when the user asks to: - show fuel vouchers, list vouchers, view voucher details - find a voucher by voucher code - show vouchers for a specific truck, trip, or transporter - show pending, approved, declined, partially used, or closed vouchers - show vouchers for (PMS), (AGO), CNG, kerosene (DPK) or LPG - show fuel vouchers today, this week, this month, this year DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Voucher Updation Flow: call update_fuel_voucher with existing voucher details. ask for confirmation prior updation from user Requires resolve_entity first if user provides a company, truck plate, or trip code. Returns voucher code, fuel type, quantity, status, and validity details. (Category: Fuel Management)
list_invoices
ChatGPTList, search, and view invoices and purchase orders. Use when the user asks to: - show invoices, list invoices, view invoice details - find invoices by vendor or transporter name - show unpaid invoices, paid invoices, partially paid invoices, pending invoices, declined invoices - show invoices for a specific company or transporter - show invoices for this month DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Requires resolve_entity first if user provides a vendor or transporter name. Returns invoice code, amount, payment status. (Category: Invoice Management)
list_invoices
ChatGPTList, search, and view invoices and purchase orders. Use when the user asks to: - show invoices, list invoices, view invoice details - find invoices by vendor or transporter name - show unpaid invoices, paid invoices, partially paid invoices, pending invoices, declined invoices - show invoices for a specific company or transporter - show invoices for this month DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Requires resolve_entity first if user provides a vendor or transporter name. Returns invoice code, amount, payment status. (Category: Invoice Management)
list_invoices
ChatGPTList, search, and view invoices and purchase orders. Use when the user asks to: - show invoices, list invoices, view invoice details - find invoices by vendor or transporter name - show unpaid invoices, paid invoices, partially paid invoices, pending invoices, declined invoices - show invoices for a specific company or transporter - show invoices for this month DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to start_date + end_date` (YYYY-MM-DD). Requires resolve_entity first if user provides a vendor or transporter name. Returns invoice code, amount, payment status. (Category: Invoice Management)
list_liquid_products
ChatGPTList available fuel product types. Use when the user asks to: - show fuel products, list fuel types - find details about petrol (PMS), diesel (AGO), CNG, kerosene (DPK) or LPG - confirm valid fuel type codes before creating a voucher Returns fuel product name, short code, and internal ID. (Category: Master)
list_liquid_products
ChatGPTList available fuel product types. Use when the user asks to: - show fuel products, list fuel types - find details about petrol (PMS), diesel (AGO), CNG, kerosene (DPK) or LPG - confirm valid fuel type codes before creating a voucher Returns fuel product name, short code, and internal ID. (Category: Master)
list_liquid_products
ChatGPTList available fuel product types. Use when the user asks to: - show fuel products, list fuel types - find details about petrol (PMS), diesel (AGO), CNG, kerosene (DPK) or LPG - confirm valid fuel type codes before creating a voucher Returns fuel product name, short code, and internal ID. (Category: Master)
list_parking_depot
ChatGPTList, search, and view parking spaces or depots. Use when the user asks to: - show parking, list parking, view parking details - find an parking with available space - show parking for transporter parking truck flow - use entity_company_id from resolve_entity response earlier for company_id to fetch transporter specific parking depots. Returns parking_id to downstream tools for parking vehicles. Requires resolve_entity first if user provides a company or transporter name. Returns Parking Details with other necessary details. (Category: Truck Operations)
list_parking_depot
ChatGPTList, search, and view parking spaces or depots. Use when the user asks to: - show parking, list parking, view parking details - find an parking with available space - show parking for transporter parking truck flow - use entity_company_id from resolve_entity response earlier for company_id to fetch transporter specific parking depots. Returns parking_id to downstream tools for parking vehicles. Requires resolve_entity first if user provides a company or transporter name. Returns Parking Details with other necessary details. (Category: Truck Operations)
list_parking_depot
ChatGPTList, search, and view parking spaces or depots. Use when the user asks to: - show parking, list parking, view parking details - find an parking with available space - show parking for transporter parking truck flow - use entity_company_id from resolve_entity response earlier for company_id to fetch transporter specific parking depots. Returns parking_id to downstream tools for parking vehicles. Requires resolve_entity first if user provides a company or transporter name. Returns Parking Details with other necessary details. (Category: Truck Operations)
list_trips
ChatGPTList, search, and view trips. Use when the user asks to: - show trips, list trips - view trip details or trip status - find trips by trip code, date, truck, or driver - show upcoming trips, trips in transit/ongoing, completed trips, scheduled trips, shortage trips - show trips for a specific truck or driver - show trips this week, this month, today, yesterday - show me trip code - show me or how many scheduled Trucks ( call_for:scheduled_listing) - find trips under transporter(helper for adding expense, fuel voucher) DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to filter_start_date + filter_end_date` (YYYY-MM-DD). Requires resolve_entity first if user provides a company name, truck plate, or driver name. Returns trip code - status. (Category: Trips Operations)
list_trips
ChatGPTList, search, and view trips. Use when the user asks to: - show trips, list trips - view trip details or trip status - find trips by trip code, date, truck, or driver - show upcoming trips, trips in transit/ongoing, completed trips, scheduled trips, shortage trips - show trips for a specific truck or driver - show trips this week, this month, today, yesterday - show me trip code - show me or how many scheduled Trucks ( call_for:scheduled_listing) - find trips under transporter(helper for adding expense, fuel voucher) DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to filter_start_date + filter_end_date` (YYYY-MM-DD). Requires resolve_entity first if user provides a company name, truck plate, or driver name. Returns trip code - status. (Category: Trips Operations)
list_trips
ChatGPTList, search, and view trips. Use when the user asks to: - show trips, list trips - view trip details or trip status - find trips by trip code, date, truck, or driver - show upcoming trips, trips in transit/ongoing, completed trips, scheduled trips, shortage trips - show trips for a specific truck or driver - show trips this week, this month, today, yesterday - show me trip code - show me or how many scheduled Trucks ( call_for:scheduled_listing) - find trips under transporter(helper for adding expense, fuel voucher) DATE RULE: Default show current year data - start_date ' 2026-01-01 and end_date 2026-12-31. convert to filter_start_date + filter_end_date` (YYYY-MM-DD). Requires resolve_entity first if user provides a company name, truck plate, or driver name. Returns trip code - status. (Category: Trips Operations)
list_vehicles
ChatGPTList, view and search trucks and vehicles. Use when the user asks: - trucks, list vehicles - a truck by plate number, use resolve_entity(\"entity\": \"trucks\",\"term\":truck plate) for filtering by truck_id. - trucks by cargo type (wet cargo, dry cargo, bulk cargo, container cargo) - trucks by capacity or route category - truck or vehicle detail status_filter(single status) - \"Active vehicles\" → TRUCK_ACTIVE - \"InActive vehicles\" → TRUCK_INACTIVE - \"Parked vehicles\" → TRUCK_ARRIVEDTOPARKING - \"vehicles in safety check\" → TRUCK_ONGOINGSAFETYCHECK - \"is available to load straight forward\" → TRUCK_AVAILABLETOLOAD - \"vehicles under maintenance\" → TRUCK_MAINTENANCE - \"vehicles when trip is loaded and is on move\" → TRUCK_TRIPASSIGNED - \"vehicles returning from journey\" → TRUCK_RETURNJOURNEY - \"vehicles reject safety check\" → TRUCK_REJECTEDSAFETYCHECK - \"vehicles exited from parking\" → TRUCK_EXIT_FROM_PARKING - \"vehicles intiated/ongoing with trip\" → TRUCK_TRIP_INITIATE Use vehicle_group when user asks for: - \"vehicles not assigned with driver\" → unassigned_vehicles - \"vehicles assigned with driver\" → assigned_vehicles - \"vehicles vts disabled/enabled\" → truck_vts_enabled/truck_vts_disabled, - \"vehicles available\" → available_trucks - \"vehicles in use\" → in_use_trucks nothing defined use \"all_vehicles\" for vehicles insurance expiry : - expired - already expired insurance - today - insurance expiring today. - this_week - insurance expiring this week. - current_month - insurance expiring current month. - next_month - insurance expiring next month. - current_year - insurance expiring current year. use strict \"enum\" values for both filters Requires resolve_entity first if user provides a company name/truck plate/driver name. send associated driver id to downstream tools when required. Returns truck plate - status only to user. (Category: Truck Operations)
list_vehicles
ChatGPTList, view and search trucks and vehicles. Use when the user asks: - trucks, list vehicles - a truck by plate number, use resolve_entity(\"entity\": \"trucks\",\"term\":truck plate) for filtering by truck_id. - trucks by cargo type (wet cargo, dry cargo, bulk cargo, container cargo) - trucks by capacity or route category - truck or vehicle detail status_filter(single status) - \"Active vehicles\" → TRUCK_ACTIVE - \"InActive vehicles\" → TRUCK_INACTIVE - \"Parked vehicles\" → TRUCK_ARRIVEDTOPARKING - \"vehicles in safety check\" → TRUCK_ONGOINGSAFETYCHECK - \"is available to load straight forward\" → TRUCK_AVAILABLETOLOAD - \"vehicles under maintenance\" → TRUCK_MAINTENANCE - \"vehicles when trip is loaded and is on move\" → TRUCK_TRIPASSIGNED - \"vehicles returning from journey\" → TRUCK_RETURNJOURNEY - \"vehicles reject safety check\" → TRUCK_REJECTEDSAFETYCHECK - \"vehicles exited from parking\" → TRUCK_EXIT_FROM_PARKING - \"vehicles intiated/ongoing with trip\" → TRUCK_TRIP_INITIATE Use vehicle_group when user asks for: - \"vehicles not assigned with driver\" → unassigned_vehicles - \"vehicles assigned with driver\" → assigned_vehicles - \"vehicles vts disabled/enabled\" → truck_vts_enabled/truck_vts_disabled, - \"vehicles available\" → available_trucks - \"vehicles in use\" → in_use_trucks nothing defined use \"all_vehicles\" for vehicles insurance expiry : - expired - already expired insurance - today - insurance expiring today. - this_week - insurance expiring this week. - current_month - insurance expiring current month. - next_month - insurance expiring next month. - current_year - insurance expiring current year. use strict \"enum\" values for both filters Requires resolve_entity first if user provides a company name/truck plate/driver name. send associated driver id to downstream tools when required. Returns truck plate - status only to user. (Category: Truck Operations)
list_vehicles
ChatGPTList, view and search trucks and vehicles. Use when the user asks: - trucks, list vehicles - a truck by plate number, use resolve_entity(\"entity\": \"trucks\",\"term\":truck plate) for filtering by truck_id. - trucks by cargo type (wet cargo, dry cargo, bulk cargo, container cargo) - trucks by capacity or route category - truck or vehicle detail status_filter(single status) - \"Active vehicles\" → TRUCK_ACTIVE - \"InActive vehicles\" → TRUCK_INACTIVE - \"Parked vehicles\" → TRUCK_ARRIVEDTOPARKING - \"vehicles in safety check\" → TRUCK_ONGOINGSAFETYCHECK - \"is available to load straight forward\" → TRUCK_AVAILABLETOLOAD - \"vehicles under maintenance\" → TRUCK_MAINTENANCE - \"vehicles when trip is loaded and is on move\" → TRUCK_TRIPASSIGNED - \"vehicles returning from journey\" → TRUCK_RETURNJOURNEY - \"vehicles reject safety check\" → TRUCK_REJECTEDSAFETYCHECK - \"vehicles exited from parking\" → TRUCK_EXIT_FROM_PARKING - \"vehicles intiated/ongoing with trip\" → TRUCK_TRIP_INITIATE Use vehicle_group when user asks for: - \"vehicles not assigned with driver\" → unassigned_vehicles - \"vehicles assigned with driver\" → assigned_vehicles - \"vehicles vts disabled/enabled\" → truck_vts_enabled/truck_vts_disabled, - \"vehicles available\" → available_trucks - \"vehicles in use\" → in_use_trucks nothing defined use \"all_vehicles\" for vehicles insurance expiry : - expired - already expired insurance - today - insurance expiring today. - this_week - insurance expiring this week. - current_month - insurance expiring current month. - next_month - insurance expiring next month. - current_year - insurance expiring current year. use strict \"enum\" values for both filters Requires resolve_entity first if user provides a company name/truck plate/driver name. send associated driver id to downstream tools when required. Returns truck plate - status only to user. (Category: Truck Operations)
park_vehicle
ChatGPTPark truck or vehicle at parking depot. This is a write-only operation and must be executed exactly once after all required inputs are collected and confirmed. Use when the user asks to: - park or parking vehicle Requires list_parking_depot and have valid parking_id from tool response ,DO NOT guess staging_parking_id. Requires resolve_entity to validate truck plate. fetch truck and its associated driver from list_vehicles(truck_id). if no driver is there, ask user to provide temporary driver name for parking same truck, After the User names the driver use resolve_entity to fetch the driver ID first. when user mentions no entry_time, use current time frame by default do not ask. Never ask user for any internal IDs to provide. Acknowledges success with the confirmation message only when tool response is success, DO NOT assume success. (Category: Truck Operations)
park_vehicle
ChatGPTPark truck or vehicle at parking depot. This is a write-only operation and must be executed exactly once after all required inputs are collected and confirmed. Use when the user asks to: - park or parking vehicle Requires list_parking_depot and have valid parking_id from tool response ,DO NOT guess staging_parking_id. Requires resolve_entity to validate truck plate. fetch truck and its associated driver from list_vehicles(truck_id). if no driver is there, ask user to provide temporary driver name for parking same truck, After the User names the driver use resolve_entity to fetch the driver ID first. when user mentions no entry_time, use current time frame by default do not ask. Never ask user for any internal IDs to provide. Acknowledges success with the confirmation message only when tool response is success, DO NOT assume success. (Category: Truck Operations)
park_vehicle
ChatGPTPark truck or vehicle at parking depot. This is a write-only operation and must be executed exactly once after all required inputs are collected and confirmed. Use when the user asks to: - park or parking vehicle Requires list_parking_depot and have valid parking_id from tool response ,DO NOT guess staging_parking_id. Requires resolve_entity to validate truck plate. fetch truck and its associated driver from list_vehicles(truck_id). if no driver is there, ask user to provide temporary driver name for parking same truck, After the User names the driver use resolve_entity to fetch the driver ID first. when user mentions no entry_time, use current time frame by default do not ask. Never ask user for any internal IDs to provide. Acknowledges success with the confirmation message only when tool response is success, DO NOT assume success. (Category: Truck Operations)
redeem_fuel_voucher
ChatGPTRedeem a fuel voucher fully or partially. Use when the user asks to: - redeem a fuel voucher, use a voucher, consume fuel from a voucher - partially redeem a voucher - mark fuel as used against a voucher Requires list_fuel_vouchers first to locate the approved voucher. Requires confirmation of the quantity to redeem from the user. Acknowledges success with the fuel voucher code. (Category: Fuel Management)
redeem_fuel_voucher
ChatGPTRedeem a fuel voucher fully or partially. Use when the user asks to: - redeem a fuel voucher, use a voucher, consume fuel from a voucher - partially redeem a voucher - mark fuel as used against a voucher Requires list_fuel_vouchers first to locate the approved voucher. Requires confirmation of the quantity to redeem from the user. Acknowledges success with the fuel voucher code. (Category: Fuel Management)
redeem_fuel_voucher
ChatGPTRedeem a fuel voucher fully or partially. Use when the user asks to: - redeem a fuel voucher, use a voucher, consume fuel from a voucher - partially redeem a voucher - mark fuel as used against a voucher Requires list_fuel_vouchers first to locate the approved voucher. Requires confirmation of the quantity to redeem from the user. Acknowledges success with the fuel voucher code. (Category: Fuel Management)
resend_user_account_setup
ChatGPTResend the account setup email to a user. Use when the user asks to: - resend account setup email, resend onboarding email - send setup link again to a user - re-invite a user to set up their account Requires list_company_users first to identify the target user and their company. Confirms success once the email has been resent. (Category: Master)
resend_user_account_setup
ChatGPTResend the account setup email to a user. Use when the user asks to: - resend account setup email, resend onboarding email - send setup link again to a user - re-invite a user to set up their account Requires list_company_users first to identify the target user and their company. Confirms success once the email has been resent. (Category: Master)
resend_user_account_setup
ChatGPTResend the account setup email to a user. Use when the user asks to: - resend account setup email, resend onboarding email - send setup link again to a user - re-invite a user to set up their account Requires list_company_users first to identify the target user and their company. Confirms success once the email has been resent. (Category: Master)
resolve_entity
ChatGPTEntity resolver tool Resolves entity names, codes, and plate numbers to internal IDs. Use when the user refers to any of the following by name or code: - truck plate number (e.g. \"truck MAR415\", \"vehicle MH12AB1234\") - driver name (e.g. \"driver Raj Patel\") - company or transporter name (e.g. \"ABC Logistics\") - customer name (e.g.\"NTC customer\") - trip code (e.g. \"trip TRP/26/01/00001\") - delivery order code (e.g. \"DRO/26/01/00001\") - fuel voucher code (e.g. \"FV/26/01/00001\") - invoice code (e.g. \"TPV/26/00001\") - expense code (e.g. \"EXP/26/00001\") - user name IMPORTANT: 'office' is NOT a valid entity. Office expenses use the transporter company ID directly — resolve via entity='transporter' instead. Never pass entity='office' to this tool. For fuel depot: use resolve_entity(entity='fueldepot') when user refers to a depot by name or code and you need its internal ID. Use list_fuel_depots when user wants to browse or list depots. For parking depot: Use list_parking_depot when user wants to search or browse or list parking depots. NOTE: - Always call this tool before any operation that requires an internal ID with respective entity. - Never guess entity on your own, use strict entity from provided enums. - Always returns the internal ID to use in downstream tool calls. - Never display resolved internal IDs to the UX. - if multiple response, ask user to select from options. (Category: Master)
resolve_entity
ChatGPTEntity resolver tool Resolves entity names, codes, and plate numbers to internal IDs. Use when the user refers to any of the following by name or code: - truck plate number (e.g. \"truck MAR415\", \"vehicle MH12AB1234\") - driver name (e.g. \"driver Raj Patel\") - company or transporter name (e.g. \"ABC Logistics\") - customer name (e.g.\"NTC customer\") - trip code (e.g. \"trip TRP/26/01/00001\") - delivery order code (e.g. \"DRO/26/01/00001\") - fuel voucher code (e.g. \"FV/26/01/00001\") - invoice code (e.g. \"TPV/26/00001\") - expense code (e.g. \"EXP/26/00001\") - user name IMPORTANT: 'office' is NOT a valid entity. Office expenses use the transporter company ID directly — resolve via entity='transporter' instead. Never pass entity='office' to this tool. For fuel depot: use resolve_entity(entity='fueldepot') when user refers to a depot by name or code and you need its internal ID. Use list_fuel_depots when user wants to browse or list depots. For parking depot: Use list_parking_depot when user wants to search or browse or list parking depots. NOTE: - Always call this tool before any operation that requires an internal ID with respective entity. - Never guess entity on your own, use strict entity from provided enums. - Always returns the internal ID to use in downstream tool calls. - Never display resolved internal IDs to the UX. - if multiple response, ask user to select from options. (Category: Master)
resolve_entity
ChatGPTEntity resolver tool Resolves entity names, codes, and plate numbers to internal IDs. Use when the user refers to any of the following by name or code: - truck plate number (e.g. \"truck MAR415\", \"vehicle MH12AB1234\") - driver name (e.g. \"driver Raj Patel\") - company or transporter name (e.g. \"ABC Logistics\") - customer name (e.g.\"NTC customer\") - trip code (e.g. \"trip TRP/26/01/00001\") - delivery order code (e.g. \"DRO/26/01/00001\") - fuel voucher code (e.g. \"FV/26/01/00001\") - invoice code (e.g. \"TPV/26/00001\") - expense code (e.g. \"EXP/26/00001\") - user name IMPORTANT: 'office' is NOT a valid entity. Office expenses use the transporter company ID directly — resolve via entity='transporter' instead. Never pass entity='office' to this tool. For fuel depot: use resolve_entity(entity='fueldepot') when user refers to a depot by name or code and you need its internal ID. Use list_fuel_depots when user wants to browse or list depots. For parking depot: Use list_parking_depot when user wants to search or browse or list parking depots. NOTE: - Always call this tool before any operation that requires an internal ID with respective entity. - Never guess entity on your own, use strict entity from provided enums. - Always returns the internal ID to use in downstream tool calls. - Never display resolved internal IDs to the UX. - if multiple response, ask user to select from options. (Category: Master)
resolve_expense_category
ChatGPTFetch valid expense category codes for creating or updating an expense. REQUIRED WORKFLOW: 1. MUST be called BEFORE create_expense or update_expense 2. User selects from returned categories (never invent category codes) Returns categories with subcategory codes. Present subcategory names to user for selection. Pass the selected subcategory's 'code' field to create_expense or update_expense. Use when: - User mentions adding or updating an expense - User asks 'what expense types are available' - Validating expense category before submission (Category: Expense Management)
resolve_expense_category
ChatGPTFetch valid expense category codes for creating or updating an expense. REQUIRED WORKFLOW: 1. MUST be called BEFORE create_expense or update_expense 2. User selects from returned categories (never invent category codes) Returns categories with subcategory codes. Present subcategory names to user for selection. Pass the selected subcategory's 'code' field to create_expense or update_expense. Use when: - User mentions adding or updating an expense - User asks 'what expense types are available' - Validating expense category before submission (Category: Expense Management)
resolve_expense_category
ChatGPTFetch valid expense category codes for creating or updating an expense. REQUIRED WORKFLOW: 1. MUST be called BEFORE create_expense or update_expense 2. User selects from returned categories (never invent category codes) Returns categories with subcategory codes. Present subcategory names to user for selection. Pass the selected subcategory's 'code' field to create_expense or update_expense. Use when: - User mentions adding or updating an expense - User asks 'what expense types are available' - Validating expense category before submission (Category: Expense Management)
route_validate
ChatGPTValidate and retrieve route categories for truck filtering. Use when the user asks to: - show trucks on a specific route or category - filter vehicles by route name or category - validate a route category before filtering trucks Returns route category name, code, and status. Always call this before using category_route filter in list_vehicles. (Category: Truck Operations)
route_validate
ChatGPTValidate and retrieve route categories for truck filtering. Use when the user asks to: - show trucks on a specific route or category - filter vehicles by route name or category - validate a route category before filtering trucks Returns route category name, code, and status. Always call this before using category_route filter in list_vehicles. (Category: Truck Operations)
route_validate
ChatGPTValidate and retrieve route categories for truck filtering. Use when the user asks to: - show trucks on a specific route or category - filter vehicles by route name or category - validate a route category before filtering trucks Returns route category name, code, and status. Always call this before using category_route filter in list_vehicles. (Category: Truck Operations)
set_vehicle_to_maintenance
ChatGPTSend a truck or vehicle to maintenance. Use when the user asks to: - put a truck or vehicle in maintenance, send truck or vehicle for repair - set truck or vehicle status to maintenance - mark a truck or vehicle as under maintenance - schedule maintenance for a truck or vehicle Requires resolve_entity first to find the truck by plate number. Accepts an optional expected completion date. Acknowledges success with the truck plate number. (Category: Truck Operations)
set_vehicle_to_maintenance
ChatGPTSend a truck or vehicle to maintenance. Use when the user asks to: - put a truck or vehicle in maintenance, send truck or vehicle for repair - set truck or vehicle status to maintenance - mark a truck or vehicle as under maintenance - schedule maintenance for a truck or vehicle Requires resolve_entity first to find the truck by plate number. Accepts an optional expected completion date. Acknowledges success with the truck plate number. (Category: Truck Operations)
set_vehicle_to_maintenance
ChatGPTSend a truck or vehicle to maintenance. Use when the user asks to: - put a truck or vehicle in maintenance, send truck or vehicle for repair - set truck or vehicle status to maintenance - mark a truck or vehicle as under maintenance - schedule maintenance for a truck or vehicle Requires resolve_entity first to find the truck by plate number. Accepts an optional expected completion date. Acknowledges success with the truck plate number. (Category: Truck Operations)
update_expense
ChatGPTEdit or update an existing expense record. STRICT: Only call this when user explicitly says 'edit', 'update', 'modify', or 'correct' an existing expense. NEVER call this for new expense creation requests, even if a prior expense exists in the conversation. PRE-FLIGHT CHECKS: - Only update an expense when the user explicitly references it by expense code or says 'update the one I just created'. Never proactively reuse expense IDs from prior turns without user direction. - Requires list_expenses(filter_expense_code=<expense code),DO NOT CALL resolve_entity(entity=expense) for this operation. - Only Pending expenses can be updated. - Requires resolve_expense_category to validate the new expense type if changing or modifying it. Response: Acknowledges success with the expense code.DO NOT GUESS SUCCESS (Category: Expense Management)
update_expense
ChatGPTEdit or update an existing expense record. STRICT: Only call this when user explicitly says 'edit', 'update', 'modify', or 'correct' an existing expense. NEVER call this for new expense creation requests, even if a prior expense exists in the conversation. PRE-FLIGHT CHECKS: - Only update an expense when the user explicitly references it by expense code or says 'update the one I just created'. Never proactively reuse expense IDs from prior turns without user direction. - Requires list_expenses(filter_expense_code=<expense code),DO NOT CALL resolve_entity(entity=expense) for this operation. - Only Pending expenses can be updated. - Requires resolve_expense_category to validate the new expense type if changing or modifying it. Response: Acknowledges success with the expense code.DO NOT GUESS SUCCESS (Category: Expense Management)
update_expense
ChatGPTEdit or update an existing expense record. STRICT: Only call this when user explicitly says 'edit', 'update', 'modify', or 'correct' an existing expense. NEVER call this for new expense creation requests, even if a prior expense exists in the conversation. PRE-FLIGHT CHECKS: - Only update an expense when the user explicitly references it by expense code or says 'update the one I just created'. Never proactively reuse expense IDs from prior turns without user direction. - Requires list_expenses(filter_expense_code=<expense code),DO NOT CALL resolve_entity(entity=expense) for this operation. - Only Pending expenses can be updated. - Requires resolve_expense_category to validate the new expense type if changing or modifying it. Response: Acknowledges success with the expense code.DO NOT GUESS SUCCESS (Category: Expense Management)
update_expense_status
ChatGPTApprove, reject, or decline an existing expense. Use when the user asks to: - approve an expense, reject an expense, decline an expense - change the status of an expense - review and approve a pending expense IMPORTANT: The value of type MUST be exactly one of: Approve, Reject, Decline Do NOT use Approved or Rejected or Declined. Requires resolve_entity first to locate the expense internal ID. Requires confirmation of the new status from the user. Acknowledges success with the expense code. (Category: Expense Management)
update_expense_status
ChatGPTApprove, reject, or decline an existing expense. Use when the user asks to: - approve an expense, reject an expense, decline an expense - change the status of an expense - review and approve a pending expense IMPORTANT: The value of type MUST be exactly one of: Approve, Reject, Decline Do NOT use Approved or Rejected or Declined. Requires resolve_entity first to locate the expense internal ID. Requires confirmation of the new status from the user. Acknowledges success with the expense code. (Category: Expense Management)
update_expense_status
ChatGPTApprove, reject, or decline an existing expense. Use when the user asks to: - approve an expense, reject an expense, decline an expense - change the status of an expense - review and approve a pending expense IMPORTANT: The value of type MUST be exactly one of: Approve, Reject, Decline Do NOT use Approved or Rejected or Declined. Requires resolve_entity first to locate the expense internal ID. Requires confirmation of the new status from the user. Acknowledges success with the expense code. (Category: Expense Management)
update_fuel_voucher
ChatGPTEdit or update an existing fuel voucher record. STRICT: Only call this when user explicitly says 'edit', 'update', 'modify', or 'correct' an existing fuel voucher. NEVER call this for new voucher creation requests, even if a prior voucher exists in the conversation. Pre-call checklist: - fetch Fuel Voucher Details using list_fuel_voucher(search_voucher_code).DO NOT CALL resolve_entity for this operation. - confirm what User Wants To update or change or modify. - update exactly those information in inputs, rest send all mapped inputs from voucher details. Acknowledge user with updated voucher code, with tool call success only. Never GUESS confirmation on own. Never expose internal IDs in responses. (Category: Fuel Management)
update_fuel_voucher
ChatGPTEdit or update an existing fuel voucher record. STRICT: Only call this when user explicitly says 'edit', 'update', 'modify', or 'correct' an existing fuel voucher. NEVER call this for new voucher creation requests, even if a prior voucher exists in the conversation. Pre-call checklist: - fetch Fuel Voucher Details using list_fuel_voucher(search_voucher_code).DO NOT CALL resolve_entity for this operation. - confirm what User Wants To update or change or modify. - update exactly those information in inputs, rest send all mapped inputs from voucher details. Acknowledge user with updated voucher code, with tool call success only. Never GUESS confirmation on own. Never expose internal IDs in responses. (Category: Fuel Management)
update_fuel_voucher
ChatGPTEdit or update an existing fuel voucher record. STRICT: Only call this when user explicitly says 'edit', 'update', 'modify', or 'correct' an existing fuel voucher. NEVER call this for new voucher creation requests, even if a prior voucher exists in the conversation. Pre-call checklist: - fetch Fuel Voucher Details using list_fuel_voucher(search_voucher_code).DO NOT CALL resolve_entity for this operation. - confirm what User Wants To update or change or modify. - update exactly those information in inputs, rest send all mapped inputs from voucher details. Acknowledge user with updated voucher code, with tool call success only. Never GUESS confirmation on own. Never expose internal IDs in responses. (Category: Fuel Management)
update_fuel_voucher_status
ChatGPTApprove, decline, or cancel a fuel voucher. Use when the user asks to: - approve a fuel voucher, decline a voucher, cancel a voucher - change the status of a fuel voucher - review and approve a pending fuel voucher IMPORTANT: The value of voucher_status MUST be exactly from enums['Approved','Declined','Cancelled'] Requires list_fuel_vouchers first to locate the voucher. Requires confirmation of the new status from the user. Acknowledge success with the updated voucher code and status. (Category: Fuel Management)
update_fuel_voucher_status
ChatGPTApprove, decline, or cancel a fuel voucher. Use when the user asks to: - approve a fuel voucher, decline a voucher, cancel a voucher - change the status of a fuel voucher - review and approve a pending fuel voucher IMPORTANT: The value of voucher_status MUST be exactly from enums['Approved','Declined','Cancelled'] Requires list_fuel_vouchers first to locate the voucher. Requires confirmation of the new status from the user. Acknowledge success with the updated voucher code and status. (Category: Fuel Management)
update_fuel_voucher_status
ChatGPTApprove, decline, or cancel a fuel voucher. Use when the user asks to: - approve a fuel voucher, decline a voucher, cancel a voucher - change the status of a fuel voucher - review and approve a pending fuel voucher IMPORTANT: The value of voucher_status MUST be exactly from enums['Approved','Declined','Cancelled'] Requires list_fuel_vouchers first to locate the voucher. Requires confirmation of the new status from the user. Acknowledge success with the updated voucher code and status. (Category: Fuel Management)
update_purchase_order_status
ChatGPTApprove or decline a delivery order or purchase order. Use when the user asks to: - approve a delivery order, decline a delivery order - update the status of a purchase order - review and approve or reject a pending delivery order Requires resolve_entity first to locate the delivery order. Acknowledges success with the delivery order code. (Category: Delivery order Operation)
update_purchase_order_status
ChatGPTApprove or decline a delivery order or purchase order. Use when the user asks to: - approve a delivery order, decline a delivery order - update the status of a purchase order - review and approve or reject a pending delivery order Requires resolve_entity first to locate the delivery order. Acknowledges success with the delivery order code. (Category: Delivery order Operation)
update_purchase_order_status
ChatGPTApprove or decline a delivery order or purchase order. Use when the user asks to: - approve a delivery order, decline a delivery order - update the status of a purchase order - review and approve or reject a pending delivery order Requires resolve_entity first to locate the delivery order. Acknowledges success with the delivery order code. (Category: Delivery order Operation)
vehicle_back_to_service
ChatGPTReturn a truck or vehicle from maintenance back to active service. Use when the user asks to: - bring a truck or vehicle back from maintenance, truck is repaired - mark a truck or vehicle as active again after maintenance - return a truck or vehicle to service, truck maintenance completed - reactivate a truck or vehicle after repair Requires resolve_entity first to find the truck by plate number. Truck must currently be in maintenance status. Acknowledges success with the truck plate number. (Category: Truck Operations)
vehicle_back_to_service
ChatGPTReturn a truck or vehicle from maintenance back to active service. Use when the user asks to: - bring a truck or vehicle back from maintenance, truck is repaired - mark a truck or vehicle as active again after maintenance - return a truck or vehicle to service, truck maintenance completed - reactivate a truck or vehicle after repair Requires resolve_entity first to find the truck by plate number. Truck must currently be in maintenance status. Acknowledges success with the truck plate number. (Category: Truck Operations)
vehicle_back_to_service
ChatGPTReturn a truck or vehicle from maintenance back to active service. Use when the user asks to: - bring a truck or vehicle back from maintenance, truck is repaired - mark a truck or vehicle as active again after maintenance - return a truck or vehicle to service, truck maintenance completed - reactivate a truck or vehicle after repair Requires resolve_entity first to find the truck by plate number. Truck must currently be in maintenance status. Acknowledges success with the truck plate number. (Category: Truck Operations)
vehicle_log
ChatGPTView maintenance history logs for a truck or vehicle. Use when the user asks to: - show maintenance history for a truck or vehicle - how many times was a truck or vehicle in maintenance Requires resolve_entity first if user provides a truck plate number. Returns log entries with dates, durations, and event details. (Category: Truck Operations)
vehicle_log
ChatGPTView maintenance history logs for a truck or vehicle. Use when the user asks to: - show maintenance history for a truck or vehicle - how many times was a truck or vehicle in maintenance Requires resolve_entity first if user provides a truck plate number. Returns log entries with dates, durations, and event details. (Category: Truck Operations)
vehicle_log
ChatGPTView maintenance history logs for a truck or vehicle. Use when the user asks to: - show maintenance history for a truck or vehicle - how many times was a truck or vehicle in maintenance Requires resolve_entity first if user provides a truck plate number. Returns log entries with dates, durations, and event details. (Category: Truck Operations)
voucher_issue_trip
ChatGPTCreate and issue a fuel voucher for a trip. This is a write-only operation — execute exactly once after ALL inputs are confirmed. Use when the user asks to: - create or issue a fuel voucher for a trip - add fuel voucher for a trip - generate a voucher for a specific trip FLOW: 1. Call resolve_entity(trip) → resolves trip_id 2. Ask: quantity (litres), amount, payment mode (Cash or Voucher). 3. Do Not Ask for fuel_type_id, it will always be resolved through fuel_type_resolver using truck_id. 4. If payment_mode = Voucher: - Call resolve_entity(entity=fueldepot) → show depots for trip's transporter → user MUST select one - Ask validity duration (1–10 days) → user MUST provide - DO NOT proceed until BOTH fuel_depot_id AND valid_for_days are confirmed 5. Confirm all details with user 6. Call voucher_issue_trip() exactly once RULES: - payment_mode = Voucher → fuel_depot_id + valid_for_days are MANDATORY — hard stop if missing - payment_mode = Cash → skip depot and validity fields entirely - Never call voucher_issue_trip with missing or assumed values - Never expose internal IDs in responses - Never call this tool more than once per request (Category: Fuel Management)
voucher_issue_trip
ChatGPTCreate and issue a fuel voucher for a trip. This is a write-only operation — execute exactly once after ALL inputs are confirmed. Use when the user asks to: - create or issue a fuel voucher for a trip - add fuel voucher for a trip - generate a voucher for a specific trip FLOW: 1. Call resolve_entity(trip) → resolves trip_id 2. Ask: quantity (litres), amount, payment mode (Cash or Voucher). 3. Do Not Ask for fuel_type_id, it will always be resolved through fuel_type_resolver using truck_id. 4. If payment_mode = Voucher: - Call resolve_entity(entity=fueldepot) → show depots for trip's transporter → user MUST select one - Ask validity duration (1–10 days) → user MUST provide - DO NOT proceed until BOTH fuel_depot_id AND valid_for_days are confirmed 5. Confirm all details with user 6. Call voucher_issue_trip() exactly once RULES: - payment_mode = Voucher → fuel_depot_id + valid_for_days are MANDATORY — hard stop if missing - payment_mode = Cash → skip depot and validity fields entirely - Never call voucher_issue_trip with missing or assumed values - Never expose internal IDs in responses - Never call this tool more than once per request (Category: Fuel Management)
voucher_issue_trip
ChatGPTCreate and issue a fuel voucher for a trip. This is a write-only operation — execute exactly once after ALL inputs are confirmed. Use when the user asks to: - create or issue a fuel voucher for a trip - add fuel voucher for a trip - generate a voucher for a specific trip FLOW: 1. Call resolve_entity(trip) → resolves trip_id 2. Ask: quantity (litres), amount, payment mode (Cash or Voucher). 3. Do Not Ask for fuel_type_id, it will always be resolved through fuel_type_resolver using truck_id. 4. If payment_mode = Voucher: - Call resolve_entity(entity=fueldepot) → show depots for trip's transporter → user MUST select one - Ask validity duration (1–10 days) → user MUST provide - DO NOT proceed until BOTH fuel_depot_id AND valid_for_days are confirmed 5. Confirm all details with user 6. Call voucher_issue_trip() exactly once RULES: - payment_mode = Voucher → fuel_depot_id + valid_for_days are MANDATORY — hard stop if missing - payment_mode = Cash → skip depot and validity fields entirely - Never call voucher_issue_trip with missing or assumed values - Never expose internal IDs in responses - Never call this tool more than once per request (Category: Fuel Management)
voucher_issue_vehicle
ChatGPTCreate and issue a fuel voucher for a truck or vehicle. This is a write-only operation — execute exactly once after ALL inputs are confirmed. Use when the user asks to: - create or issue a fuel voucher for a truck or vehicle. - add fuel voucher for a truck or vehicle. - generate a voucher for a specific truck or vehicle. FLOW: 1. Call resolve_entity(trucks) → resolves truck_id 2. Mandatory Ask: quantity (litres), amount, payment mode (Cash or Voucher). 3. Do Not Ask for fuel_type_id, it will always be resolved through fuel_type_resolver using truck_id. 4. If payment_mode = Voucher: - Call resolve_entity(entity=fueldepot) → show depots for truck's transporter → user MUST select one - Ask validity duration (1–10 days) → user MUST provide - DO NOT proceed until BOTH fuel_depot_id AND valid_for_days are confirmed 5. Confirm all details with user 6. Call voucher_issue_vehicle() exactly once RULES: - payment_mode = Voucher → fuel_depot_id + valid_for_days are MANDATORY — hard stop if missing - payment_mode = Cash → skip depot and validity fields entirely - Never call voucher_issue_trip with missing or assumed values - Never expose internal IDs in responses - Never call this tool more than once per request (Category: Fuel Management)
voucher_issue_vehicle
ChatGPTCreate and issue a fuel voucher for a truck or vehicle. This is a write-only operation — execute exactly once after ALL inputs are confirmed. Use when the user asks to: - create or issue a fuel voucher for a truck or vehicle. - add fuel voucher for a truck or vehicle. - generate a voucher for a specific truck or vehicle. FLOW: 1. Call resolve_entity(trucks) → resolves truck_id 2. Mandatory Ask: quantity (litres), amount, payment mode (Cash or Voucher). 3. Do Not Ask for fuel_type_id, it will always be resolved through fuel_type_resolver using truck_id. 4. If payment_mode = Voucher: - Call resolve_entity(entity=fueldepot) → show depots for truck's transporter → user MUST select one - Ask validity duration (1–10 days) → user MUST provide - DO NOT proceed until BOTH fuel_depot_id AND valid_for_days are confirmed 5. Confirm all details with user 6. Call voucher_issue_vehicle() exactly once RULES: - payment_mode = Voucher → fuel_depot_id + valid_for_days are MANDATORY — hard stop if missing - payment_mode = Cash → skip depot and validity fields entirely - Never call voucher_issue_trip with missing or assumed values - Never expose internal IDs in responses - Never call this tool more than once per request (Category: Fuel Management)
voucher_issue_vehicle
ChatGPTCreate and issue a fuel voucher for a truck or vehicle. This is a write-only operation — execute exactly once after ALL inputs are confirmed. Use when the user asks to: - create or issue a fuel voucher for a truck or vehicle. - add fuel voucher for a truck or vehicle. - generate a voucher for a specific truck or vehicle. FLOW: 1. Call resolve_entity(trucks) → resolves truck_id 2. Mandatory Ask: quantity (litres), amount, payment mode (Cash or Voucher). 3. Do Not Ask for fuel_type_id, it will always be resolved through fuel_type_resolver using truck_id. 4. If payment_mode = Voucher: - Call resolve_entity(entity=fueldepot) → show depots for truck's transporter → user MUST select one - Ask validity duration (1–10 days) → user MUST provide - DO NOT proceed until BOTH fuel_depot_id AND valid_for_days are confirmed 5. Confirm all details with user 6. Call voucher_issue_vehicle() exactly once RULES: - payment_mode = Voucher → fuel_depot_id + valid_for_days are MANDATORY — hard stop if missing - payment_mode = Cash → skip depot and validity fields entirely - Never call voucher_issue_trip with missing or assumed values - Never expose internal IDs in responses - Never call this tool more than once per request (Category: Fuel Management)