Skip to content

The Model Submission template

The Model Submission template holds a form for submissions to the agency. Depending on whether the submission should arrive via email or create a profile within Syngency, a contact or submission form can be used. Refer to the Syngency Liquid form tag documentation for the required fields and basic structure for each form type.

Contact and submission forms include reCAPTCHA spam protection via the submit tag. When used outside the syngency.com domain, your custom domain must be whitelisted by the Syngency team.

Syngency recommends all agencies have a published Privacy Policy and Terms of Service page, and ensure appropriate consent is confirmed during submission. Compliance with international privacy law is the responsibility of the agency.

Choosing the form type

Contact form

  • For agencies recieving a large number of submissions, using a contact form is typically the recommended approach to avoid filling the Syngency account quickly as submission-created profiles contribute to plan limits.
  • Contact forms support direct upload of images, video and documents. Refer to the upload limits for the upload liquid tag.
  • Contact forms do not send an automatic confirmation email to the sender, so on-screen feedback is important.
  • When using a contact form, all fields will flow through to the notification email, so field names are flexible beyond the required name, email and message fields.

Refer to the contact form documentation for further information.

Submission form

  • Submission forms support direct upload of images and documents (typically PDF resume) only. Video uploads are supported via link to a public Vimeo or YouTube video.
  • Direct submissions send a standard notification email to the agency, which cannot be customized, and a confirmation email to the applicant, which is customizable in the agency's email templates.
  • Submission forms rely on a division to create the profile in, so a Submission division type must be created under Settings > Types > Divisions and the corresponding division_id added to the form as per the example below.
  • When using a submission form, the field names must align with the fields within Syngency. Additional information can be saved as a note, for example:
liquid
{% textarea id: 'experience', name: 'notes[Experience]' %}

Refer to the submission form documentation for further information.

Skeleton example

Using a submission form.

liquid
{% comment %}
Submission direct to Syngency (submission form)
- Supports image upload, and video by URL
- Set the Submission division ID at the top of the form.
{% endcomment %}

<h1>Apply</h1>

{% if form.posted_successfully? %}

  <h3>Sent</h3>
  <p>Thank you for your submission.</p>

{% else %}

  {% if form.errors %}
    <h3>Not Sent</h3>
    <p>Your submission was not sent. Please correct the following errors:</p>
    <ul>
      {{ form.errors }}
    </ul>
  {% endif %}

  {% form 'submission' %}

    <input type="hidden" name="subject" value="New talent submission">
    <input type="hidden" name="send_to" value="{{ agency.email }}">

    <input type="hidden" name="is_published" value="0">
    {% comment %} Use the actual agency's Submission division ID {% endcomment %}
    <input type="hidden" name="division_id" value="1234">
    <input type="hidden" name="message" value="New talent submission">

    <label for="first_name">First Name</label>
    {% input type: 'text', id: 'first_name', name: 'first_name', required: 'required' %}

    <label for="last_name">Last Name</label>
    {% input type: 'text', id: 'last_name', name: 'last_name', required: 'required' %}

    <label for="date_of_birth">Date of Birth</label>
    <div>
      {% assign year = 'now' | date: '%Y' %}
      {% assign firstYear = year | minus: 80 %}
      {% assign months = 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec' | split: ',' %}
      <select name="date_of_birth[month]" required>
        <option value="">M</option>
        {% for month in months %}
          <option value="{{ forloop.index }}"{% if form.values.date_of_birth.month == forloop.index %} selected{% endif %}>{{ month }}</option>
        {% endfor %}
      </select>
      <select name="date_of_birth[day]" required>
        <option value="">D</option>
        {% for i in (1..31) %}
          <option{% if form.values.date_of_birth.day == i %} selected{% endif %}>{{ i }}</option>
        {% endfor %}
      </select>
      <select name="date_of_birth[year]" required>
        <option value="">Y</option>
        {% for i in (firstYear..year) %}
          <option{% if form.values.date_of_birth.year == i %} selected{% endif %}>{{ i }}</option>
        {% endfor %}
      </select>
    </div>

    <label for="email">Email</label>
    {% input type: 'email', id: 'email', name: 'email', required: 'required' %}>

    <label for="phone">Phone</label>
    {% input type: 'text', id: 'phone', name: 'phone', required: 'required' %}

    <label for="address">Address</label>
    {% input type: 'text', id: 'address', name: 'address', required: 'required' %}

    <label for="ethnicity">Ethnicity</label>
    {% select id: 'ethnicity_id', name: 'ethnicity_id', options: ethnicities, option_value: 'id', option_text: 'name', required: 'required' %}

    <label for="gender">Gender</label>
    {% select id: 'gender', name: 'gender_id', options: genders, option_value: 'id', option_text: 'name', required: 'required' %}

    <label for="height">Height</label>
    {% select id: 'height', name: 'measurements[height]', options: heights, option_value: 'value', option_text: 'label', required: 'required' %}

    <label for="bust">Bust</label>
    {% select id: 'bust', name: 'measurements[bust]', options: bust_sizes, option_value: 'value', option_text: 'label', required: 'required' %}

    <label for="chest">Chest</label>
    {% select id: 'chest', name: 'measurements[chest]', options: chest_sizes, option_value: 'value', option_text: 'label' %}

    <label for="waist">Waist</label>
    {% select id: 'waist', name: 'measurements[waist]', options: waist_sizes, option_value: 'value', option_text: 'label', required: 'required' %}

    <label for="hip">Hips</label>
    {% select id: 'hip', name: 'measurements[hip]', options: hip_sizes, option_value: 'value', option_text: 'label', required: 'required' %}

    <label for="dress">Dress</label>
    {% select id: 'dress', name: 'measurements[5]', options: dress_sizes, option_value: 'value', option_text: 'label' %}

    <label for="suit">Suit</label>
    {% select id: 'suit', name: 'measurements[suit]', options: suit_sizes, option_value: 'value', option_text: 'label' %}

    <label for="pants">Pants</label>
    {% select id: 'pants', name: 'measurements[pants]', options: pants_sizes, option_value: 'value', option_text: 'label' %}

    <label for="shoe">Shoe</label>
    {% select id: 'shoe', name: 'measurements[shoe]', options: shoe_sizes, option_value: 'value', option_text: 'label', required: 'required' %}

    <label for="hair_color">Hair Color</label>
    {% select id: 'hair_color', name: 'hair_color_id', options: hair_colors, option_value: 'id', option_text: 'name', required: 'required' %}

    <label for="eye_color">Eye Color</label>
    {% select id: 'eye_color', name: 'eye_color_id', options: eye_colors, option_value: 'id', option_text: 'name', required: 'required' %}

    <label for="experience">Previous relevant experience</label>
    {% textarea id: 'experience', name: 'notes[Experience]', required: 'required' %}

    <label for="video_url">Video Showreel Link (Vimeo or YouTube URL only)</label>
    {% input type: 'text', id: 'video_url', name: 'videos[]' %}
    <small>Ensure this is a full URL including http:// or https://, and the video is public.</small>

    <hr>

    <h3 class="text-center mt-5 mb-4">Photos</h3>

    <label for="image_headshot">Headshot</label>
    {% upload id: 'image_headshot', type: 'image' %}
      <span class="upload">Upload</span>
      <span class="uploading">Uploading...</span>
      <span class="uploaded">Uploaded</span>
    {% endupload %}

    <label for="image_profile">Profile</label>
    {% upload id: 'image_profile', type: 'image' %}
      <span class="upload">Upload</span>
      <span class="uploading">Uploading...</span>
      <span class="uploaded">Uploaded</span>
    {% endupload %}

    <label for="image_waist_up">Waist Up</label>
    {% upload id: 'image_waist_up', type: 'image' %}
      <span class="upload">Upload</span>
      <span class="uploading">Uploading...</span>
      <span class="uploaded">Uploaded</span>
    {% endupload %}

    <label for="image_full_length">Full Length</label>
    {% upload id: 'image_full_length', type: 'image' %}
      <span class="upload">Upload</span>
      <span class="uploading">Uploading...</span>
      <span class="uploaded">Uploaded</span>
    {% endupload %}


    {% comment %}
    Privacy & Terms of Service acceptance
    {% endcomment %}
    {% assign policiesAccepted = false %}
    {% for note in form.values.notes %}
      {% if note[0] == 'PoliciesAccepted' and note[1] %}
        {% assign policiesAccepted = true %}
      {% endif %}
    {% endfor %}

    <input type="checkbox" value="Privacy Policy, Terms and Conditions accepted on submission" id="accepts_policies" name="notes[PoliciesAccepted]" {% if policiesAccepted %}checked{% endif %} required>
    <label for="accepts_policies">
      I accept the agency's <a href="/pages/privacy-policy" target="_blank">privacy policy</a> and <a href="/pages/terms-and-conditions" target="_blank">terms &amp; conditions</a>.
    </label>

    {% submit form: 'submission' %}Send Submission{% endsubmit %}	

  {% endform %}

{% endif %}