Offer form
In the offer form, organizers and the team enter all details of an offer for the website, the booklet and the registration.
Location: Offer > Edit.
Structure
The Content page of the canoe trip, as Kim Beispiel sees it. On the Media & downloads page a picture is still missing.
| Element | Content |
|---|---|
| Pages | One button per page, to the left of the form. Before the first save the other pages are locked. |
| Icon on a page | Yellow circle with an exclamation mark: “Something is still missing on this page”. Red circle with a cross: “Something is wrong on this page” (Findings). |
| Note for organizers | Only for organizers, on the Content page: “Season, organizers and publication status are set by the team.” |
| Save bar | On the left the first finding of the open page, for several with “+{count} more”. If the open page has no finding, the first finding of another page appears there: “Still missing before publishing: {page} · {field or section}”, as a link to it. Errors come before notes. With no finding at all it shows what the page contains, e.g. “2 extra questions · 1 of them required”. The number counts only the offer’s own extra questions, not the season questions. After a change also “{count} unsaved changes” with the changed fields. |
| Discard | Discards all unsaved changes of the page and reloads it. |
| Save | Saves the whole page. Every page is saved on its own. Keyboard shortcut: Ctrl+S, on a Mac ⌘S. |
| Page | Sections |
|---|---|
| Content | General, Description, Conditions, Contact & information |
| Dates & places | Dates, Registration deadline, Meeting point, Variants |
| Registration | Registration type, Places, List recipients |
| Registration form | Standard details, Extra questions, Preview |
| Consents | Consents of this offer |
| Media & downloads | Pictures, Downloads |
Access is a tab of its own next to Edit, not a page of the form (Access).
| Case | Display |
|---|---|
| New offer | Before the first save the other pages are locked. Contact & information shows “Available after the first save.” |
| Copy, new variant | Like a new offer. Above it appears, for a copy, “Content carried over, dates empty”, for a new variant “The content is linked to the offer”. |
| Variant | “Variant of offer ID {ID}. Not all fields are editable.” The variant always sets dates, registration deadline and list recipients itself, and by default age, minimum number and places. It takes the other details from the main offer, unless the settings of the offer fields say otherwise (Fields per variant). It always takes title, registration type, visibility, season, organizers, categories and Ask for date of birth. A field that the variant takes from the main offer is locked on the pages Content, Registration, Registration form, Consents and Media & downloads (Variants). |
| Fields turned off | They are missing in the form. Super admins turn off individual fields under Settings > Offers > Fields (Settings). |
| No editing phase | For organizers, if no editing phase is running in the season: “No editing phase is running in the season ‘{season}’.” The fields are locked. |
| Locked offer | A “Locked” sign next to the title. Instead of the steps, “{status} · editing locked” appears below the tabs, with “Editing is locked. Changes go through the office.” and Request a change, which leads to the conversation of the offer. The save bar shows “Read only · participant list and allocation stay usable” and also Request a change. |
A locked offer: the canoe trip, without editing right for the signed-in person.
Findings
Findings name what is missing or wrong before publishing. They appear as an icon on the page and in the save bar. Findings on a field that is turned off do not apply.
| Message | Page · Section | Type |
|---|---|---|
| “No contact person is given.” | Content · Contact & information | Note |
| “Registration via the website needs the number of places.” | Registration · Places | Note |
| “No date has been entered yet.” | Dates & places · Dates | Error; not with Ongoing offer without a fixed end |
| “At least one date starts before the season’s event period.” | Dates & places · Dates | Note |
| “At least one date ends after the season’s event period.” | Dates & places · Dates | Note |
| “The registration deadline is after the first date.” | Dates & places · Registration deadline | Note |
| “No picture has been added.” | Media & downloads · Pictures | Note |
Content
Location: Edit > Content.
General
“Where the offer appears and who edits it.”
The sections General and Description, as admins see them.
| Field | Meaning and effect |
|---|---|
| Title | Name of the offer, required field. Below it “{count} characters · printed like this in the booklet and on the website.” |
| Season | Editable only for admins: active and archived seasons. Whoever selects another season moves the offer there. Organizers see the season as text. Default: set on creation |
| Organizers | Only if Organizers is turned on under Fields; otherwise the field is missing, and for organizers the line with the profiles too. Editable only for admins: at least one organizer profile, several possible. All members of these profiles have access to editing and the participant list. Below it their names: “This gives {count} accounts access to editing and the participant list:”. Organizers see the profiles as text with “Set by the team. Invite further people under Access.” Default: set on creation |
| Categories | Only if the field is turned on. Categories of the instance as buttons, several possible: “Multiple selection possible.” |
| Visibility | Public on the website or Only via private link, next to it “in no list and in no booklet”. With Only via private link the offer can be reached through the private link (Links). Default: Public on the website |
Description
| Field | Meaning and effect |
|---|---|
| Text | Description of the offer, with Bold, Italic, Bulleted list and Numbered list. Below it the number of characters. Above the field: “Appears on the website and shortened in the booklet, see the proof.” |
| What to bring | What participants bring. Appears on the offer page. |
Conditions
“Appear in the booklet and filter the offer list on the website.” If the age fields are turned off: “The fee appears in the booklet and filters the offer list on the website.”
Sample data. The own property appears as a grey bar.
| Field | Meaning and effect |
|---|---|
| Age from, Age to | Age limits in whole years above 0. Empty: no limit, placeholders “no minimum age” and “no maximum age”. The age on the first date is checked; the Age tolerance widens the limits (Rules of registration on the website). The age limits appear in the booklet and filter the offer list of the website. |
| Participation fee | Amount in euros, from 0. “Empty: free of charge.” If a fee is entered, a payment obligation arises on confirmation (Payments). |
| Wheelchair accessible | Yes, No or By arrangement. “Shown as a feature in the booklet and as a filter on the website.” Default: By arrangement |
| Own properties | Further fields of the instance. The settings determine type, section and position. Properties for which Print in the booklet is turned on go into the print template of the booklet (Settings). |
Contact & information
| Element | Content |
|---|---|
| Add person | Adds a further contact person. |
| Contact person | Name, Phone and Email. For a new offer, name, email address and phone number of the organizer profile are prefilled (New offer). Contact persons without details are discarded on saving. |
| Remove | Wastebasket next to the contact person. |
| “How it appears on the offer page” | The section Contact & information of the offer page with name, phone and email for each person. Without details: “No contact person added yet.” |
| Rule | Content |
|---|---|
| Public | “Appear publicly on the offer page.” |
| Without a contact person | “No contact person has been added for this offer yet.” |
| Variants | Locked as long as the variant takes the contact persons from the main offer (default); can be set under Fields per variant. |
Dates & places
Location: Edit > Dates & places.
Dates
Sample data: the first morning of the canoe taster course, the row with the dialog open.
| Element | Content |
|---|---|
| Note above the dates | “With several dates, a person takes part in all of them. For a choice between dates, use variants.” |
| Add date | New row for a further date of the same group. The dialog Date and time of the row opens at once. A row without a date is dropped on saving. |
| Date row | Each date is a row with a calendar symbol. Closed, it reads “Mon, 02.08.2027 · 09:00–12:00”, for several days “Mon, 02.08.2027, 09:00 – Wed, 04.08.2027, 12:00”. On the right is the duration, e.g. “3 h”, “1 h 30 min” or “1 night”. Without a date it reads “Choose date and time”. Selecting the row opens the dialog. Messages under the row: “Start is missing.”, “End is missing.”, “The end is before the start.” With a message, the edge of the row is red. |
| Remove date | Wastebasket next to the row. On a saved date it opens the dialog Delete date: “The date is deleted from the offer. Cannot be undone.”, button Delete date. On a new row it removes the row. |
| Calendar | In the dialog Date and time. The chosen day is filled, a period is shaded. Choosing a day sets the day and puts the cursor in Start. The month changes with the buttons Previous month and Next month. |
| Start, End | Times in the dialog. Entering 9 gives 09:00, 1430 gives 14:30. The arrow keys change the time in steps of 15 minutes. Enter moves from Start to End and closes the dialog. Next to the name is the day, e.g. “Mon, 02.08.”. If End is before Start, the date ends on the next day. The calendar rings that day, and the line under the fields shows “Ends the next day” and the duration. Otherwise the line shows “Choose a day.”, “Type the start time.”, “Type the end time.” or the duration. |
| Several days | Choosing the next day sets the last day. Until then the dialog shows “Click the last day.” with Cancel, and the calendar shows the period under the pointer. Afterwards it shows Change last day. |
| Done | Closes the dialog. So do Escape, selecting outside the dialog and Enter in End. On closing, the row takes over the date; Save saves it. |
Registration deadline
| Field | Meaning and effect |
|---|---|
| Registrations possible until | Date and time, end of the registration on the website. The team can still register people by hand afterwards. If the season has a registration deadline, “Empty: the season’s deadline applies ({date}).” appears below, otherwise “After this date, no more registrations are possible.” Default: empty |
| Case | Display |
|---|---|
| Without a date | “No date yet. If the offer has none, tick ‘Ongoing offer without a fixed end’ further down.” Next to Registrations possible until appears Ongoing offer without a fixed end. |
| Ongoing offer without a fixed end | “Stays open for registration as long as places are free.” If it is turned on, the dates show “No date. The offer is ongoing, without a fixed end.”, and save bar and proof check do not report the missing date as an error. As soon as the offer is saved with a date, it is off again. Default: off |
| New row incomplete | If Start or End is missing or the end is before the start, Save saves neither the new rows nor Registrations possible until. The edge of the row is red, and the message is under it. Save saves the other sections of the page, but does not show the message “Your changes have been saved.” The save bar keeps naming the fields as unsaved changes. |
Meeting point
“Printed in the booklet, on the offer page and on the attendance list.”
Sample data: the canoe trip with a second variant.
| Field | Meaning and effect |
|---|---|
| Address | Address of the meeting point: “Choose the address in the map's search field or move the marker.” |
| Map | Search field and marker. Below it the coordinates and “The marker can be moved.” |
| Meeting point note | Optional: more precise description. Placeholder “e.g. car park behind the club house, please be there 10 minutes early” |
Variants
“The same offer at other times. Participants register for exactly one variant.” By default the variant takes content, media and downloads from the main offer; this can be set per field under Fields per variant.
| Element | Content |
|---|---|
| Link existing offers | Only with the right to edit: makes another offer a variant (Link an offer as a date variant). |
| Create variant | Only for everyone who may create offers in the season: opens a new variant of the main offer (Create a date variant). |
| Table of the variants | From 2 variants: Variant, Date, Places with confirmations and maximum, open. The open variant shows “this offer” and “current”. Otherwise: “No variants yet.” More on variants: Offers |
Registration
Location: Edit > Registration.
Registration type
“Decides which fields on this page apply at all.” Locked in variants.
The canoe trip with Registration via the website. Former recipients without an account is not shown.
| Registration type | Effect |
|---|---|
| Registration via the website | “Places, waiting list and confirmations are managed here.” Registration form, participant list, allocation and waiting list run in fepli. |
| Registration with the organizers | “The offer page shows a note instead of the registration button.” Enables Note instead of the registration button. |
| No registration needed | “Everyone can come.” |
| Field | Meaning and effect |
|---|---|
| Note instead of the registration button | Only with Registration with the organizers: “Where and how to register, e.g. phone number or email address.” Formattable like Text. Appears on the offer page. Otherwise faded, with “Only applies to registration with the organizers.” |
Places
“Below the minimum, automatic allocation skips the offer.”
| Field | Meaning and effect |
|---|---|
| Maximum places | Maximum number of places, whole number above 0. Empty: placeholder “no limit”. With Registration via the website and no value: outlined in red with “Required for registration via the website.” Saving still works; without a maximum, first come, first served confirms every registration. |
| Minimum | Optional, whole number above 0. “Empty: no minimum.” Automatic allocation skips offers below the minimum (Allocation). |
| “{count} participants are already waiting” | Only if participants are on the waiting list, for everyone who may see the participant list. For admins and, if the season allows Allocate places, for organizers it leads to the Allocate view. For everyone else the note is not a link. |
List recipients
“Get a link to the participant list before the date.”
| Field | Meaning and effect |
|---|---|
| Accounts | Only with Registration via the website; otherwise faded with “Only applies to registration via the website.” A checkbox for each account with access to the offer: members of the organizer profiles and people invited through Access, the latter with “this offer only”. Only those who can open the list at that time receive the emails about the participant list (Participant list). If nobody except the team has access: “Nobody has access yet. Invite a person.” Default: the person who created the offer |
| Former recipients without an account | Only if such addresses are still stored: “These addresses no longer receive participant lists. Invite the people under Access.” fepli rejects new addresses on saving: “Addresses without an account can no longer be added. Invite the person under Access.” Copies and variants do not take the addresses over. |
Registration form
Location: Edit > Registration form.
A required question of the type File, on the right the Preview.
| Element | Content |
|---|---|
| Standard details | “Collected with every registration.” |
| Ask for date of birth | “Passes the date of birth on to the organizers. The age limit is checked without it too.” Families always give the date of birth. If the setting is turned on, the participant list shows a column with the date of birth. Organizers then also see it in the registration and in the XLSX export, and in the offer list appears. Default: off |
| Add question | Adds a question. The number of questions is not limited. Without questions: “The standard form applies.” |
| Note under Extra questions | “Health details are specially protected (Art. 9 GDPR). Ask for them only if the offer needs them.” |
| Question | Wording of the extra question, without a visible label, placeholder “e.g. Can your child swim confidently?”. Questions without text are discarded on saving. “Appear as a column in the participant list.” |
| Type of answer | Yes/No, Number, Text, Choice or File. Default: Text |
| Required | Without an answer, no registration is possible. With Choice, only one of the options counts as an answer. The preview shows the question with a star. Default: off |
| Remove question | Wastebasket of the question. |
| Allowed files | Only with File: Images with the endings jpg, png, webp and heic, PDF. One file per question, “max. 10 MB per file”. On a smartphone you can take a photo directly. One kind always stays allowed: “One file type must stay allowed.” Default: both |
| Preview | “as families see it”: title, first date, age and fee, Participant with “Alex Example”, with Ask for date of birth the field Date of birth, then the season questions and the extra questions. A Choice appears with one button per option, with “+{amount} €” if it has a surcharge. |
| Season questions | If the season has season questions (Seasons), they appear locked above the offer’s own questions, under the heading “Season questions · {season}” and with the link Edit in the season. Each line shows the type of answer and, for required questions, “Required”. Only with registration via the website. |
| Options | Only with Choice: one line per option with a label (placeholder “e.g. vegetarian”) and Surcharge. Families select one option; the answer is its label, and participant lists and exports show it unchanged. When you switch to Choice, two empty lines appear. Empty and duplicate labels are discarded on saving. |
| Surcharge | Amount in euros, e.g. 40 or 40.00, placeholder “0.00”. “Empty: no surcharge. The surcharge is added to the fee; reductions do not apply to it.” The offer matches the surcharge to the answer by the option’s label (Payments). |
| Add option, Remove option | Adds or removes an option line. |
| Case | Display |
|---|---|
| Without registration via the website | The extra questions are locked: “Only with registration via the website. Change that under Registration.” Below the preview: “Only with registration via the website.” Ask for date of birth stays adjustable. |
| Variant | The page is locked as long as the variant takes the extra questions from the main offer (default); can be set under Fields per variant. Every variant always takes Ask for date of birth from the main offer. |
Consents
“In addition to the season's declarations. The status is in the participant list.” Locked in variants as long as they take the declarations of the main offer (default); can be set under Fields per variant. Fields and locking rules: Consents.
Media & downloads
Location: Edit > Media & downloads. Locked in variants as long as they take pictures and downloads from the main offer (default; can be set for each separately under Fields per variant).
Pictures
“The first image appears in the booklet and the offer list.”
The selected picture is the cover picture. Without a picture: “No images yet.”
| Element | Content |
|---|---|
| From Files | Opens the dialog “Choose for ‘{offer}’” with the pictures of all folders of Files. The selected pictures are attached to the offer: “{count} images attached to ‘{offer}’.” Pictures that are already attached to the offer show “On the offer” and are locked. The dialog is described under Files. |
| Generate picture | Only if AI image generation is turned on (Settings) and the app Generate images with AI is connected (App-Store). Opens the section Generate picture below the list (Generate picture). |
| Upload | New picture: JPG, PNG or WebP, at most 6 MB. Also by dragging onto the area “Drop pictures here”. |
| Order | Drag at the handle on the left of the row. Applies as soon as the picture is dropped. The first picture is the Cover picture: It appears in the booklet and in the offer list. |
| Row of a picture | File name and Image description; if it is missing, “no image description” appears. The selected row is outlined in red, its picture is on the right. |
| Important area | Frame in the picture: “The marked area stays visible in every crop.” |
| Image description | Alternative text: “Read aloud when someone cannot see the image.” |
| Credit | Optional: photographer or creator. |
| Remove from offer | Without confirmation: The picture stays under Files and can be added again. |
| Delete permanently | After confirmation in the dialog Delete image permanently. A picture that is still attached to other offers is removed only from this one. |
Generate picture
Above before generating, below with the generated picture.
| Element | Content |
|---|---|
| Image description for the AI | Placeholder “Describe the image…”. Next to it: “The text can be edited before generating” |
| Suggest from title and description | Creates a suggestion from the title and description of the offer. If that fails: “No suggestion could be created. Try again later or write it yourself.” |
| Generate picture | Possible only once a description is entered. While generating: “Generating picture …” and “Usually takes 10–30 seconds. You can leave the page.” Stop waiting: “The picture is still generated and billed.” If generating fails: “The image could not be generated. Change the description or try again later.” |
| Discard | Discards the picture and shows the description again. |
| Generate again | Generates a new picture from the same description. |
| Add to offer | “Is labelled as AI-generated.” The picture carries the AI label, the Credit stays empty. The picture becomes the cover picture. |
Downloads
“PDFs for download, e.g. packing list or directions.”
Without a file: “No attachments yet.”
| Element | Content |
|---|---|
| From Files | Opens the same dialog with the attachments of all folders of Files. Message: “{count} attachments attached to ‘{offer}’.” |
| Upload PDF | New file: PDF, at most 6 MB. |
| Order | Drag at the handle on the left of the row. Applies as soon as the file is dropped. The files appear on the offer page in this order. |
| Row of a file | File name, “uploaded by {name}, {date}” and, if the file is attached to further offers, “also in {count} other offers”. |
| Open | Shows the file. |
| Remove from offer | Without confirmation: The file stays under Files and can be added again. |
| Delete permanently | After confirmation in the dialog Delete attachment permanently. A file that is still attached to other offers is removed only from this one. |
Access
Location: Offer > Access, a tab of its own next to Edit. Visible to: admins and members of the offer's organizer profiles.
“Access via the organizers applies to all their offers. Direct access applies to this offer only.”
Sample data.
| Element | Content |
|---|---|
| Invite a person | Dialog with Email address, Access (Editing and participant list or Participant list only), Message and Send me a copy, button Send invitation. Whoever has no account yet creates one when accepting (Invite a person to a single offer). |
| Person | Name and email address. An invitation to an address without an account is marked “no account yet”. |
| Access | Member through an organizer profile. Direct access: “Edit + list” or “list only”, below it “this offer only”. |
| Through | “through {organizer profile}”, “invited by {name}” or “assigned directly”, the last two with a date. |
| Status | “Active” or “Blocked”, below it “last seen {date}”. Open invitation: “Invitation open” with Copy link for the link of the invitation. |
| Actions (⋮) | Open invitation: Send invitation again, Withdraw invitation. Direct access: Set to “Editing and participant list” or Set to “Participant list only”, Revoke access; this also removes the person from the list recipients. For members, locked: “Managed through the organizers” |
| Note below the table | “People invited directly see only this offer. Invitations expire after {count} days.” The period is set by Invitations valid for (Settings). Default: 14 days |
| Rule | Content |
|---|---|
| One row per person | Whoever is a member of an organizer profile and was also invited appears only once in the table, as Member. Without access: “Nobody has access yet.” |
| Directly invited people | Cannot pass access on and cannot send a newsletter to the families of the offer. |
| Accepted invitation | If no admin sent the invitation, every active admin gets an entry in the bell as soon as the invitation is accepted: “{sender} invited {name} to the offer ‘{offer}’”, below it “Accepted · Editing and participant list” or “Accepted · Participant list only”, the organizer profiles of the offer and Access. The entry leads to the Access page. There is no email for this. |