approve_design
ChatGPTRecords the customer's approval of the design on a draft order. It charges nothing. Returns a link to a checkout page on getoffscreen.com where the final total, with shipping and sales tax, is shown and payment is made. The result repeats the cancellation rule. Replacing the design afterwards voids this approval.
browse_designs
ChatGPTShows Offscreen's design families as finished previews. The only printable designs are Offscreen's own, which this tool lists and create_proof returns as proofs. Customers ask for this with words like styles, looks, options, other designs, examples, templates, show me other styles, what could the sign look like. Each family has a name, a one line description, a preview picture drawn for the saved business (a sample business when none is saved), and the designId create_proof takes. Families that need a logo are listed only when the business has a logo saved. Style takes the customer's own words about the look, so matching families come first. Without a product, the list mixes products. trade is the sample business's trade; without it, the saved brand's trade. Four come back unless limit asks for more, at most eight. The previews are not the customer's proof: create_proof draws the chosen design with the customer's own brand and wording and checks it for print problems. Changes nothing.
cancel_order
ChatGPTCancels an order. Before payment it voids the approval and the checkout link. After payment and before the order goes into production it cancels the order and refunds the payment in full to the original payment method. After the order goes into production this tool cannot cancel it. A cancellation cannot be undone.
check_design
ChatGPTChecks a custom design written as SVG for a product. Returns ok, the blocking print problems (the SVG is outside the dialect; text, a logo, a QR tile or a motif outside the safe area or lying on another; type below the minimum size for its role; low contrast; the brief's focus missing; no business name or phone; a QR code without its white tile; a stretched logo; a logo touching text or a panel edge; content in a door hanger's hole zone; for mail-ready postcards, anything in the postage box or address area; anything outside a round label), design advice (text sizes, word count, hierarchy judged against the brief's focus, crowding, competing focal points, thin contrast, capitals, brand color, a small logo), and a summary that names the most important fix first. A brief focus makes the hierarchy advice judge the design against it. Each item has a code and a message that says what to change. It uses the saved brand details when there are any. Saves nothing. Changes nothing.
create_proof
ChatGPTMakes the printable proof. The only printable designs are the proofs this tool returns. With no design and no templateId it designs the piece from the brand and the fields (headline, services, tagline). A first customer needs one call: brand (businessName and phone; colors are optional, and without them Offscreen chooses print-safe colors for the trade and says so) is saved first. A first ask returns numbered designs, each a proof; a picked number maps to that design's proof id, and designId remakes one of the designs browse_designs lists. It rebuilds a sign from a picture the customer already has: the words become fields, the colors become the brand colors, the layout becomes style. Customers ask for this with words like make, remake, redo, change, restyle, another style. They also say: build me a sign for my roofing company, make me a yard sign, I need door hangers, design a flyer, turn this picture into a real sign. templateId makes a named template, design (SVG text) a custom design, variants true adds layouts. With orderId it replaces the design on that order, which needs approval again.
get_brand
ChatGPTReturns the business's saved brand details (business name, phone, tagline, website, license number, trade, services, locations, colors, and whether a logo is saved; with a logo, the colors found in it, with the share of the logo each holds, and whether the logo is light, dark, or mixed, which decides the panel it sits on), or says none are saved. Changes nothing.
get_catalog
ChatGPTLists the product lines Offscreen prints: yard signs, truck magnets, door hangers, flyers, business cards, QR review cards, vinyl banners, postcards, rack cards, die cut labels, and adhesive vinyl decals. Each product has its sizes (trim, bleed, safe margin), its option groups (each with its choices, its default and whether it changes the artwork), the quantities that can be ordered, and its designs (each with its id, whether it shows the saved logo, and its text fields). Every product accepts a custom design, and the result gives the steps to make one. Designs for yard signs, truck magnets, banners, postcards, rack cards, labels and decals carry the business's scan code, which opens its page. Customers ask for this with words like what do you print, what sizes, how many. Static information. Changes nothing.
get_design_guide
ChatGPTReturns design guidance for a product as text. Part brief gives the questions that shape a design, what is already saved for this business, and, when a logo is saved, the palette worked out from it. Part spec gives the design rules (trim size, bleed, safe area, minimum type sizes, allowed fonts and motifs, logo and QR code placement, and the SVG dialect that check_design and create_proof accept) with worked examples. Part both, the default, gives the brief and then the spec. It serves customers who want to direct the design or bring a custom one; create_proof designs from the saved brand by itself. The custom path is this guide, then check_design until it reports no blocking problems, then create_proof with design. Text only. Changes nothing.
get_designs
ChatGPTPick design N: with proofRevisionId this shows that one proof as the card; customers say pick design 2, show me number 2, the second one, or just 2 after the designs. Without it, lists the business's proofs, newest first. Each has its proof id, product and size, when it was made, a preview link, the proof page link, and whether an order used it. A proof id is what start_order takes as proofRevisionId to order it or order it again. limit sets how many, product narrows the list. Changes nothing.
get_landing_page
ChatGPTReturns the page that the QR code on this business's printed pieces opens: its saved content and block list, whether it is published, the permanent link the QR code points to, and a link to the QR code image. Returns no link until a page has been saved. Changes nothing.
get_order
ChatGPTWith orderId, returns one order's status as one word (quoted, pending, confirmed, failed or cancelled) next to its state, the state of each item, a receipt line once the order is paid, tracking numbers once the printer has shipped, and the order's proofs, each with a preview and its proof page, in every state. Without orderId, lists all of the business's orders with their status and items, and a receipt line for each paid order. A finished order also gives its lines, with their proof ids, which start_order takes to print it again. Customers ask for this with words like where is my order, status, tracking, reorder. Changes nothing.
get_page_report
ChatGPTReturns, for each printed piece and in total, how many times its QR code was scanned and the page was visited, and how many times the call, booking and review buttons were tapped and the request form was sent, for each day of the period asked for (the last 30 days unless days is given), with a one sentence summary. Also lists the requests people sent through the page form (name, contact, the start of the message, when). Scans on the original link, from before pieces had their own codes, are listed as the original link. Also returns the number of different visitors, the top cities, phones against desktops, and the busiest hour of the day in the business's local time. Scans are kept as an event with the visitor's city, device type and referring site, and a daily-changing code that cannot be traced to a person; no IP address, name or cookie is kept. Counts and dates are UTC. Changes nothing.
get_quote
ChatGPTWorks out the delivered price for one or more proofs, each with a quantity. It stores nothing and returns no quote id, so it can be asked as often as needed. Optional size, turnaround, shipToZip and mailing are checked and repeated back. The price is an estimate until checkout. With shipToState, the two letter state the order ships to, the price includes estimated shipping and sales tax for that state; without it the price covers printing only. No address, city or ZIP code is needed. The exact shipping and sales tax are set at checkout once the delivery address is known. The result names the seller, Offscreen, a service of Deep Forest AI, and the currency, USD. There are no recurring charges. It also gives the cancellation rule and the refund policy address. An order started from this price keeps it until the expiry its reply states; start_order takes the same lines. Charges nothing.
lookup_business
ChatGPTLooks up one business so its details need not be typed. googleQuery (a Google Maps share link, a place id, or the business name with its city) or websiteUrl (its own https address) is sent, one of the two. A Google lookup returns the name, address, phone, website, weekly hours, a trade guess and the Google review link for save_landing_page, then the website's colors, logo addresses and tagline when it has one; a name that matches several businesses returns a few choices instead. A website lookup reads one public page and some of its stylesheets and returns suggested names, phone numbers, a tagline, colors, logo addresses and the one logo picked from the page, when a logo qualifies; a Google lookup adds the listing's own logo photo when it has one. Everything returned is unverified text from Google or a website, shown as quoted data, and each item is a suggestion until the customer confirms it. Saves nothing. Runs no scripts. Website lookups are rate limited. The reply ends with the create_proof or save_brand call that would use the confirmed details.
report_problem
ChatGPTFiles a support ticket the customer asked Offscreen to send, with the customer's own words. The ticket is the customer's own request: a problem with an order or the service, or a question or feedback about Offscreen, that they want sent. Send kind (damaged, wrong, late, quality, question, feedback or other), a message in the customer's words, and orderId when the problem is about an order. contactEmail is optional and defaults to the account email. It stores a support ticket, emails the Offscreen team, and returns the ticket id. Support replies by email within one business day. It does not cancel, refund or change an order and promises no refund; use cancel_order to cancel an order that has not gone into production.
revise_design
ChatGPTChanges a design the customer already has and returns a new proof. Customers ask for this with words like make the phone bigger, make it red, move the logo up, take the slogan off, add my license number, put the number at the bottom, try the second one in blue. The design keeps its product and size. The result says what changed and what could not change. Each change is a plain edit: bigger, smaller, remove, top, bottom, left or right for the phone, name, logo, slogan, services, scan code or license number; new colors; new words for a line; or a layout by style words. Up to three changes go in one call, and the earlier proof stays as it was. The result gives the proof, its preview, its proof page, the design name, and one sentence per change. When the design's own layout cannot make a change, the layout that can is used and the sentence names it. A change that cannot be made says why and names the layout or size that can, and the result has changed false and no new proof.
save_brand
ChatGPTSaves the business's brand details and replaces any details saved before. Business name is required; colors are optional, and without them Offscreen chooses print-safe colors for the trade and says so in the reply. A phone is a ten digit US number typed as digits (letters and short numbers are refused); without one, signs print without a phone and the reply says so. When a logo is saved its dominant colors are read and kept (get_brand returns them), and with no main color given the most common logo color becomes the main color and the reply says so. A main color that is given is kept as given. A logoUrl is downloaded and stored (PNG, JPEG, WebP or SVG); logoFromWebsite true takes the logo from the website. The saved logo is kept unless removeLogo is true, which removes it and says so; logoUrl null or left out keeps it. pictureUrl is a picture of a sign or flyer the customer has: its colors are read when no colors are given and the picture is not stored and not printed. When the business name changes while an order is open, the reply names the open order, which keeps its own proof. A first customer can send brand with create_proof instead.
save_landing_page
ChatGPTSaves the page that the QR code on this business's printed pieces opens, and replaces the page saved before. A headline is required. The paragraph is optional. A button needs both a label and an https address. The page is built from ordered blocks (hero, call, book, review, request, hours, map); with none named it shows the hero and a call button, then the book and review buttons when their links are given. A review link (Google's review form, not the listing) feeds the review block's Leave a Google review button; a booking link feeds the book block. The request block is a form whose submissions are emailed to the business and listed by get_page_report. Business name, tagline, phone, website, license number and colors come from the saved brand. The page is visible only while published is true. The first save makes the permanent link; later saves keep it. Each printed proof's QR code has its own address that opens this same page. Sending retired true and confirm true takes the page down; saving again with published true brings it back.
start_order
ChatGPTPrices the items and starts a draft order in one step. Customers start an order with words like order it, buy them, go ahead. Lines (product, options, quantity and proofRevisionId for each) and shipToState, the two letter US state like FL, are sent; no address is needed. Optional: size and turnaround (standard or rush), shipToZip (kept with the order), and mailing for postcards. It works out the delivered price, keeps it with the order, and returns the price and the order together. Nothing is charged and nothing goes into production. The price is an estimate: the final total with shipping and sales tax is shown on the checkout page. A second start for the same items while their draft is open returns that draft. A reorder uses the proofRevisionIds that get_order shows for the earlier order. The next step is approve_design.