I’m creating a bird survey, where the parent form contains the metadata (observer info, start time, date, etc.) and the child table contains the observation entries (species, count, behavior, habitat). The issue I’m having is that I want the user to start and end the survey by entering the times…but the only way I can see to do this is instructional (“you have to re-open the parent table and enter the end time when you’re done”) but this leaves the chance they will forget or ignore that step, since I can’t make “end time” required, because if I do, the user can’t go from the parent to child table before entering an end time.
What I’d like is either an option to say “end survey” and “end time” auto-populates with that time, or require end time to be entered before uploading the data, but not before going into the child table.
Any thoughts would be greatly appreciated…I’m at an early stage here, so happy to modify the setup.
Here’s what I’ve got so far if you want to take a peek:
Cheers, and thanks,
Thank you for your question.
Regarding the timestamps, the system creates two of them automatically:
created_at when the user taps “SAVE,” and
uploaded_at when the entry is uploaded to the server. These timestamps might be helpful for you.
Now, we would like to clarify the use case you mentioned. If you have a “Start Time” question in your parent form and an “End Time” question in your child form, please note that the two are not connected. Consequently, you will have a single start time and multiple end times, as the user can enter multiple observation entries for each metadata entry. Is this the scenario you are looking for?
However, there is an alternative approach that may work for you. By using BRANCH(es) instead of child forms, your setup could function as intended. With this approach, the user needs to save the main entry to save all the branch entries. Therefore, you could have the required “Start Time” in your main form and the required “End Time” in your branch form. When a branch entry is saved, the user is always redirected to the main entry to complete it, which seems to match the behaviour you are looking for.
We hope this explanation helps.
Please let us know how it goes, and if you have any further questions, we’ll be glad to assist you.
Thank you- I’ll play around with the branch idea…that might work IF I can enter multiple entries in the branch before completing the main entry. So I want to be able to add many birds during a survey where survey metadata is in the Main, and birds are in the Branch…if that works, then that would be great.
ah…this doesn’t work as I hoped because it’s a many:one relationship between the child form or the branch form, and the parent/main form.
That is exactly how branches work, one entry → multiple branches
If you look at our example and replace “Family Members” with “Observations”, it is the same concept.
ok…but how would that work with the end time?
Begin survey by identifying the site, date, start time, and observer in the main table
Add species via branches: species name, count, behavior, habitat, distance, media…
species 1, species 2, species 3…etc…
End survey by putting in the end time and submitting survey to server…where does End Survey Time live? in each branch entry (seems weird, since there are multiple entries during a survey…but not multiple survey ends)?
The location of the “End Survey Time” depends on where you place the question. If you include the question in the main form, it will appear there. Alternatively, if you place the question in the branch, it will be associated with the branch entry.
seems weird, since there are multiple entries during a survey…but not multiple survey ends
Indeed, it can be confusing, but it seems that this is the outcome you were aiming for in your initial example.
In any case, we recommend trying this simple setup with three questions, all in one single form called SURVEY:
(TIME) Start Time *required
(TIME) End Time *required
Afterwards, please check what the entries look like once you upload and export them.
Hopefully, this arrangement will suit your use case well.
That worked. I’ve cloned the project and created a public version for anyone who might find it useful:
Cheers- and thanks again for your help,