Custom sign-in sheets allow you to generate fully configurable PDF documents for classroom events. Unlike the standard event sign-in sheet (which supports additional columns only), document templates let you design layouts using the editor or HTML and include dynamic event, resource, and student data.
Create a Sign-In Sheet Template
- Go to the Control Panel.
- Select Document Templates.
3. Click Create Template.
4. Enter a name for the template.
5. Under Category, select Events.
6. Build your layout in the Main Content section using either the rich text (WYSIWYG) editor or HTML.
7. Use the Header section for repeated content such as your logo. Headers and footers repeat on each PDF page.
8. Click Submit, then Save.
Use a Sign-In Sheet
- Open your event and go to the Students tab.
- Click Options.
- Select Print Outs.
- Choose your sign-in sheet template.
- Select Preview to review the layout or Print to generate the PDF.
Send a Sign-In Sheet by Email Automatically
There are two ways to have a sign-in sheet attached to an automated communication, and they behave differently.
Option 1: the built-in Sign In Sheet PDF attachment
Communication templates for the All Staff / Event Staff audience offer a Sign In Sheet PDF attachment. When the communication is sent, Administrate generates the sheet at that moment, so it always reflects the current student list.
The generated PDF always uses Administrate's built-in sign-in sheet layout: one page set per day of the Event with the event details, learner rows, and signature lines. Instance settings can adjust its labels, extra columns, and footer, but the layout itself cannot be redesigned, and it never uses a customized sign-in sheet Document Template. Choose this option only when the built-in layout meets your needs.
Option 2: attach a customized sheet with a Document Category
Customized sign-in sheet templates are only rendered on demand from the event screen; Administrate does not generate them automatically when a communication is sent. To send a customized sheet automatically, prepare it ahead of time:
- Generate the PDF from the event screen (Use a Sign-In Sheet above).
- Upload the PDF to the Document Management System and assign it a Document Category, for example "Sign-In Sheet".
- Associate the document with the Event.
- In the Communication Template, add that category as an attachment.
When the trigger fires, the stored PDF attaches automatically.
Note
The attached file is a snapshot: it shows the student list as it was when you generated it, and it must be prepared for each Event. If registrations change after you upload the sheet, regenerate and replace the stored document. If no document with the category is associated with the Event when the communication sends, the email goes out without the attachment and without any warning.
Build and Design Your Template
You can create templates using either the rich text editor or HTML. For simple layouts, the editor is usually sufficient. For advanced formatting or logic, use HTML.
The final output is rendered as a PDF, so styling may differ slightly from what you see in the editor. Additional control over layout and formatting is available when designing for PDF output.
Example 1: Using the Rich Text Editor
Below is an example layout created using the editor:
- Use tables (for example, a 3-column table) to structure headers and layout sections.
- Insert event details using the Merge Field picker. For how merge fields work and the full list of available fields, see Template Merge Fields and the Merge Field Reference.
- Use the Macro field to generate a student list table. This allows configuration without writing HTML.
Example 2: Using HTML
Switch to Code View to build complex layouts or add advanced logic using HTML and CSS.
Important: Switching back to the rich text editor can strip HTML formatting. If building in Code View, complete your template entirely in HTML.
Example Sign-In Sheet Template
The following example lists named students first, followed by unnamed students, and creates a new page for each event session:
{% for session in event.sessions %}
Day {{ loop.index }}: {{ session.start.strftime('%d %b %Y') }}
{{ make_table(
headers=['Name', 'Company', 'Notes', 'Signature'],
columns=[
'{{ item.contact.full_name }}',
'{% if item.contact %}{{ item.contact.account.name }}{% else %}{{ item.registration.account.name }}{% endif %}',
'',
''
],
widths=[40, 20, 20, 20],
items=event.all_students | selectattr('contact', 'ne', None) | sort(attribute='contact.full_name')
) }}
{{ make_table(
headers=['Name', 'Company', 'Notes', 'Signature'],
columns=[
'-',
'{{ item.registration.account.name }}',
'',
''
],
widths=[40, 20, 20, 20],
items=event.all_students | selectattr('contact', 'eq', None)
) }}
Total Number of Students: {{ event.all_students | length }}
Instructor Signature: ________________________
{% if not loop.last %}
{% endif %}
{% endfor %}
To use this example, open a Document Template with category Events, paste the code into the Main Content section, and choose Keep when prompted to paste as HTML.