Create other records from a form
Have each submission also create, update or look up records of other objects, filled from its answers.
A form can do more than save its answers. Each submission can also run actions on records of other objects: create a record, update one that's already there, or look one up so a later action can link to it. Fields are filled from the answers people gave, from static values, or from formulas. For example, a volunteer sign-up form can create a volunteer record and a first shift linked to it, or a site check can look up the site by its code and record the visit against it.
Before you start: you need permission to edit forms, and permission to create records of every object the form will create. You can only fill fields you're allowed to edit.
Add an action
Open the form
Go to Automations > Forms, open your form and select Open builder.
Switch to Mapping
Select Connectors at the top of the builder, then When they submit, then the Actions tab. The form's own record is listed first, then each action in the order it runs.
Choose the action and the object
Under Add action, choose Create a record, Update a record or Lookup a record, then choose the object. Only objects you can do that with, on a form shared the way yours is, are listed. You can change both later under Parameters.
Find the record (Update and Lookup)
Under Find the record, choose the fields that find it and what each one equals. Then choose what happens if no record is found, and if several are. See Update or look up a record.
Map its fields
Under Mapping, add a row for each field to fill: choose where its value comes from on the left and the field on the right. Select Add required fields to add a row for every field a new record can't be created without.
Save and publish
Save your changes, then publish the form. Submissions start running the action from the next published version.
Each action is a card. Select its header to open or close it, and use the arrow icons to change the order.
Where a field's value comes from
- Question: the answer to one of the form's questions. Only questions whose answers fit the field are offered.
- Static value: the same value on every record, for example a status or a category. Use it to set a field the form doesn't ask.
- Formula: a value worked out from the answers, for example a full name from a first and last name. See Formulas.
- The person submitting: their own supporter, lead or account record. This is only offered on forms people sign in to fill in; a public link doesn't know who is submitting.
- Record from an earlier action: a link to a record an earlier action created or found, or to the form's own record. This is how a child record is linked to its parent.
- The listed record: on a record created once for each row of a For each list, the record that row was answered for. Set How many to Once for each record answered in that list, and the record can also use that row's answers. A submission can create at most 50 records this way.
- The contact the link was sent to: the supporter or lead a form link was made for, such as a link in an email you sent them. It's offered for a supporter or lead field on a new record of one of your own objects, on a form shared on a portal page or by public link. Anyone can forward a link, so this records who the link was for, not who filled the form in.
To map several fields at once, select the wand icon in Mapping. It adds a row for every field whose name matches a question.
Formulas
A formula works out a field's value from the answers. Write it the way you'd write a formula field, with each question in braces:
CONCAT({First name}, ' ', {Last name})joins two answers.IF({Amount} > 100, 'Major', 'Standard')chooses a value.CASE({Program}, 'Youth', 'YTH', 'Adult', 'ADL', 'Other')turns a choice into the value your field uses, which is handy when a choice question's options don't match the field's.
You can use IF, CASE, CONCAT, UPPER, LOWER, TRIM, YEAR, MONTH, DATEDIF, NULLVALUE, AND, OR and NOT. Use Insert a question to add a question without typing its name. Renaming a question later doesn't break the formula.
- A formula reads only the form's answers, not other records.
- TODAY() can't be used, so running the mapping again on a submission always gives the same value.
- An empty result leaves the field as it is. If a formula can't be worked out, none of the form's other records are saved and the submission is marked Needs attention.
- A required field can use a formula when every question it reads is required and always asked.
Update or look up a record
An action can find a record that's already in Givable instead of creating one:
- Update a record changes the record it finds, now or after review (see Review before a record changes). For each field, choose Only if empty to fill it only where the record has no value, or Replace to always write it. The fields a record was found by are never changed.
- Lookup a record finds the record and leaves it as it is. A later action can then link to it with Record from an earlier action, for example to record a visit against the site it found.
Under Find the record, every field you list must match, and an empty answer never matches anything. Then choose what happens:
| If no record is found | What happens |
|---|---|
| Skip this action | Nothing is written for it, and the submission says no record matched. |
| Stop and flag the submission | None of the form's other records are kept, and the submission is marked Needs attention. |
| Create one | A new record is created with every mapped value. On a Lookup, a Mapping section appears for it. |
| If several records are found | What happens |
|---|---|
| Stop and flag the submission | Nothing is changed, and the submission is marked Needs attention so someone can choose. |
| Skip this action | Nothing is written for it, and the submission says several records matched. |
| Use the oldest | The record created first is used. |
| Use the most recently changed | The record changed most recently is used. Not offered for supporters and leads, which your matching rules find. |
Updating a record directly needs permission to edit those records, and an update never changes a field the person filling in the form can't edit. On a portal page or public link, a Lookup does nothing, because it would link a new record to someone else's without review.
Review before a record changes
Under When a record is found, choose what an Update does with the record it finds:
- Send to Pending updates (the starting choice): nothing on the record changes when the form is submitted. The values wait on the Pending updates page, which you open from the settings cog at the top right. A team member who may edit that record sees each value beside what the record has now, ticks the ones to keep and applies them. Anything not ticked is dismissed.
- Update it now: the record changes when the form is submitted. Only for your team's own entries, and it needs permission to edit those records.
On a form shared on a portal page or by public link, a second choice, From a portal page or public link, says what happens to what people send there: Send to Pending updates, or Do nothing. A record is never changed directly from a shared form, and the person filling it in is never told whether a record was found.
When you review, Givable tells you who filled the form in: your team, a signed-in supporter, or someone on a public link whom nobody verified. Email and phone values are marked as contact details, so check them before applying. A field marked Only if empty is applied only where the record has no value when you apply it. You can only apply fields you're allowed to edit, and you only see fields you're allowed to see.
A value waits for 90 days. If nobody reviews it by then, or the submission's answers are erased, or the record is deleted or merged, it's withdrawn without changing the record.
Update each record in a list
On a form your team fills in, a For each list can also update the records it lists instead of creating new ones. A site check can set each site's last inspection date, or a review can update each program's rating.
- Add an Update a record action for the object the list shows.
- Under Which record, choose Update each record answered in the list.
- Map the fields to update. For each one, choose Replace to always write the answer, or Only if empty to fill it only where the record has no value yet.
- Only rows someone answered are updated, and a row whose answers are all empty is left as it is.
- Publishing the form needs permission to edit those records. People filling it in update them on your behalf when they're in the form's audience; otherwise they need permission to edit the records themselves.
- A form shared on a portal page or by public link can't update records.
- If a listed record was archived before the form was sent, none of the form's other records are saved and the submission is marked as needing attention.
- An update never changes a field the person filling in the form can't edit.
- Re-run mapping on a submission writes its answers to the listed records again, over any change made since, for the records you can see.
Supporters and leads
A form can also create a supporter or a lead, for example from a sign-up or an information request. Map the person's Email (it's required), and their name and phone if you ask for them.
Before creating anyone, Givable checks your organization's matching rules, so a submission never makes a second record for someone you already have. Under If this person is already in Givable, choose:
- Leave their record as it is: the existing person is used, and nothing on their record changes.
- Fill in what is missing: blank fields on their record are filled from the answers. Existing values are never replaced. This needs permission to edit those records.
Someone new is created opted out of marketing emails, because filling in a form isn't consent. To ask for consent, add an email opt-in (below).
On a portal page or a public link, a form never adds an email address or a phone number to an existing person, and never links another record to someone it found, unless it's the signed-in person's own record.
Ask for everything a record needs
A record can need fields your form doesn't ask. A required fields group asks them for you: when the form opens, it asks every field that record requires and the form doesn't already ask. If someone later marks another field as required, the form starts asking it too, without a new version.
- To ask for a person's details in one step, add Contact fields from the Layout & Structure group in the palette. It adds a section asking for first name, last name and email, saves them as a new supporter (or, with Contact fields (lead), a lead), and asks anything else a supporter requires. You can rename the section and change its questions.
- To add a group on its own, add the required fields entry named after the record (for example Volunteer required fields) from the same group. There's one for the form's own record and one for each other record the form creates, and each record can have one group.
On a form shared on a portal page or by public link, a group asks only fields that are public, aren't personal data (a person's own details, such as their phone or address, always count as personal), and that you, as the person who published the form, can edit. When it can't ask a required field, publishing tells you which one, and the form is marked as needing attention. Records then wait until someone fills that field in, so add it to the form yourself, or make it public.
If the form changes while someone is filling it in, they're asked to update it and their answers are kept.
Ask for permission to email
To let people sign up for your marketing emails, add Email opt-in from the Consent group in the palette. It's a checkbox, and its Wording is what the person agrees to, so say plainly what they'll receive.
Under Applies to, choose the supporter or lead the form creates or finds. When the form creates only one person, the opt-in applies to them.
When someone ticks the box:
- Entered by your team: the person is opted in as soon as the submission is saved.
- On a portal page: the signed-in person is opted in, for their own record only.
- On a public link: the person is opted in after they confirm their email address from the form's confirmation email, and only when that address is the person's own. The confirmation page tells them that confirming also subscribes them. Turn on the confirmation email and choose the question that holds the address before you publish.
An opt-in can opt in someone who's already in Givable, so publishing a form with one needs permission to edit that object's records. When your team enters a submission, tick the box only if the person told you they want these emails.
An opt-in is never required and never ticked in advance. If someone unsubscribes later, confirming the same submission again doesn't opt them back in. Supporters marked do not contact are never opted in.
Each submission keeps the version of the form it was sent from, so you can always see the exact wording someone agreed to.
Ask for permission to text
To let people sign up for your marketing text messages, add Text message opt-in from the Consent group. It works like the email opt-in, with these differences:
- It's for the number typed on the form. Map the person's Phone to a question under Mapping. If the number on their record is different, they aren't opted in.
- The wording is what people agree to, so it must name your organization and say that message and data rates may apply, to reply HELP for help and STOP to opt out. The starting wording has all of this; replace the placeholder with your organization's name.
- On a portal page it counts when people tick it themselves.
- On a public link, a US number gets one text asking them to reply YES, and they're opted in only if they do. Numbers in other countries aren't sent that text; those people can opt in from their supporter portal. Your organization needs a texting number.
- When your team enters a submission, a tick counts only if your organization has turned on Consent recorded by your team in its texting settings. An administrator turns it on, accepting that your organization is responsible for the consent your team records.
Anyone who has replied STOP to your texts is never opted in again by a form. To get texts again, they text START to your number from their phone; their supporter portal tells them how. When your team enters a submission and an opt-in isn't applied, the confirmation says why.
Add people to lists
An email or text message opt-in can also add the person to up to five of your marketing lists. Choose them under Also join these lists. They're subscribed on that opt-in's channel only, and only when the opt-in counts. Choosing lists needs permission to edit marketing lists.
Accounts
A form can also create an account for an organization, for example from a partner sign-up. Map its Organization name (it's required), and its website if you ask for it. Accounts a form creates are organizations.
Givable checks your organization's matching rules first, so "Acme Inc." finds an existing "Acme". If account matching is turned off in your matching rules, every submission creates a new account. Under If this organization is already in Givable, choose Leave the account as it is or Fill in what is missing. Filling in needs permission to edit accounts.
On a portal page or a public link, a form never adds a website or any contact field (email, phone, address or link) to an existing account, and never links another record to it.
Run an action only sometimes
Under Run when, add a condition on the form's answers, such as "Want to help? is yes". The action runs only when the condition matches. Leave it empty to run it with every submission.
Order matters
Actions run in the order they're listed, after the form's own record. An action can only link to a record from one before it, so use the arrow icons to put a parent above its children, and a lookup above the actions that use it.
Settings explained
Troubleshooting
Related
Create a form
Build and publish a form.
Manage form submissions
Read what people sent, and fix a submission that needs attention.
Still stuck?
We're here for you, and no question is too small. Tell us what you were trying to do and what happened, and we'll help you get it sorted.