Documentation Index

Fetch the complete documentation index at: https://knowledge.technolutions.net/llms.txt

Use this file to discover all available pages before exploring further.

This section includes an article, Elevated Form Submission Rate Limits, that is only visible to signed-in Slate users.

The Slate Summit 2026 executive summary is here:  

Blocking Spam Form Submissions With Translation Codes

Prev Next

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.

  1. Go to Database → Translation Codes.

  2. Create or select the translation key that will store blocked email domains.

  3. Configure the translation key as String (Discrete Values).

  4. Set the default export value to 0.

  5. Add one Translation Code entry for each email domain to block.

  6. For each blocked domain, enter the domain as the string value and set the export value to 1.

A Translation Code configured with an email domain block list.

💡 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.

  1. Open the form in the form builder.

  2. Add or select the free text field that collects the submitter's email address.

  3. Map the field to the email system field.

  4. 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.

  1. Add a free text field to the form.

  2. Leave the field unmapped.

  3. Enter an export key, such as email_domain.

  4. Set the field to Hidden / accessible through script.

  5. In the Calculation Formula field, enter the following formula:

    @sys:email.split("@")[1]

A hidden form field that calculates the email domain from the submitted email address.

Adding the Translation element

Add a Translation element to the form so a calculated field can reference the Translation Code block list.

  1. Add a Translation element from the form builder palette.

  2. 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 0 or 1.

  3. Select Save.

A Translation element configured with an email domain Translation Code.

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.

  1. Add a free text field to the form.

  2. Leave the field unmapped.

  3. Set the data type to Int.

  4. Enter an export key, such as on_email_list.

  5. Set the field to Hidden / accessible through script.

  6. 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.

A hidden form field that translates the email domain into a numeric blocked-domain value.

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.

  1. On the form, select Edit Conditions.

  2. In the Submission Conditions section, add a filter based on the final hidden field's numeric export, such as On_Email_List (Numeric).

  3. Configure the filter so the value must equal 0.

  4. In the Submission Denied field, enter a generic message.

  5. Select Save.

A submission condition that permits form submission only when the blocked-domain value equals zero.

⭐ 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 0 or 1 as expected.

📖 Translation Codes

📖 Access and Submission Conditions

📖 Avoiding Form Spam Submissions

Still looking for what you need?