Use a Translation Code and form submission conditions to block form submissions from known spam email domains. This approach is useful when spam submissions come from repeated email addresses or domains instead of automated bot behavior.
📝 Note
No form-spam mitigation method catches every submission. Use this approach for patterns that you can identify, such as repeated email domains, and continue monitoring submitted records for new patterns.
⭐ Get Inspired
This article was adapted from a post by Technolutions staff in the Slate Community Forums' Get Inspired space. Have a great idea for a Get Inspired post? Let us know!
Creating the Translation Code block list
Create a Translation Code that returns one value when an email domain appears on your block list and another value when it does not. In this example, blocked domains return 1, and all other domains return 0.
Go to Database → Translation Codes.
Create or select the translation key that will store blocked email domains.
Configure the translation key as String (Discrete Values).
Set the default export value to
0.Add one Translation Code entry for each email domain to block.
For each blocked domain, enter the domain as the string value and set the export value to
1.

💡 Tip
String Translation Code values must match exactly. Use consistent casing when entering blocked domains, and test the form with the same domain format that your calculation returns.
Adding the email field to the form
The form must collect an email address before the domain can be evaluated.
Open the form in the form builder.
Add or select the free text field that collects the submitter's email address.
Map the field to the email system field.
Confirm that the field has the export key
sys:email.
Storing the email domain in a hidden field
Add a hidden field that stores only the domain portion of the email address. The domain value will be used as the input for the Translation Code.
Add a free text field to the form.
Leave the field unmapped.
Enter an export key, such as
email_domain.Set the field to Hidden / accessible through script.
In the Calculation Formula field, enter the following formula:
@sys:email.split("@")[1]

Adding the Translation element
Add a Translation element to the form so a calculated field can reference the Translation Code block list.
Add a Translation element from the form builder palette.
Configure the following settings:
Status: Active
Label: Enter an internal label.
Script Key: Enter a script key, such as
email_list_translation.Translation: Select the Translation Code block list.
Translation Export: Select the export value that returns
0or1.
Select Save.

Calculating whether the domain is blocked
Add another hidden field that stores the translated value. This field will return 1 when the email domain appears on the block list and 0 when it does not.
Add a free text field to the form.
Leave the field unmapped.
Set the data type to Int.
Enter an export key, such as
on_email_list.Set the field to Hidden / accessible through script.
In the Calculation Formula field, enter the following formula:
translate("email_list_translation", @email_domain_text)
In this formula, email_list_translation is the script key of the Translation element, and email_domain is the export key of the hidden field that stores the email domain. The _text suffix is used because the translated input value is a string.

Blocking the submission with submission conditions
Submission condition filters identify who is allowed to submit the form. To block domains on the list, configure the submission condition to allow submissions only when the translated block-list value equals 0.
On the form, select Edit Conditions.
In the Submission Conditions section, add a filter based on the final hidden field's numeric export, such as On_Email_List (Numeric).
Configure the filter so the value must equal
0.In the Submission Denied field, enter a generic message.
Select Save.

⭐ Best practice
Keep the submission denied message generic. A message such as You are not permitted to submit this form at this time avoids revealing which field or domain caused the denial.
Testing the configuration
Before using the block list on a live form, test both allowed and blocked submissions.
Submit the form with an email domain that is not on the Translation Code block list. The form should submit successfully.
Submit the form with an email domain that is on the Translation Code block list. The form should show the submission denied message.
Review the hidden calculated values on test records or with a Quick Query to confirm that the translated value returns
0or1as expected.