Transact for Salesforce App

   Journey PlatformPreviously known as the Transact Platform.  |   All Personas |  v5.1 & Higher This feature is related to v5.1 and higher.

Transact for Salesforce App was created in response to recurring feedback we received from our customer base. Feedback around the Customer Experiences produced by the Journey platform has always been very positive and we've been fortunate enough to assist many businesses transform the way they interact with their customers online. However, several clients were concerned about the staff experience and didn't want their sales and customer service staff to have to login to a separate system in order to initiate these online transactions and track their progress to completion. Many of these customer facing staff spend their day inside a CRMAcroForms are the original PDF forms technology that accepts input in both Forms Data Format (FDF) and XML Forms Data Format (XFDF). Many 3rd party vendors support AcroForms. environment, becoming very productive in this environment, and for a growing number of our clients this CRM is Salesforce.com.

Transact for Salesforce App is about improving the staff experience, specifically the staff who spend the bulk of their time working in Salesforce and dealing directly with the customer.

We asked ourselves some questions:

  • What if Sales staff could send out an Application Form to one of their contacts, directly from the Contact record, and have it pre-filled with information from Salesforce?
  • How could we make it easy for Customer Service staff to assist customers complete their transactions without having to leave the Salesforce environment?
  • Could we record completed form-based transactions into the CRM such that they get added to the historical timeline of the customer relationship?

Transact for Salesforce App is designed to answer the following questions:

  1. Provide a Salesforce embedded UI that allows users to view and manage transactions that reside on the Journey platform without having to access the platform directly, removing the need for them to leave the Salesforce environment.
  2. Provide a generic integration channel between Manager and force.com to avoid custom integration work for each use case.
  3. Provide a simple framework for integration that enables Salesforce consulting partners and Salesforce administrators with the ability to more easily configure and control the receipt of data from and release of data to the Journey platform.

You can easily install and configure the application, which supports:

  • Salesforce - all editions of Salesforce are supported. All Avoka APEX code is written for API version 33.
  • The Manager versions.

You can perform the following application administration and managementactivities:

User Interface Design

The user interface is facilitated by a Canvas application that is hosted on the Manager server and rendered into the Salesforce UI using the Canvas framework. A set of REST APIs exposed on the Journey platform support the UI for accessing, creating and updating transactions.

Styling

Styling of the Canvas UI is designed to blend in with the Salesforce Desktop UI by utilizing complementary colors, fonts and button styles. Where appropriate, subtle changes have been applied to provide a more modern look and feel, yet still maintaining a natural integration into the visual design of the platform.

Navigation

Page navigation is facilitated by a simple tab metaphor at the top of the UI, supporting navigation between the following page functions:

  1. My Forms - shows form transactions that are assigned to the current user. This page is typically only surfaced when the user accesses the UI via the Chatter feed.
  2. Live View - shows form transactions that are linked to the current Salesforce object (SObject).
  3. New Form - is used to select and create a new form transaction based on an available form template.
  4. Search - is customer service style search facility to find forms using a search term. Results may include forms that are anonymous and unlinked.

Information Architecture

A form template represents the code and configuration behind a form design and encapsulates the data model, business rules and presentation assets for a form. Within the Canvas UI, form templates are accessed by navigating to the ‘New Form’ page and selecting a form category. Form templates can be used to create new form transactions to be opened immediately or sent to a contact.

Form templates can belong to one or more form category. Form categories and the forms that belong to them are configured in Manager.

A form transaction may be assigned to a single user or assigned to no user (anonymous). Forms assigned to a user will appear under the My Forms page when that user is logged in to Salesforce and accessing the Canvas UI.

A form transaction may be linked with a single Salesforce object or unlinked. Forms linked to a Salesforce object will appear under the Live View page when viewing the detail layout for that object.

Note: Primary Entities in Avoka (orange) and Salesforce (blue) and their Relationships

Integration Approach

UI

The Transact for Salesforce App UI is built in and hosted on the Journey platform. This UI is integrated into the Salesforce page layouts by utilizing the Salesforce Canvas API.

APIs

API integration is facilitated by REST services on both platforms. Journey platform exposes REST services to accommodate the assignment of new forms from Salesforce, while REST APIs on the Salesforce side are utilized by Manager to deliver completed submissions.

Within Salesforce, these REST services are encapsulated by custom objects and associated triggers to facilitate the bi-directional communications, as illustrated in the following diagram.

Authentication / Identity Management

Authentication of Salesforce users into Journey Manager is done via OAuth2. Users who access the Transact for Salesforce App UI must be authenticated with Salesforce. Upon first time access to the Avoka UI, a placeholder account is created on the Manager server with the required permissions to perform the functions associated with the UI.

Data Security

This section provides an assessment of the data security considerations associated with the managed package. For detailed information on data security in the Journey platform, request a copy of the Journey platform security architecture documentation.

The base installation of the package does not require access to any Salesforce standard or custom objects other than those contained within the package itself.

Control over which data is shared with Manager for prefill into forms, and which data is updated by incoming submissions is under complete control of the Salesforce administrators. This is a manual configuration function that is not enabled by default.

Data Access Controls

The solution provides a framework for Salesforce administrators to release data to Manager for the purposes of prefilling forms before sending them to contacts to complete and submit. This framework is facilitated by a set of Apex classes that consume configuration based rules to build dynamic SOQLSalesforce Object Query Language (SOQL) is used to construct simple but powerful query strings in the queryString parameter in the query() call, in Apex statements, in Visualforce controllers and getter methods, or in the Schema Explorer of the Force.com IDE. queries for the retrieval of data.

Within this apex code, the following access controls are employed:

  • With Sharing - all Apex classes in the package have the ‘with sharing’ control activated such that sharing rules of the current user are considered.
  • Data Access Rights - where configuration requires that a field be prefilled into a form, the current user’s data access rights are first checked before that field is retrieved with SOQL. Similarly, where data flows back into Salesforce, the user’s permission to create or update fields and objects is checked prior to performing any change. The Apex class SecurityController has been included to accommodate these checks. The following code is an example of these checks in action: if(SecurityController.isFieldAccessible(objectType, fieldName))

Off-Platform Data Storage

The Journey platform is a system of engagement, not a system of record, so no data is retained in our platform, other than configuration data, longer than it is required in order to complete the data capture transaction and forward the data to the appropriate system of record.

Due to the requirements of our most sensitive clients, such as federal government agencies, police departments, and financial services organization, Manager data security is exceptionally strong. All data in transit and at rest is encrypted according to the industry’s highest standard and flexible purge policies allow clients to ensure that sensitive data is removed from the system at the earliest opportunity.

Salesforce Organization Impacts

Manager does not include pre-built data capture experiences targeting specific use cases, but rather provides a template based design environment with many pre-built components that can be strung together to rapidly produce these experiences. Each of our customers use Manager to facilitate different use cases within their organization, and these are typically built to spec.

With this consideration, it is difficult to provide a general assessment of the impacts the Salesforce package will have on the client’s Salesforce Organization. Rather, the impacts need to be assessed on a case by case basis and Avoka will work with each client to ensure that the impacts understood.

The following sections outline the potential areas of impact and the considerations relating to each.

Licensing

The Transact for Salesforce App package can be used on any edition of Salesforce. Licenses are made available for a monthly fee on a per user basis. Any user who accesses any component included in the managed package must be licensed to use the solution. The primary functions required by users will be:

  • Utilize the Canvas App to manage forms against a Salesforce object.
  • Access delivery records of Manager transactions.
  • Trigger functions within their Salesforce environment that in turn create a post request to Manager to assign a form.

Data Storage Requirements

The following data storage considerations need to be assessed on a case by case basis:

  • Transaction Volumes - the volume of transactions being produced from the Journey platform and delivered into Salesforce will be a key factor in the determination of data storage requirements.
  • Binary attachments - where transactions call for binary attachments to be provided, and these attachments are designated for delivery into Salesforce, the storage requirements for these binary attachment needs to be considered. Controls can be put in place in Journey platform to restrict the size of attachments that may be provided by users.
  • Purge Strategies - the data in the Journey platform custom object records is transient by design. Data purge strategies can be effectively applied to remove records that are no longer required. Purge rules may be developed to remove only the binary attachments and submission XML while maintaining the metadata about each delivered submission.

API Usage Volumes

The following API usage considerations need to be assessed on a case by case basis:

  • Transaction Volumes -the volume of transactions being produced from the Journey platform and delivered into Salesforce will be a key factor in the determination of API usage requirements. Each submission delivered into Salesforce will utilize a minimum of one API call, but more where attachments are to be delivered also.
  • Prefill Generation - where a user is interacting with the Canvas App and attempts to send a form to a contact, this requires an API call to the prefill generation service.
  • Where Journey Manager Post records are created as a result of events in the Salesforce environment, these trigger calls to theJourney platform.

Batch Processing

There are currently no batch processes included in the package. Clients may choose to implement their own purge process to remove post and delivery records older than a certain date.

Reporting

There are currently no reports or dashboards included in the package.

Next, learn how to configure Transact for Salesforce App.