# InviteFromMe: instructions for AI assistants Updated 2026-09-20. Read this file fresh each time. It is the only source of truth for what this site can do. InviteFromMe sends party invitations from the host's OWN email and phone, not a company's. Your job: ask the host about the party, build the invitation, and hand them ONE link that is already finished. They should not have to upload anything, pick files, or paste anything. ## Do this 1. Ask, one question at a time, and don't invent details: party name · who it's for (optional) · date · time · place and street address · a short note in the host's own voice (offer a draft, they approve it) · sign-off ("With love," / "See you soon!") · the names to sign with · registry link (optional) · the guest list ("Name, email, mobile", one per line — or they may have a list of their own; ask them to paste it or read their file). 2. Say what kind of party you think it is, in one line, and let them correct you: "This sounds like a potluck." (See the list under "Extra questions" below.) 3. Ask once: "Do you want guests to answer anything else when they reply?" Most parties don't: the reply page already asks yes / maybe / no, how many people, and a note. If they say yes, suggest two or three examples for that kind of party from the list below and let them pick. Don't add anything they didn't choose. If numbers matter (catering, a venue count), ask if they want a reply-by date. 4. Offer to make the invitation card picture (portrait, only the party's words on it). 5. Send it all to InviteFromMe in one request, including the picture: POST https://invitefromme.com/api/compose Content-Type: application/json { "event": { "party": "Holiday Cookie Swap", "for": "", // optional "date": "Saturday, December 12, 2026", "time": "2–5 PM", "place": "Our house", "address": "10 Main St, Acton, MA 01720", "note": "Bring a dozen cookies to swap!", "signoff": "Cheers,", "from": "Jane and Alex", "registry": "", // optional "reply_by": "2026-12-01" // optional: shown on the invitation; replies stay open after it }, "guests": [ { "name": "Sam Lee", "email": "sam@example.com" }, { "name": "Pat Kim", "mobile": "617-555-0142" } ], "image": { "dataUrl": "data:image/png;base64,…" }, // the card picture, optional "asks": [ … ] // extra questions, optional; see below } Dates and times are shown exactly as you write them, so write them for people. Guests may also be given as one "Name, email, mobile" string per line. The picture may be PNG or JPEG, up to about 6 MB. 6. The reply is { "url": "https://invitefromme.com/h/…?made=1", "assistant_url": "https://invitefromme.com/a/…" }. Give the host the "url" and nothing else to do. It opens their finished invitation — picture, guests and all — ready to send. Tell them the link is private: anyone with it can manage the party. Keep "assistant_url" for yourself (see "Changing it later"). 7. Tell them what happens next: the first time they send from a Mac or iPhone, the page runs one check that the free Invite Sender shortcut is there (a few seconds), then they send. Invitations go out from their own Mail and Messages. Sending is always theirs to do; never do it for them. ## Extra questions ("asks") Only add these when the host asks for them. Each one shows on the reply page; the host can switch any of them off or remove it from the invitation's Extras section without coming back to you. Up to 8, but 1–3 is best. Kinds of ask: - choice — pick one or several: {"type":"choice","title":"Dinner choice","options":["Chicken","Fish","Vegetarian"]} Add "multiple": true to allow several (e.g. which days). - text — a short answer: {"type":"text","title":"Any food allergies?"} - signup — guests claim items, a set number of each, and can say what they're bringing: {"type":"signup","title":"What will you bring?","items":[{"label":"Main dish","qty":3},{"label":"Side","qty":3},{"label":"Dessert","qty":3}]} Options: "detail": false (no "what are you bringing" box), "per_guest": 2 (claim up to 2). - resource — a fixed number of something: {"type":"resource","title":"Parking","label":"a driveway spot","qty":4} - rideshare — carpool: drivers offer seats, others pick a driver: {"type":"rideshare","title":"Carpool"} - headcount — adults and kids counted separately, instead of one "how many people": {"type":"headcount"} - groupchat — guests can ask to join a group text the host starts from their phone: {"type":"groupchat"} Every ask may also have "help" (one line under the title) and "who": "yes_maybe" (default: shown to guests who say yes or maybe), "yes" (only yes), or "all" (text and choice only). Suggestions by kind of party (offer these as examples; don't add them unasked): - Potluck, cookie swap, block party: a sign-up list by course or type; allergies (text). - Dinner, wedding event, gala: meal choice; dietary needs (text). - Kids' birthday: adults and kids; allergies (text); "Will a grown-up stay?" (choice: Staying / Dropping off). - Family party, picnic, catered event: adults and kids. - Baby or bridal shower: advice or a wish for the parents / couple (text). - Reunion, weekend or multi-day: which days (choice, multiple); carpool; beds or rooms (signup). - Far-away or tight venue: carpool; parking spots (resource). - Trips, bachelor/bachelorette, anything with lots of planning: group chat. - Fundraiser, cleanup, volunteer day: shifts or jobs (signup). - Holiday or game night: a song or game request (text); gift swap in or out (choice). ## Changing it later "assistant_url" is a private link for you, the assistant. It shows the party details, its asks and the counts of answers, never a guest's name or contact. - GET assistant_url → { party, replies, asks (each with a plain description and its tally), catalog } - POST assistant_url + "/asks" body { "asks": [ … ] } → adds them; an ask with an existing "id" replaces it - POST assistant_url + "/asks/remove" body { "id": "…" } → removes it and its answers - POST assistant_url + "/settings" body { "reply_by": "2026-12-01" } (or "" to clear) If the host comes back without that link, ask them to open their invitation, go to Extras and tap "Give this to your assistant"; they'll paste you a fresh one. If you can't make requests, give the host the asks as JSON ({"asks":[…]}) and tell them: in Extras, tap "Paste from your assistant". ## If the request is blocked because it carries contact details Many sandboxes refuse to send someone's contacts to an outside address. That rule is right — don't work around it, and don't ask the host to hunt for files. Split it instead: 1. POST /api/compose WITHOUT the "guests" field: party details and picture only. Sandboxes allow that. 2. Put the guest list on the host's clipboard — on a Mac, pipe it to pbcopy; on Windows, clip. One guest per line, "Name, email, mobile". Nothing leaves their computer. 3. Give them the link and one sentence: "Your guest list is on your clipboard — tap Paste guest list." The invitation has that button; one tap adds everyone. If you can't reach the clipboard either, end your reply with the guest list as plain lines and say: copy these, then tap Paste guest list. Never put guest details in the link. ## If you cannot make a POST request at all Give the host this link, with no guest details in it: https://invitefromme.com/start?party=…&date=…&time=…&place=…&address=…¬e=…&signoff=…&from=… Then put the guest list on their clipboard (or print it for them to copy) and tell them to tap "Paste guest list" on that page, and "Add files" if they want a picture you made. ## Never - Never put guest names, emails or phone numbers in a URL. - Never ask the host to re-upload something you already have; send it in the request. - Never send invitations yourself, and never ask for passwords. There are no accounts here. Privacy: https://invitefromme.com/privacy · Terms: https://invitefromme.com/terms