The goal is to send the vendor a renewal task 30 days before any of their certifications expire. That task will prompt them to submit a new certificate, which will then need to be renewed. Here, we will begin by creating the stream. In subsequent skill stations, we will define the renewal process and set up a schedule to kick it off automatically, when the time comes.
Learning Concepts at This Station:
Creating the stream
Adding a smart object field
Creating a welcome form
Editing the task-completion form
Dragging multiple fields at a time
Using variables in an email template
Adding a Smart Object variable
Defining reviewer roles
"Best Practice" principles for role definitions
Creating the Stream
- Go the Streams Management page. Click Create a new stream.
- Provide the title:
- Title - Vendor Renewal
- Give a name to this information... - Renewal
This will be name of the default data component and the initial form.
Adding a Smart Object Field
Now we're going to add a reference to the Smart Object we created when we defined the onboarding stream. (Smart Objects allow scheduled behaviors. When the time comes, we'll launch this stream with a new record. When we do, we will map the Vendor record to the reference defined here, so all of the vendor's information becomes available to the process.)
- Add Fields...
- Title - Vendor
- Type - Smart Object
- (choice) - Vendors
- Add the field that specifies the kind of certificate that needs renewing:
- Title - Certificate Type
- Type - Enumeration (choices)
- Label - Environmental
- Click Add another choice
- Label - Safety
- Click anywhere in the form.
Note:
In each case, the value defaults to the text of the label. That's fine, as long as the labels are short. In fact, it's generally preferable -- because conditional logic becomes easier to follow. (Values could be numeric. But then conditional tests would say something like "if certificate-type = 1", which could mean one thing if the choices were zero and one, but it would mean something else entirely if the choices were one and two. But logic like "if certificate-type = safety" is clear, unambiguous, and easy to understand.)
- Click Save.
Version 1 of the stream is created.
Creating a Welcome Form
Next we will create a form that will be shown to the vendor when certificate-renewal is pending.
- Go to the stream definition.
- Create a new form.
- Select a data component ... - Renewal
- At bottom of the dialog, click Save Changes.
- Change the section heading:
- Title - Upload New Certificate
- At bottom of the dialog, click Save Changes.
- From the Controls list, drag in a Text control, to give the vendor instructions.
- Label - Please click on the 'Complete' button at top right to upload a new certificate.
- At bottom of the dialog, click Save Changes.
- From the Fields list,
- Drag the Certificate Type field onto the form, so the vendor knows right away what they need to provide.
- Field Attributes - Read Only
- At bottom of the dialog, click Save Changes.
- From the top of the New Form dialog, click Save Changes.
- Give the form a name:
- Form Title - Renewal Notification Form
- At bottom of the dialog, click Save Changes.
The form is created.
Editing the Task-Completion Form
We will send the default "Renewal Form" to the vendor, so they can complete the task. But first, let's edit it to remove unnecessary fields.
Note:
We don't need to worry about having a start-form for this stream, because we will be launching it from a calendar-event in the Vendor's object. When we do that, we will be mapping Vendor-object fields to the stream record.
To modify the form:
- Go to the stream definition.
- In the components list, under "Forms", hover the Renewal Form and click Edit.
- Remove all fields except Certificate Type and Certificate.
- To delete a field, hover over and click the "X"a icon that appears.
- Make Certificate Type a Read Only field.
- Add a Text control with a bit of instruction: Please upload the certificate file.
- It can be difficult to tell exactly where a field will be dropped, when you drag it in. In general, just get it close and then drag it into position.
(When you drag a field in the form, everything adjusts around it, so it's easy to tell where it will wind up when you drop it.)
- It can be difficult to tell exactly where a field will be dropped, when you drag it in. In general, just get it close and then drag it into position.
- At the top of the form, click Save Changes.
- In the form-name-and description dialog, click Save Changes.
Dragging Multiple Fields at a Time
For each form field, between the pencil (edit) icon, and "X" (delete) icon, you have undoubtedly noticed a small square icon. You may also have noticed that you can click in that square.
When you do, the field and accompanying label are surrounded by a blue border. You can click the checkbox-icon on other fields, as well. When you do, each of those fields is surrounded by the same blue border.
Dragging any one of the fields then shows you a smaller, highlighted version of the collection. That collection can then be dragged to another form "page" (tab), or to another section of the same form.
Note:
At times, things do not work as expected. When such situations occur, it's generally when you are creating a new form. Should you experience that problem, the workaround is to save the form. When you come back to edit it, things usually work the way they should.
Using Variables in an Email Template
We have already done some work with variables in the body of an email template. Now we'll add one to the email header:
- In the stream component list, hover over Email Templates and click New.
- Fill in the template:
- Title - Vendor Notification
- Who is Sender - Specify Here
- From Name - Acme Inc.
- From Address - vendor@acme.pulpstream.com
- Subject - Your {insert variable here} Certificate is expiring soon.
The Subject field has a magnifier icon next to it. That icon indicates that the field accepts variables. Use the icon to get a variable:
- Click the magnifier icon next to the Subject field.
- In the first tab, "Data Component(s) Fields", choose Certificate Type.
A new dialog appears showing the variable: $!Renewal.CertificateType. - Click the field that contains the variable name.
The variable is copied to the clipboard, and the text "Copied" appears after the field, along with a checkmark. - Click Close.
- Paste the variable into the subject line.
- Add text for the template Body:
- Dear {insert variable here},
Please click on the link below to upload a new certificate:
{insert variable here}
Acme Vendor Processes
- Dear {insert variable here},
Add a Smart Object Variable
Next, we will add the name of the vendor's primary contact:
- Click the magnifier icon.
- In the Data Component(s) Fields tab, click Vendor.
- That field is a Smart Object field.
- At runtime, it will reference a record in the Vendors object.
- So now, when you click on it, a new dialog appears showing you fields in that object.
- Click Primary Contact Name.
The variable name appears: $!Renewal.Vendor.Primary_Contact_Name - Copy the variable name and click Close.
- Paste the variable into the text.
Now we'll add the Task URL (the link the vendor will follow to get to the task form):
- Click the magnifier icon.
- Go to the Task Meta Fields tab, and scroll down to find the Access URL.
- Click it.
The variable name appears: $!task.url - Copy the variable name and click Close.
- Paste the variable into the text.
Both variables now appear in the body of the email template. - At the bottom of the template dialog, click Save Changes.
The stream components list shows the Vendor Notification template.
Defining Reviewer Roles
Next, we'll create the roles needed to review the certificates the vendor supplies.
- In the stream components list, hover over the Roles and Permissions heading.
- Click New.
- Create the first role:
- Title - Safety Team
- Participant Type - Specified Here
- Participants - Begin typing your name. Select yourself when the option appears.
- At the bottom of the dialog, click Save Changes.
- Repeat the process for the Environmental Compliance Team role.
At this point, you have created two quick roles for testing. There are many other possible options for role definitions, however. Those options were covered in detail in the onboarding learning line, at the third skill station, Defining Groups of Reviewers.
Note:
In a real-life scenario, you would at this point be duplicating definitions you created in the onboarding stream. Ideally, of course, there would be some way to save those role definitions and reference them here. But since it is not all that common to need identical roles in different streams, for now you need to replicate them manually. But when do need to do that, it is helpful to understand the "Best Practice" notes discussed in the next section.
"Best Practice" Principles for Role Definitions
Note that in this stream you needed to re-create the role-definitions you defined in the onboarding stream. It's not hard to do, and it's not often the case that identical role-definitions are needed for multiple streams so, for the moment at least, manual duplication is the norm.
But with multiple role-definitions in place, it is always possible that over time, the definition of one will change, but the corresponding change won't be made to a role in another stream that is intended to be identical.
To prevent such a problem from occurring:
- Keep a list of any roles you define that wind up being reused in multiple streams.
- For each role, maintain:
- A summary of the way the role is defined.
- A list of all streams that use the role.
With that list in hand, it's easy to find stream-definition details, and to ensure that any changes made to one version of the role are reflected in all other versions.
Learn More
At this skill station, you have been mostly been repeating stream set-up steps that, by now, have almost certainly become accustomed to.
The new material covered in this station includes:
- Adding a Smart Object reference to a stream
- Options for rearranging forms
- Referencing Smart Object fields in an email template..
- Best practices for those occasions in which you need the same role definition in multiple streams.
To learn more about those subjects, consult these topics in the online help system:
Take the Next Step
All of the components needed for the renewal stream are now in place. At the next skill station, we will define the renewal process -- and later, we will launch the stream programmatically whenever a certificate is about to expire.