Slate
Knowledge about Technolutions Slate.
Skills
Add JavaScript and CSS to Forms/Events the Easy Way
Slate provides an "easy button" to add scripts and CSS to a form. Other, more complex methods inv...
Adding JavaScript and CSS to Source
Many pages in this KB and many forum posts will advise you to paste some code into a static con...
⌨ Open Your Browser's Console
🤔 How do I open the console? Browsers typically include a set of tools geared towards web de...
Slate Administrative Bookmarklets
New to bookmarklets? Learn more about them. Switch to test: javascript: dbname = $('.footer_mac...
Keyboard Shortcuts for Slate
Ever wished you could go faster in the Slate query builder? 🚀 Wish you didn’t have to move the mo...
Copying Prompt Value Mappings
Ever wondered if it's possible to copy Prompt Value Mappings from one field to another when set...
Form Editing
Paste these code snippets into your browser's developer console to save yourself a lot of clickin...
Query Application Logic
Until Application Logic gets its own query base (🔐 requires login), you can query your hard and s...
Query Data Dictionary
This is a work in progress. Only tested with CJ queries. Given the GUID of a query, this will sp...
Rename All Query Exports
Ever needed to quickly rename a large number of query exports? For example, you're querying on a ...
Renaming Rule Folders
To rename a folder in rules: Select all rules in the existing folder (gear icon -> Select All)...
Analysis
Finding where specific fields, filters, exports, etc. are used in Slate can be quite challenging....
Dump Source Format Mappings
This page is under construction. SELECT fmap.c.value('@src', 'nvarchar(max)') AS src_field ,fm...
Field Search Tool
Finding custom field usage in forms is easy, thanks to the Field Search tool! You'll find it unde...
Find Forms Not Covered by Origin Source Types ☂
This query finds forms that are Person- or Application Creation-scoped and are not included any a...
Find Forms Using Old STL Conditional Logic
This has been lightly tested. Please email us at support at reworkflow.com if you find inaccuraci...
Find Rules Assigning Inactive Users
These queries will find rules that set fields with user prompts or Reader queues where the user i...
Find Rules by Checklist Group or Item
🔎 How can I find which rule(s) reference a particular checklist group? Hopefully someone put...
Find Unmapped Prompt Values in Source Formats
Although it's possible to query for Source Formats with unmapped prompt values, this query is not...
Finding Field Usage
The Fields Search tool only goes so far. Here’s some helpful SQL that can help directly search th...
Finding Keywords in Portal HTML Content
A CJ version of this query can be easily imported from a Suitcase: 4e5a7b48-104c-481d-8857-b5ce11...
Finding Queries by SFTP Export Server
Need to query for queries that export to a particular server? In this example, 34.200.21.44 is th...
Finding Query Exports and Filters by Name
Need to find all queries that use a particular filter or export? This will search for query filte...
Find Rules Assigning Bin
Finding which rule is assigning a bin requires knowing the bin's GUID. You can query this from th...
Analyze Tracking Query Usage
Configurable Joins doesn't currently support the [query.run.id] table. Find which queries have t...
Find Rules Assigning Inactive Bins
Get this query from our Analysis suitcase: 4e5a7b48-104c-481d-8857-b5ce1148e9e0:rwf Visually, a ...
🥣 Easy Recipes
Here are some quick, pre-made solutions for common Slate challenges.
🎚️ Add an SSO Login Button
Adding a little JavaScript to the login page instructions can allow students, staff, etc. the cho...
✳ Add Asterisk to Address Block Labels
Slate doesn't offer an easy way to edit some form labels. You can use the Edit Scripts / Styles t...
🫳 Auto-Pick the First Option in a Related Event Selector
Ever wanted to automatically register students via a hidden Related Event Selector on a form? For...
🍼 Birth Fields on Custom Per Page
Replacing the stock per page with a Slate-Hosted Application Page has great benefits, like a beau...
📮 Change Country Field Default on an Address Block
Address blocks default the Country field to United States 🇺🇸. What a particular form is targeted ...
📜🌌 Content Blocks for Script Reuse in Portals
Did you know? You can use content blocks (snippets) without any merge fields/query involvement. ...
🏡 Copy Student's Address to Parent
Suppose you have a form with a student's address and a parent's address. You might wish to allow ...
Exclude Uploaded Materials from Document Export
When exporting from Configurable Joins - Document base to a document management system (BDM, OnBa...
📊 Expand All Report Rows ↕
To automatically expand all rows in a report, put this HTML into static content block’s Source: ...
📧 Extracting and Inserting HTML Source Code for Deliver Mailings / Templates
This page expands on the more general Editing Page Adding to Source article in focusing on its ap...
🎛️ Hide Rating Scale Label
If you utilize the "Hide Label" option on a rating scale (Likert), you'll notice that a weird spa...
💲 Importing Application Payment Activities
Summary You cannot import data to the [payment] table in Slate via Upload Dataset , but you ca...
📈 Install Plausible Analytics
Installing Plausible Analytics in Slate is easy if you take two necessary steps into account. XS...
⛔ Removing Irrelevant Links on Profile Tab
By default, person records in your Slate admissions instance will include links to information ...
Removing Special Characters from Exports
If you need to remove a single special character from an export, such as a phone number, you can ...
🔘 Rename the Submit Button
Insert the following script into your form to rename the Submit button to Next: $('button.defaul...
🔐 Restrict Portal Access by Realm
Here’s how you can restrict a portal with User security to only users who have been granted acces...
🔏 Retaining Person and School-Scoped Data from Applications
Institutions using Slate face an issue retaining data that isn't application-scoped when allowing...
Set Default Value Formula for Prompt-Based Field
Yes, you can use Default Value Formulas with prompt-driven fields. Your formula must output th...
📅 Setting Minimum and Maximum Dates for a Calendar Widget
When using the calendar element on a form in Slate, you may wish to restrict the available date o...
🧳 Suitcase Links Provided by Technolutions
Technolutions provides clients with dozens of Suitcase links that allow you to import these sampl...
💉 Warn if MMR Date Is Too Early 👶
You might want to alert someone processing MMR’s in a Workflow that the MMR was received before t...
🎁 Wrapping and Ellipses in Reports
How can I change Slate reports to display and wrap the entire label instead of cutting it off w...
Batch Edit Entity
How can I batch edit fields or other properties on an Entity? While it's easy to batch edit ...
👩🍳 Harder Recipes
These recipes require more know-how to implement vs the Easy Recipes. But you’re up for the chall...
📧 Adding to the Dashboard "Connect" Section
What if you want to add student’s institutional email addresses to Slate? 🤔 Let’s suppose you suc...
⌛ Automate Loading EST, GRE, or TOEFL Scores into Slate
This article is a stub. https://github.com/WyattBest/EDUPowerTools/blob/master/Slate/encoura_sco...
📆 Adding a Date Picker to a Report with JavaScript
This article is a work in progress. Suppose you had a report with a parameter like weekof that d...
🎛 Conditionally Show or Hide Related Events
It's easy to use Conditional Logic in Slate forms to control display of an entire Related Events ...
🕹️ Control Hidden Related Event Selectors
This article is a stub. Control a hidden related event selector via checkboxes: //Find hidden r...
Converting Time Zone in Queries
How can I export dates and times in another timezone? 🤔 Converting between time zones in Sla...
👓 Editing School Records in Reader Forms
If your staff correct school records based on transcripts, you can pre-load information from scho...
🧑🤝🧑 Group Report Rows by Week
By setting your table's Group By to a timestamp export and using Format Type: Custom SQL, you can...
🤺 Hiding Links in the Right-Side Navigation Menu of Application Records
🚧Slate Adventures In Progress🚧This page will be updated regularly as we learn of new Slater contr...
📄 Custom PDFs for the Reader, Downloads, and Document Exports
Slate provides several different options for displaying information to an end user. For instance,...
🤺 "Hiding" top bar of Slate Homepage (including upcoming events)
The Why The top navigation menu on the Slate homepage provides direct links to some additional S...
🥸 Hiding Slate's Default Dashboards
🚧Slate Adventures In Progress🚧This page will be updated regularly as we learn of new Slater contr...
Inbox Gateway Automatch Portal
Join the conversation on the related Slate Community post Are your users tired of matching messa...
🧺 Material Download Link
Ever wanted to allow students to download materials from their status portal? Join to Materials a...
🛄 Migrating Messages Between Slate Instances
Is it possible to move messages from one Slate instance to another? 🤔 No, you can't import d...
📖 Recreating Standard 'Status' Export on a Reference Widget
One piece of implementing a Custom Reference Page is the Custom List Fields that the widget-scope...
📝 Rich Text Editor in a Form
Have you ever wanted to allow persons/end users to input HTML? You might do this to allow a perso...
➕ Sum or Max of Multiple Columns
Configurable Joins makes it easy to use the aggregate SQL functions like SUM() or MAX(). Howeve...
📞 View Remaining Records in Call Lists
Ever wanted to see how many records remain across many call lists? Import this example portal to ...
🧂Make a Dash(board) for it! Custom Record and Reader Dashboards
Custom Record and Reader Dashboard Enhancements for Greater Operations/Advising Efficiencies J...
🔌 The Slate API
Overview
Does Technolutions Slate have an API? 🤔 We get this question all the time, and the answer is...
Important Gotchas
While we wish that we could directly connect Slate to every third-party API, there are two genera...
GET Data from Slate
GET requests are very easy. Create your query and turn it into a web service with the Edit Web Se...
POST Data to Slate
Posting to a Source Format Define a Source Format within Slate, then click the Web Services link...
GET Data from External Endpoint
This page is a draft. Click Edit in a Source Format and use the Import Automation tab. The foll...
POST Data to External Endpoint
This page is a draft. Use the Schedule Export button in the query builder and select "Web Servic...
📚 Reference
What the official documentation doesn't tell you (or didn't when we wrote the article).
📅 Calendar vs Date Form Elements 📆
Summary Generally, Slate stores date values in custom fields as text, even when the field data...
✔ Checklist Custom Statuses
We generally advise against using custom checklist statuses. The XML configuration section of a ...
🧑💻 Configurable Joins from an IT Perspective
IT users dropped into Slate for the first time are often frustrated by Configurable Joins. Wha...
👥 Consolidate Records
Consolidate Records is the tool available in Slate to resolve issues with duplicate records. You...
🔨 Controlling Rule Execution Order
How can I control the order in which Slate's automation rules run? I need these three rules to ...
🤹 Custom Datasets
Overview Slate users are all working to make the most of their Slate instances. Often this inclu...
⚙ Database Table Locations
Where is that thing stored? 🕵️♂️ Item Table(s) Comments Form Prompt Condit...
🖨 Decision Letter Printing
Generally speaking, there are three pipelines for printing decision letters in Slate. 1. PDF Exp...
📜 Differences Between Old and New Transcript Checklist Items
Sometime around 2020, Technolutions changed the default transcript checklist generation method in...
📔 Documenting Slate
Why There is so much work to do that documentation can fall to the wayside, but then there’s a s...
🩺 Dr. Strangequery Or: How I Learned to Stop Worrying and Love Configurable Joins
Jon Rowand joined the Graduate Slate Community Users Group (GSCUG) quarterly meeting on July 14...
✋ Don't Panic - Solutions to Slate Things That Induce Panic
😮 You’re Seeing All Rounds as Open When You Impersonate an App Slate still knows it’s you wh...
📧 Emailing Slate Query Results
When building reports in Slate there is an option for automatic mailings to be sent with updated ...
🧑🔬 Faculty Portals
Overview While it's a generalization, faculty users are often among the most challenging to sati...
🧑💻 Impersonating Applications
If you have the Person Impersonate permission, you can impersonate an application, but like Icaru...
🧑🎓 Learning Slate
Navigating the intricacies of a robust CRM like Slate is a fundamental challenge for Slate captai...
⚗️ Liquid Markup Interactive Examples
Technolutions created this helpful form which includes documentation on Liquid markup presented i...
📧🔑Mailing Tracking Keys
When sending a mailing with deduping option set to "Do not dedupe messages" or "Send only one mes...
🏘️ Making the Most of the Slate Community
Slate Community Overview One of the best parts of using Slate is having access to the community ...
🔐 Managing Query Use in Slate
Updated SuitcaseOne of the features that tends to excites institutions new to Slate is the abilit...
📦 Materialized Views and Custom SQL
Materialized Views are queries that save their output to a custom table. Cron jobs refresh the da...
🙋 Materials vs Documents
What's the difference between the [material] and [document] tables? The [document] table (te...
🏓 Ping Table
Official Ping Documentation Columns Name Purpose Notes identity Row key ti...
🇶🇷 QR Codes
Can I create QR codes with Slate? 🤔 Slate has two methods for creating QR codes. Only one is...
🏗️ Recreating Slate Template Library Filters in Configurable Joins
Whether you love configurable joins or not, they’re often the best option. But what about the t...
🏫 Renaming the Organizations Dataset
Can I rename the Organizations dataset to something more appropriate, like Schools? 🤔 You ca...
📊 Reporting in Slate
Overview Many institutions launch Slate full of enthusiasm over the expanded access to data it o...
🗂️ Retention Policy Best Practices
Slate’s Retention Policy Editor is available as a way for schools to remove data from Slate and c...
🧑🤝🧑 Shared Slate Instances
Overview This page is devoted to Slaters considering or actively working in Slate instances that...
🎫 Slate-Based Ticketing Systems
🚧Slate Adventures In Progress🚧This page will be updated regularly as we learn of new Slater contr...
⚡ Slate Form JavaScript Quick Reference
Here are bits and pieces we often reach for when working with Slate forms. Wait for the page t...
🔗Slate Instance Domain/URL Ch-Ch-Ch-Ch-Changes🎵
My institution is embarking on a domain/url change. What to do in Slate? For example, "www.sla...
🔧 Slate User-Defined SQL Functions
The official documentation has a helpful page on User Defined SQL Functions. However, as the page...
🗺 Source Format Mapping Destinations
Dataset > Standard Query Library > Upload Dataset Destinations has a machine-generated version of...
❇️ Status Portal Behavior
This article is based on testing and observation. 🤔 Which application does /apply/status redirec...
🏔️ Slate Summit 2024 Presentation Resources - Solutions in Action: Real-World Troubleshooting
Welcome! You're probably here because you attended the 2024 Slate Summit presentation Solutions i...
👨🔬Test vs Production Environments 👩🔬
This article is a stub. The official Test Environments Knowledge Base article documents most of ...
↔️ Translation Codes and Content Blocks
Content blocks are useful in mailings and portals to provide custom content based on either data ...
🤔 Unfamiliar Academic Terminology
Many Slate users come to Slate from the world of academia, but others have little to no direct pr...
🕔 Updated Timestamps
This information is based on observation, not the official documentation.These lists are not exha...
🪜Upgrading from Reader to Workflow
Congratulations on making the move from the legacy Reader to Workflows! This transition brings en...
🗄 Why Archive Queries?
Why bother archiving or deleting old queries when there's no limit on how many we can have in S...
🤷 Why Transition to Configurable Joins
Institutions that have been in Slate for several years often have a deep library of queries and r...
📤 Workflows
Overview Workflows are a powerful update to the legacy Reader module in Slate. Transitioning to ...
Built-In Query Parameters
@base UNIQUEIDENTIFIER ,@run UNIQUEIDENTIFIER ,@query UNIQUEIDENTIFIER ,@user UNIQUEIDENTIFIER...
🎟 Real-World Tickets
Here are various hard-to-categorize fixes ReWorkflow has encountered in the wild. 🦁🐯🐻
Application Status Not Showing on Tab
By default, the Application Status field displays in lightweight text next to the bolded applicat...
Bin Movement Rule not Replacing Readers 👓
Problem A bin movement rule is working fine in most cases, but a small subset of applications ar...
Can't Add to Portal View
Symptom: Cannot add anything to a portal view. The three dots do not disappear from the page. Whe...
Dataset Row Query Shows Errors
Symptoms User sees: An error has occurred retrieving these results. when viewing a dataset recor...
Form Unable to use CJ Filters
Usually, enabling CJ filters in a form is as simple as deleting the STL/Local filters, saving the...
Fraud Query Timing Out
Some users noticed that the delivered, custom SQL Fraud Query had become so slow that it timed ou...
How to Change EDconnect 8.x Network Database Location
🛳 Ahoy! Non-Slate content ahead! Ever needed to move the edconn8.mdb file, perhaps because you a...
👤👤 Imports Creating Duplicate Records
Problem Records were not matching on First + Last + DOB when importing, but the incoming data we...
Material Uploader Not Appearing on Form
We received report of a material uploader not appearing as expected on a form. The user who repor...
TIFF Exporting to Perceptive Content in Wrong Orientation
Documents exported from Slate to Perceptive Content were all coming through as portrait format, e...
Slate FW Framework
Centering a Pop-Up Form of a Different Scope
Slate offers a form embed widget in portals, but what if you want to open a Slate form in a dif...
FW.Dialog.Center()
FW.Dialog.Center(offset) offset = {left: 50, top: 50}; // Optional; useful for cascading dialo...
FW.Lazy.Fetch()
This function calls jQuery's ajax() function behind the scenes and provides some handy extra func...
FW.Lazy.Popup()
Function This function generates a modal pop-up dialog without reloading the page. The uri is of...
FW.Progress.Load()
This function initializes the "three dots" overlay that indicates something is loading/happening....
FW.Progress.Unload()
Removes the "three dots" progress overlay from the screen, if present. This function is idempoten...