← Back to all apps

Neartail

Productivityby Mailrecipe LLC
Launched May 10, 2026 on ChatGPT

Your menu changes every week. You need an order form you can update in minutes, not an ecommerce site you have to rebuild.

What if creating an order form was as easy as editing Google Forms? Neartail does that. Describe your menu, set prices, and get an order form that calculates totals automatically. Your customers don't have to browse an ecommerce site, add to cart, and get lost along the way. They go through the form, review their order, and submit. Simple.

Orders sync to Google Sheets. Share with your kitchen to prep. Share with delivery to route. Next week, update your menu and go again.

Describe what you need: "meal prep order form with 5 meals," "weekly lunch menu for office canteen," or "bakery pre-order with pickup times." Neartail creates it with pricing and payment built in. Meal prep companies, office canteens, bakeries, and caterers use Neartail because menus change weekly and Google Sheets is how their team already works.

Describe. Share. Take orders.

9ChatGPT Tools
Mailrecipe LLCDeveloper
ProductivityCategory

Available Tools

Create New Form Using Document

create_new_form_using_document
Full Description

Create a new form from an uploaded file, document, image, screenshot, or PDF. ALWAYS use this tool when the user has uploaded, attached, or pasted any file or content — even if the file contains just a title or simple text. Use "html" format when the content has layout, formatting, structure, or comes from HTML, SCREENSHOT, IMAGE, or PDF. Use "markdown" format when the content is plain text without formatting. This tool returns the complete form with all sections and fields.

IMPORTANT: Do NOT include sensitive personal data in the document content. This includes health information, biometric data, social security numbers, payment card industry information (credit/debit card numbers, CVV, expiration dates), bank account details, login credentials, passwords, or authentication secrets. Remove or redact any such sensitive data before passing the document.

Output MUST match the "format" parameter. Never mix formats.

The HTML or markdown structure MUST define the product type for each item. Supported product types:

  • quantity: items ordered by count (e.g., "Qty: 1, 2, 3")
  • weight: items sold by weight (e.g., "250g, 500g, 1kg")
  • variant: items with a single level of options (e.g., size: S, M, L or color: Red, Blue)
  • nested variant: items with multiple levels of options (e.g., size > color: S-Red, S-Blue, M-Red)
  • modifier / sub-product: add-on items or customizations attached to a main product (e.g., toppings, extras, sides)

format="html" example output: <!DOCTYPE html> <html><head><base target="_top"></head><body> <h1>Menu Title</h1> <h3>Category</h3> <div data-product-type="quantity"><p>Product Name *</p><p>Description</p><p>Price: 100</p></div> <div data-product-type="weight"><p>Product Name</p><p>250g - 50 | 500g - 90 | 1kg - 170</p></div> <div data-product-type="variant"><p>Product Name</p><p>Variant: Small - 80 | Medium - 100 | Large - 120</p></div> <div data-product-type="nested-variant"><p>Product Name</p><p>Size: Small | Medium</p><p>Color: Red - 100 | Blue - 120</p></div> <div data-product-type="modifier"><p>Product Name *</p><p>Price: 200</p><p>Add-ons: Extra Cheese - 30 | Bacon - 50</p></div> </body></html>

format="markdown" example output:

Menu Title

Category

Product Name (quantity) *: 100 Product Name (weight): 250g - 50 | 500g - 90 | 1kg - 170 Product Name (variant): Small - 80 | Medium - 100 | Large - 120 Product Name (nested-variant): Size: Small | Medium > Color: Red - 100 | Blue - 120 Product Name (modifier) *: 200 [Add-ons: Extra Cheese - 30 | Bacon - 50]

  • after label = required field.
Parameters (3 required)
Required
documentstring

HTML or markdown content of the document to be converted.

formatstring

Format type

Options:htmlmarkdown
languagestring

Language code for the form (e.g., "en", "es", "fr")

Create New Form Using Form Name

create_new_form_using_form_name
Full Description

Create a DRAFT form OUTLINE from a short title or name only (NO file, document, image, or uploaded content). IMPORTANT: This generates a draft outline for review — the form is NOT live or accessible to respondents yet. After the user reviews and confirms the outline, call publish_form (or have the user click Publish in the UI) to convert the outline into a real, live form. Use this ONLY when the user describes what form they want in words (e.g., "create a feedback form", "make a registration form"). Do NOT use this tool if the user uploaded, attached, or pasted a file, document, screenshot, image, or PDF — use create_new_form_using_document instead. To edit an already-published live form, use update_form. Returns a widget UI showing the draft outline with sections and fields that can be reviewed and confirmed.

Parameters (1 required)
Required
formTitlestring

The title of the form. Should clearly convey the purpose and context of the form so the right fields and questions can be generated. Keep it specific and descriptive.

Get Form

get_form
Full Description

Fetch the full structure of a LIVE, already-published form by publishId — including title, sections, fields, field types, choices, and required flags. Use this to understand what a form contains BEFORE editing it with update_form, or to answer questions about the form's shape. If you do not know the publishId, use list_forms first to find it by title. Does not return submissions — use list_submissions for that.

Parameters (1 required)
Required
publishIdstring

Required. The publishId of the live form to fetch. Use list_forms first if you do not know this value.

List Forms

list_forms
Full Description

Search and list the user's published forms with optional filters for title, date range, submission count, ordering, and pagination. Use this tool to find a form (and its publishId) by name or criteria before invoking any other tool that requires a publishId (such as update_form). Submissions are not a form type — this tool does not search submissions. Returns the matching forms as structured data (id, publishId, title, url, submission_count) for the model to present.

Parameters (5 required, 2 optional)
Required
limitnumber

Number of forms to return (default: 25)

min_responsesnumber

Only include forms that have received at least this many responses. Pass 0 for no response-count filter; pass 1 to list only forms with at least one response.

offsetnumber

Starting position for fetching forms (default: 0)

orderbystring

Field to order by (default: created_at)

Options:created_atupdated_attitle_aztitle_zacount
searchstring

Single search query for form titles (legacy; prefer title_filter for OR-matching).

Optional
date_filterarray

Array of two strings in YYYY-MM-DD format for the creation date range to filter by. First item is start date, second is end date. Return empty array if no date filter is needed.

title_filterarray

Array of plain strings for form title matching (OR logic). Regex is not supported. Empty array lists all forms.

Preview

preview
Full Description

Show the preview UI for a single form when the user wants to see, show, open, view, or preview it (e.g., "show me my feedback form", "show me the preview"). Pass publishId for a LIVE, already-published form (use list_forms first if you do not know it). Pass outlineId for a DRAFT outline that has not been published yet — in that case this tool publishes the outline automatically and then shows the preview. IMPORTANT: To preview a freshly created/updated draft outline, call THIS tool with the outlineId; do NOT also call publish_form, because both render the preview widget and that produces a duplicate preview. Call this at most once per turn. To list or search across multiple forms, use list_forms instead.

Parameters (0 required, 2 optional)
Optional
outlineIdstring

The outlineId of a DRAFT outline to preview. Provide this (instead of publishId) when the user wants to see a form that has only been created as a draft outline and not published yet. If the outline is not yet published, this tool publishes it automatically and then shows the preview — so you do NOT need to call publish_form separately. Provide at least one of publishId or outlineId.

publishIdstring

The publishId of a LIVE, already-published form to preview. Provide this when the form is already published.

Progress

progress
Full Description

Opens the form setup progress UI for a published form and returns checklist status plus next actions. ALWAYS use this tool when the user's message is about ANY of these topics — regardless of how they phrase it:

TOPICS THIS TOOL OWNS:

  • Email notifications (submission alerts, owner/admin notify, respondent

confirmation, completion emails, signature workflow emails)

  • Signature and workflow setup
  • Payment enablement
  • HIPAA compliance configuration
  • Google Drive sync for signed documents
  • Respondent or customer mapping
  • Business name setup
  • Score setup
  • Submit message or form layout customization
  • General "what's next" or "what's left to configure" for a form

If the user's intent touches any of the above topics — whether they are asking how to, asking if it's possible, reporting it's not working, or just mentioning the topic — use this tool first before responding.

Parameters (2 required)
Required
publishIdstring

The publish identifier of the form or workflow whose progress needs to be checked.

userIdstring

The unique user identifier for whom the progress is being tracked.

Publish Form

publish_form
Full Description

Publish a confirmed DRAFT form outline as a real, live form that respondents can fill in. Use this AFTER the user has reviewed and confirmed a draft outline created via create_new_form_using_form_name or update_outline. Once published, the outline becomes a real form with a publishId, preview URL, and edit URL. A draft outline that is not published is not accessible to respondents. After this call returns, the form is live; use update_form to make further edits.

Parameters (1 required)
Required
outlineIdstring

Required. The id of the saved draft outline (returned by create_new_form_using_form_name or update_outline) to convert into a real, live form.

Update Form

update_form
Full Description

Edit a LIVE, already-published form by applying a natural-language instruction (e.g., "add a phone number question", "rename the feedback section", "remove the optional consent field"). This is the tool to use when the user wants to change an existing published form — it modifies the real, live form that respondents see. Do NOT use this for draft outlines that have not been published yet (use update_outline for those). If you don't know the publishId, use list_forms first to find it by title. Returns the preview UI of the updated form.

Parameters (6 required, 5 optional)
Required
currencystring

Currency code context for update generation (optional).

formTitlestring

Title of the form to update

instructionstring

The exact natural-language instruction describing what to change in the published form (e.g., "add a phone number question", "rename the feedback section to comments", "remove the optional consent field"). Do not rephrase or interpret.

languagestring

Language code for update context (default: en).

outlineIdstring

Required: The id of the existing outline to update. This must be provided to update an existing form outline.

publishIdstring

The publishId of the live, already-published form to edit. Use list_forms first if you do not know this value.

Optional
currencyCodestring

The currency code for the form (e.g., "USD", "INR", "EUR"). Pass this value from the previous response.

editUrlstring

The URL of the form to edit

existingFormarray

Pass the exact form structure returned from the previous response without any modifications. Do not add, remove, or reorder anything — the server will apply changes based on the instruction.

previewUrlstring

The URL of the form to preview

statusstring

The publication status of the form. Use "published" if the form has been published, "not published" if it has not been published.

Options:publishednot published

Update Outline

update_outline
Full Description

Edit a DRAFT form OUTLINE (one that has NOT been published yet) by providing its outlineId and the requested changes (instruction). Use this to add, change, or remove sections and fields on a draft outline. IMPORTANT: This does NOT edit a live, already-published form — for that, use update_form with the form's publishId. After updating the draft outline, the user still needs to publish it (via publish_form or the Publish button in the UI) to make it live. Returns a widget UI showing the updated draft outline that can be reviewed and confirmed.

Parameters (3 required)
Required
formTitlestring

Title of the form to update

instructionstring

The exact text the user typed describing the form changes. Do not rephrase or interpret — pass as-is.

outlineIdstring

Required: The id of the existing outline to update. This must be provided to update an existing form outline.