- Brand
- inSitu Sales
- Category
- Sales & CRM
- Primary Subcategory
- ERP & Operations Resource Tools
Integration details
Description
inSitu Sales helps manufacturers, wholesalers, and distributors find customers and products; review pricing, inventory, visits, orders, estimates, and invoices; generate customer statements; predict order recommendations; and create or update sales records through ChatGPT. It connects with ERP and accounting systems—including QuickBooks Enterprise, QuickBooks Online, Odoo, NetSuite, SAP Business One, Xero, Microsoft Dynamics 365 Business Central, and more—bringing sales and operational data together in one connected workflow.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- ERP & Operations Resource Tools
- Secondary Subcategories
- None listed
- Brand
- inSitu Sales
- Access
- Account required
- First tracked
- 2026-08-28
- Tool count
- 39
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for inSitu Sales
Get updates when inSitu Sales’s Discoverability Score or category rank changes.
Competing in ChatGPT ERP & Operations Resource Tools
View Category39 tools agents can invoke
Use this when creating or improving a B2B portal, after following the storefront-authoring skill and checking permissions. Show proposed changes and optional illustrative catalog layout or actual HTTPS preview link. A layout is not a built storefront. Supply artifact SHA-256 and size only from a prepared ZIP. This does not build, upload or publish files. Local execution is required unless a hosted authoring service is available.
renderInsituPortalPlan
MUTATION b2bAuthorizeStorefrontUpload(hostname: String!, digest: String!, size: Int!) -> B2bUploadAuthorization. Authorize one direct LIVE storefront publication for company-user accounts, after current administrator and hostname ownership checks. Issuing authorization does not upload or publish content. Requires explicit approval to publish the selected project to its authenticated storefront. A clear publication request is approval; do not ask again unless the destination or scope changes. Returns a ten-minute single-use upload grant, never the plugin/account token. Send ZIP binary with the local helper; no base64 or local paths in MCP. A user-requested retry requires a freshly prepared artifact and a fresh grant. Never retry or renew automatically after uncertainty. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY b2bAdminStorefrontCompany -> B2bAdminStorefrontCompany. Administrator authoring context for the authenticated company, including companies without a portal. No hostname, alias, or company selector is needed. Returns branding, contact, links, supported access defaults and configurationIssues. hostname, alias and storefrontUrl are null when not configured; currency can be null with a configuration issue. Continue design using company data without inventing a hostname; connected commerce and publication require resolving setup issues. Current SQL administrator permission and active account status are required. Registered URLs do not prove an active site. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
MUTATION createOrUpdateCustomer(id: Float, version: Int, address: String, branch_code: String, locked: String, branch_name: String, company_name: String, cash_discount: Float, cellphone: String, city: String, code: String, company_id: Int, contact1: String, contact1email: String, contact1phone: String, contact2: String, contact2email: String, contact2phone: String, country: String, credit_limit: Float, balance: Float, customer_type: String, foreign_name: String, ein: String, disabled: Int, downloaded_dw: String, email: String, fax: String, latitude: String, longitude: String, is_collectable: Int, is_lead: Int, mobile_user_id: Float, mobile_user_login: String, mobile_user_imei: String, name: String, nit: String, payform_code: String, payform_name: String, payterm_code: String, payterm_name: String, pending: Int, phone1: String, phone2: String, remark: String, ship_address: String, ship_address_city: String, ship_address_country: String, ship_address_state: String, state: String, trade_discount: Float, zone_code: String, zone_name: String, f1: String, f2: String, f3: String, f4: String, f5: String, f6: String, f7: String, f8: String, f9: String, f10: String, f11: String, f12: String, f13: String, f14: String, f15: String, f16: String, f17: String, f18: String, f19: String, f20: String, f21: String, f22: String, f23: String, f24: String, f25: String, f26: String, f27: String, f28: String, f29: String, f30: String, f31: String, f32: String, f33: String, f34: String, f35: String, f36: String, f37: String, f38: String, f39: String, f40: String, f41: String, f42: String, f43: String, f44: String, f45: String, f46: String, f47: String, f48: String, f49: String, f50: String, cnf_tax_id: Float, zipcode: String, trn_class_name: String, trn_class_code: String, sales_tax_id: String, last_updated_time: Date, date_created: Date, address2: String, address3: String, address4: String, tax_code_id: Float, plain_name: String, contact1last: String, contact2last: String, ship_address2: String, ship_address3: String, ship_address4: String, integration_status: String, ship_address_zipcode: String, channel_code: String, channel_name: String, group_code: String, group_name: String, region_code: String, region_name: String, boureau: String, city_code: String, state_code: String, country_code: String, county: String, certificate_of_resale: String, stage: String, require_order_approval: Int, order_approval_limit: Float, ship_address_zone: String, sector: String, neighborhood: String, delivery_day: String, delivery_time: String, visit_day: String, visit_week: String, subchannel_code: String, subchannel_name: String, url_photo1: String, url_photo2: String, url_photo3: String, industry_type_name: String, ship_address_zone_name: String, beer_permit: String, liquor_permit: String, ship_address_neighborhood: String, tobacco_permit: String, tobacco_permit_exp: Date, seller_permit: String, lead_status: String, conversion_date: Date, state_id: Int, city_id: Int, country_id: Int, default_shipping_method_code: String, default_shipping_method_name: String, external_number: String, external_number2: String, credit_hold: Int, force_show_price: Int, shipping_fee_product_name: String, contact_suffix: String, default_driver_id: Int, EDI_enabled: Int, appointments: [appointmentsInput], shipping_address: [shipping_addressInput], tax: cnf_taxesInput, tax_code: cnf_tax_codeInput, price_list: [clients_product_prices_listInput], initial_balance: client_balanceInput, mobile_users: [clients_mobile_usersInput], file: Upload, files: [Upload], badgeFile: Upload, web_profile_id: Int, where: customerInput, customer: customerInput) -> customer. Create a new customer or update an existing customer in the authenticated company. Use this tool when the user asks to create, add, register, edit, or update a customer. For an update, provide the existing customer id. Provide branch_code and branch_name when creating a customer. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
MUTATION createOrUpdateEstimate(estimate: estimateInput!) -> estimate. Create a new estimate or update an existing estimate in the authenticated company. Use this tool when the user asks to create, submit, place, or update an estimate. For an update, provide the existing estimate_number or external_number so the workflow can match the estimate. Provide the complete estimate header and a non-empty estimateDetailList. Use the catalog and pricing tools first when product or price data is needed. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
MUTATION createOrUpdateInvoice(invoice: invoiceInput!) -> invoice. Create a new invoice or update an existing invoice in the authenticated company. Use this tool when the user asks to create, submit, place, or update an invoice. For an update, provide the existing invoice_number or external_number so the workflow can match the invoice. Provide the complete invoice header and a non-empty invoiceDetailList. Use the catalog and pricing tools first when product or price data is needed. Put item-level descriptions, notes, or instructions in invoiceDetailList[i].invoice_detail_remark on the matching item; keep product_name as the catalog product name. Put invoice-wide notes or descriptions in invoice.remark at the header level. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them. Resolve the shipping address silently. Never ask the user for it, and never ask the user to confirm, re-confirm, approve, verify, correct, or choose between addresses. Do not echo the address back and wait for a reply, do not present address options, and do not pause placement over the destination. Resolve it in this order and use the first complete result: (1) a full address the user already gave in the current request; (2) the customer shipping address on file, obtained by querying the customer with getOneCustomer or getAllCustomer for the primary shipping fields (ship_address, ship_address2, ship_address3, ship_address4, ship_address_city, ship_address_state, ship_address_zipcode, ship_address_country) plus shipping_address { id shipment_address_name enabled disabled is_default ship_address ship_address_line2 ship_address_line3 ship_address_line4 ship_city ship_state ship_zipcode ship_country }, preferring an enabled is_default entry, then any other complete enabled entry, then the primary shipping fields; (3) the customer mailing address (address, address2, address3, city, state, zipcode, country). Taking the destination from the customer record is the expected behavior and needs no approval. Copy the result into client_ship_address, ship_address_city, ship_address_state, zipcode, and ship_address_country; use client_ship_address2 through client_ship_address4 for additional lines. Do not invent, geocode, or submit a city-only or otherwise incomplete destination. The only case in which you may ask the user about the destination is when every source above is incomplete; otherwise place the transaction and just state which address was used in your summary afterward. For an update, keep the existing complete shipping address unless the user asks to change it; if it is incomplete, resolve it the same way without asking. invoice_balance is MCP-managed and never user-writable. For a new invoice it is automatically set to invoice_netvalue. For an update identified by an existing invoice id, invoice_balance is omitted so the persisted payment-adjusted balance is preserved. Do not ask the user for a balance or attempt to supply or change invoice_balance.
MUTATION createOrUpdateOrder(order: orderInput!) -> order. Create a new sales order or update an existing sales order in the authenticated company. Use this tool when the user asks to create, submit, place, or update an order. For an update, provide the existing order_number or external_number so the workflow can match the order. Provide the complete order header and a non-empty orderDetailList. Use the catalog and pricing tools first when product or price data is needed. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them. Orders are sales orders: customer orders sold by the authenticated company. When the user says "order" or "orders" without further qualification, they mean sales orders; use this tool. Use the purchase-order tools only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers. Resolve the shipping address silently. Never ask the user for it, and never ask the user to confirm, re-confirm, approve, verify, correct, or choose between addresses. Do not echo the address back and wait for a reply, do not present address options, and do not pause placement over the destination. Resolve it in this order and use the first complete result: (1) a full address the user already gave in the current request; (2) the customer shipping address on file, obtained by querying the customer with getOneCustomer or getAllCustomer for the primary shipping fields (ship_address, ship_address2, ship_address3, ship_address4, ship_address_city, ship_address_state, ship_address_zipcode, ship_address_country) plus shipping_address { id shipment_address_name enabled disabled is_default ship_address ship_address_line2 ship_address_line3 ship_address_line4 ship_city ship_state ship_zipcode ship_country }, preferring an enabled is_default entry, then any other complete enabled entry, then the primary shipping fields; (3) the customer mailing address (address, address2, address3, city, state, zipcode, country). Taking the destination from the customer record is the expected behavior and needs no approval. Copy the result into client_ship_address, ship_address_city, ship_address_state, zipcode, and ship_address_country; use client_ship_address2 through client_ship_address4 for additional lines. Do not invent, geocode, or submit a city-only or otherwise incomplete destination. The only case in which you may ask the user about the destination is when every source above is incomplete; otherwise place the transaction and just state which address was used in your summary afterward. For an update, keep the existing complete shipping address unless the user asks to change it; if it is incomplete, resolve it the same way without asking.
MUTATION createOrUpdatePurchaseOrder(purchase_order: PurchaseOrderInput!) -> PurchaseOrder. Create or update a vendor purchase order in the authenticated company. Omit purchase_order.id for creation; provide the existing ID for updates. Creation requires doc_number, vendor_code, doc_date, due_date, total_amount, and at least one line with product_id, quantity, price, and amount. Update only supplied fields. Lines with an ID are patched; lines without an ID are added; omitted lines are preserved. When changing quantity or price, provide the resulting line amount. Adding lines or changing quantities, prices, or amounts also requires total_amount. Use authoritative vendor purchase prices and totals; customer sales pricing does not apply. Company, parent IDs, timestamps, versions, received quantities, and accounting integration IDs are server-managed. This saves the purchase order in inSitu; it does not receive inventory or submit it to an accounting provider. To include line items, set _selection to "{ id doc_number vendor_code vendor_name doc_date due_date total_amount status lines { id product_id product_code product_name quantity received_quantity price amount is_manually_closed } }". Provide arguments at the top level. Use _selection to control returned fields. This tool handles vendor purchase orders (POs) only. Use it only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers. When the user says "order" or "orders" without that qualification, they mean sales orders: use the getOneOrder, getAllOrder, or createOrUpdateOrder tools instead. Purchase-order dates are calendar dates (YYYY-MM-DD), not UTC timestamps; use the date the user means without converting time zones.
QUERY generateCustomerStatementPDF(client_id: Float!, fromDate: String, toDate: String) -> CustomerStatementPDF. Generate the existing customer statement PDF for a customer in the authenticated company. The PDF is returned as base64. fromDate and toDate use YYYY-MM-DD; when omitted, they default to the first day of the current month and today. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllCompany(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: companyInput) -> [company]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllCustomer(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: customerInput) -> [customer]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllEstimate(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: estimateInput) -> [estimate]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllInvoice(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: invoiceInput) -> [invoice]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllMobileUser(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: mobile_userInput) -> [mobile_user]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllOrder(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, ids: [Float], where: orderInput) -> [order]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them. Orders are sales orders: customer orders sold by the authenticated company. When the user says "order" or "orders" without further qualification, they mean sales orders; use this tool. Use the purchase-order tools only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers.
QUERY getAllProduct(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: productInput) -> [product]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllPurchaseOrder(where: PurchaseOrderFilterInput, searchParam: String, fromDate: String, toDate: String, limit: Int, offset: Int, order: PurchaseOrderSort) -> [PurchaseOrder]. List vendor purchase orders in the authenticated company, including open, received, and closed orders. Filters are exact matches; searchParam searches document number, vendor name, and accounting account name. fromDate/toDate are inclusive document dates in YYYY-MM-DD format. Pagination defaults to 100 records and allows at most 500; increase offset to read subsequent pages until a page has fewer than limit records. To include line items, set _selection to "{ id doc_number vendor_code vendor_name doc_date due_date total_amount status lines { id product_id product_code product_name quantity received_quantity price amount is_manually_closed } }". Provide arguments at the top level. Use _selection to control returned fields. This tool handles vendor purchase orders (POs) only. Use it only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers. When the user says "order" or "orders" without that qualification, they mean sales orders: use the getOneOrder, getAllOrder, or createOrUpdateOrder tools instead. Purchase-order dates are calendar dates (YYYY-MM-DD), not UTC timestamps; use the date the user means without converting time zones.
QUERY getAllVisit(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: visitInput) -> [visit]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getAllWarehouse(searchParam: String, order: String, all: String, show_disabled: String, last_updated_time: String, includeAll: String, include: String, id: Float, product_id: Float, entity_id: Float, set_coordinates: Float, is_not_in_stop: String, fromDate: String, toDate: String, fromShippingDate: String, toShippingDate: String, show_variants: String, type_note: String, show_hidden: String, code_or_name: String, fromStartDate: String, toEndDate: String, where: warehouseInput) -> [warehouse]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getFormSubmissions(fromDate: String, toDate: String, offset: Int, limit: Int) -> [McpFormSubmission]. Get forms submitted by sales reps. Returns submissions across multiple customers, including the customer and rep-related identifiers, form information, and each submitted question and answer. Use fromDate and toDate to retrieve a specific UTC period. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getInventoryDetail(product_id: Int, shouldUseCache: Boolean) -> [InventoryDetail]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneCompany(id: Float, where: companyInput) -> company. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneCustomer(id: Float, where: customerInput) -> customer. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneEstimate(id: Float, where: estimateInput) -> estimate. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneInvoice(id: Float, where: invoiceInput) -> invoice. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneMobileUser(id: Float, where: mobile_userInput) -> mobile_user. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneOrder(id: Float, where: orderInput) -> order. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them. Orders are sales orders: customer orders sold by the authenticated company. When the user says "order" or "orders" without further qualification, they mean sales orders; use this tool. Use the purchase-order tools only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers.
QUERY getOneProduct(id: Float, where: productInput) -> product. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOnePurchaseOrder(id: Float!) -> PurchaseOrder. Get a vendor purchase order by ID in the authenticated company. Returns null when not found. To include line items, set _selection to "{ id doc_number vendor_code vendor_name doc_date due_date total_amount status lines { id product_id product_code product_name quantity received_quantity price amount is_manually_closed } }". Provide arguments at the top level. Use _selection to control returned fields. This tool handles vendor purchase orders (POs) only. Use it only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers. When the user says "order" or "orders" without that qualification, they mean sales orders: use the getOneOrder, getAllOrder, or createOrUpdateOrder tools instead. Purchase-order dates are calendar dates (YYYY-MM-DD), not UTC timestamps; use the date the user means without converting time zones.
QUERY getOneVisit(id: Float, where: visitInput) -> visit. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getOneWarehouse(id: Float, where: warehouseInput) -> warehouse. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getPricedProductCatalog(client_id: Float, price_list_id: Float, include_pricing: Boolean, search: String, category: String, subcategory: String, subcategory2: String, brand: String, offset: Int, limit: Int) -> [PricedProductCatalogItem]. Build a product catalog for MCP users. The catalog excludes disabled products, hidden products, and hidden categories. Provide client_id for customer-specific product assignment. Set include_pricing to true only when prices are needed; customer pricing can take some time while the system generates the catalog. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getPricing(product_id: Int, client_id: Int) -> Pricing. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getProductInventory(product_id: Int!, warehouse_id: Int, bin_location_id: Int, lot_number: String) -> [WarehouseInventory]. Get inventory information for a product + warehouse combination Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY getProductInventoryForWarehouse(warehouse_id: Int, products: [Int]) -> [warehouse_stock]. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY nextEstimate(client_id: Float!) -> NextOrder. Predict the customer next estimate and return product recommendations, including suggested quantities, confidence, daily consumption, coverage days, and next recommended estimate date. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY nextInvoice(client_id: Float!) -> NextOrder. Predict the customer next invoice and return product recommendations, including suggested quantities, confidence, daily consumption, coverage days, and next recommended invoice date. If the user asks only for sales, clarify whether they mean sales orders or invoices before choosing this tool. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them.
QUERY nextOrder(client_id: Float!) -> NextOrder. Use this read-only tool when the user asks for an order recommendation, next order, reorder recommendation, suggested order, or which products and quantities a customer should order next. It returns the same AI recommendation used by /ai/nextOrder, including suggested quantities, confidence, daily consumption, coverage days, and the next recommended order date. When enabled for the company, products also includes purchases from the past three months that are absent from the prediction; those lines use average quantity per transaction, low confidence, and N/A for prediction-only fields. First resolve the customer with getAllCustomer and pass its numeric client_id. Product lines are not included by the default selection: set _selection to "{ client_id name next_order_date products { product_id product_name suggested_quantity confidence daily_consumption typical_coverage_days next_order_date } }". This tool does not create or place an order; use createOrUpdateOrder only after the user explicitly confirms the complete item and quantity preview. If the user asks only for sales, clarify whether they mean sales orders or invoices before choosing this tool. Provide arguments at the top level. Use _selection to control returned fields. Dates and times in this MCP are UTC. For user-local periods such as today, convert the user's local start and end times to UTC before sending arguments. Always convert returned date/time values from UTC back to the user's local time before showing them. Orders are sales orders: customer orders sold by the authenticated company. When the user says "order" or "orders" without further qualification, they mean sales orders; use this tool. Use the purchase-order tools only when the user explicitly asks for purchase orders, POs, or orders placed with vendors or suppliers.
Use this when the user asks to open inSitu Sales or create or redesign their B2B website. Launch the inSitu Sales home page with suggested prompts for customers, orders, invoices, sales insights, catalog lookup and website redesign, or open its preview beside the conversation. Selecting a card adds a suggestion to the native chat composer without sending. The user edits and sends it there. The app has no custom chat input. This does not build or publish the site.
openInsituWorkspace
inSitu Sales ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve inSitu Sales's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are inSitu Sales alternatives on ChatGPT?
As of 2026-11-02, inSitu Sales competes with 101, 1barn, ADI Admin, Aginera, AgriDigi, AllEars.Vet, allmanager, Anthill and 122 more in ChatGPT ERP & Operations Resource Tools, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.