All Posts By

Admin

Use Switch Statements

By Documentation No Comments

Introduction

If your S-Docs template that needs to render different contents based on different conditions, render statements can satisfy a majority of your conditional logic requirements.

However, S-Docs also supports using switch statements to replace repeating render statements that conditionally output contents based on a single field's value. Instead of writing multiple render statements to check each possible field value, you can simply create a switch map and reference it in a switch statement to do the work for you. Switch statements can greatly simplify the logic within your template into just a few lines. Let's take a look at how they work.

Example Use Case

To better understand how switch statements work, we will begin with an example.

Let's say we have an internal Opportunity summary template that needs to include different instructions based on the value of the Opportunity's Stage field. Since there are 10 standard values for this field, we could write 10 render statements that each output different instructions for each possible field value.

However, we could also use the switch feature to simplify this logic. We will set this up now.

Create The Switch Map

To use switch statements in your S-Docs templates, you need to first create a separate switch map template. The switch map template will contain switch keys and switch values that will be referenced by the switch statement in your main template.

Add JSON as a Template Format Value

Switch map templates need to use the JSON template format, which isn't enabled for S-Docs templates by default. You will need to add it as a Template Format value on the SDoc Template object. From the Setup menu, navigate to the Object Manager and find the SDoc Template object.

Next, navigate to the Fields and Relationships tab, and click on the Template Format field.

Scroll down to the Values section and click New.

Type "JSON" into the text field, then click Save.

Create the Switch Map Template

To create your switch map template, create a new template and set the Template Format field to JSON.

Navigate to the template editor to write your switch map. The basic syntax for switch maps is as follows:
[code lang="html"]{
"SwitchKey1" : "SwitchValue1",
"SwitchKey2" : "SwitchValue2",
"SwitchKey3" : "SwitchValue3"
}[/code]

Note: Make sure not to include a comma after the last switch value in your switch map.

Let's take a look at a switch map in the context of our example use case.

In this scenario, [1] the Stage field values for the Opportunity object represent the switch keys. [2] The custom instructions for each field value represent the switch values; these are the conditionally rendered contents that will appear in our Opportunity summary based on the value of the Stage field. The entire map needs to be enclosed in curly braces.

Write The Switch Statement

Now that the switch map is created, navigate to your main template to write the switch statement. The basic syntax for switch statements is as follows:

Note: Switch statements must be written in the Source of the template editor. Ensure that you are in the template Source before writing your switch statement.

[code lang="html"]<!--{{!
<switch>
<switchMap>Switch Map Template Name</switchMap>
<formula>{{!Object.Field}} == '{{!SWITCH_KEY}}'</formula>
<outputForEachMatch>{{!SWITCH_VALUE}}</outputForEachMatch>
</switch>
}}-->[/code]
Let's take a look at the switch statement in the context of our example use case.

[1] Switch statements are opened like related list LineItems or LineItemsSOQL statements, followed by the <switch> tag.

[2] The name of the switch map template is enclosed in <switchMap> tags. This line must include the exact same name that's listed in the Template Name field for your switch map template, with no extra characters or spaces.

[3] The render conditions are enclosed in <formula> tags. The example above will check the switch map for the switch key that matches the Stage field of the opportunity that this template is generated from. This accepts the same syntax as the S-Docs Render feature. Although we use "equals" in this example, you can use any of the operators accepted by S-Docs Render statements.

[4] The conditionally rendered contents are enclosed in <outputForEachMatch> tags. The example above uses the {{!SWITCH_VALUE}} merge field, which means it will render the switch value that matches the switch key (e.g. the custom instructions that match the Opportunity Stage field). You can also include static text within these tags.

[5] Switch statements are closed with the closing switch tag, followed by the syntax used for closing related list LineItems and LineItemsSOQL statements.

Let's See it in Action!

Now that we've seen how to create a switch map and write a switch statement, let's go back to our example use case and see the switch feature in action. Since we want to create an Opportunity summary template that includes different instructions based on the Opportunity's Stage field, we insert the switch statement at the bottom of the Source of our Opportunity summary template.

We then navigate to an Opportunity record to generate the document. Take note of the Opportunity's Stage field.

When we generate the document, the correct custom instructions appear where we inserted the switch statement. The switch map has been superimposed for reference.

As you can see, the Switch feature greatly simplified our template logic into just 7 lines of code.

Use Template Components in Switch Statements

The Switch feature also supports using template components as switch values (dynamically rendered contents). This can be useful if your switch values are very long, or require formatting that's not available in the JSON switch map template. There are only a few differences to consider when using components as switch values instead of static text.

In the switch map, input template component names into the switch value column instead of static text.

When you write the switch statement, simply enclose the {{!SWITCH_VALUE}} merge field within <template> tags.
[code lang="html"]<!--{{!
<switch>
<switchMap>Switch Map Template Name</switchMap>
<formula>{{!Object.field}} == '{{!SWITCH_KEY}}'</formula>
<outputForEachMatch><template>{{!SWITCH_VALUE}}</template></outputForEachMatch>
</switch>
}}-->[/code]
In the context of our example use case, a switch statement using the switch map above would look like this:

You can also include additional template tags to merge in other component templates as well.

Salesforce MVP Spotlight: Joy Shutters-Helbing

By Blog No Comments

Welcome back to another S-Docs Salesforce MVP Spotlight, where we highlight some of the most inspiring and influential individuals in the Salesforce community. As a native Salesforce app, we’ve had the advantage of working with hundreds of incredible admins, developers, architects, and other extraordinary people who make the community great. We’ll provide you with an exclusive look into their Salesforce journeys, featuring best practices, career advice, and favorite ways they give back to the community.

Last time, we spoke with Brendan Conroy about his experience helping companies leverage Salesforce to its full potential and being a mentor to others in the community. Featured this week is Salesforce MVP Joy Shutters-Helbing.

Salesforce MVP Spotlight: Joy Shutters-Helbing

Joy Shutters-Helbing is a 5x certified, 2x Salesforce MVP and golden hoodie recipient who specializes in helping companies improve their Salesforce setups and get the most out of the platform. Since her start with Salesforce in 2004, Joy has developed a passion for the platform and been continuously recognized as a leader in the community.

Beyond being an innovator of great Salesforce solutions, Joy lends her time to assist others in their work and foster community involvement. She’s a co-leader of the Chicago Admin Trailblazer Community Group and a co-host of MVP Office Hours. She also sets aside time for mentorship to other aspiring trailblazers and never hesitates to share her advice.

Currently, Joy is an independent consultant specializing in Salesforce optimization for small businesses. We sat down with her to hear about her 15+ years of experience in the Salesforce ecosystem, her journey to becoming an MVP, and favorite ways of giving back to the community.

"I think the overarching theme is those who do not seek MVP status are the ones who end up with it."

Tell us about your journey to MVP status.
In 2014 I started getting very involved in the Salesforce community. There were tons of user group meetings in the Chicago area, and I was going to all of the ones I could get my hands on.

As time went on, I found I was always asking the group leaders, “Hey, do you need any help?” Eventually I asked the leaders of Chicago Admin Trailblazer Community Group, Denise Carbone and Gina Skocilich, if they'd be willing to take me on as a co-leader. Their response was "We would absolutely love a hand!”

In between everything, I was nominated for the Awesome Admin award and received the golden hoodie at the Chicago World Tour in 2017. One of the things that they cited for that was my work in the community. My response was "I didn't realize I was doing anything special!”

Then, in April of 2019, I got an email from the Salesforce Community that said I had been made an MVP!

I think the overarching theme is those who do not seek MVP status are the ones who end up with it. We didn't feel like we were doing anything special. We were doing what we thought we may have needed two years ago, or something we thought that someone else needed.

Tell us about your current role.
I’m an independent Salesforce consultant focusing on Salesforce admin work. My main goal is to help folks improve their set up. I can help businesses gear up and see what Salesforce can be for them.

Many small companies can't afford to hire full-time Salesforce administrators, and that's where I come in -- closing that gap for small businesses. I can help get a new implementation going or untangle an old one. And if the company wants to learn how to maintain it themselves, I can help skill them up and be the person they lean on if they get stuck.

"So much of what Salesforce has to offer is self-propelled and self-directed. You really just need someone in your corner giving you a boost or cheering you on."

Giving back is a core focus for a lot of Salesforce MVPs. What’s your favorite way to give back?
I really love to mentor people. Salesforce kicked off their Trailblazer Mentorship Program a few years ago. Although I didn’t throw my hat in the ring initially, I know a lot of folks that have, and I’ve been a guest speaker on a number of mentor calls.

I've also had a lot of former co-workers come to me who are interested in working in sales operations and being Salesforce administrators, but they haven’t ever worked with Salesforce. My response to that is always "Let's go build out a path for you on Trailhead and see what we can do.”

I check in on them every other Friday to see how their Trailhead journey is going. I care about these people and I love helping them get started on their journey -- after that, where they take that path is really up to them. So much of what Salesforce has to offer is self-propelled and self-directed. You really just need someone in your corner giving you a boost or cheering you on.

Another way I like to give back is sharing job openings. If I find a job that isn’t for me, I’ll share it with the community. Even if it’s not a good fit for me, someone else might love it. There are a lot of people out there skilling up for a new career, so this can really make a difference.

What I get out of helping people in the community is seeing everyone else's journey take off in new and exciting ways. I'm not the only person who ended up working in an industry that I hadn't planned on. I went to school to teach, not to work in tech. Perhaps giving back is where tech and teaching come together.

"I never saw myself working in tech, but the Salesforce community has totally enabled that."

Who in the community inspires you most?
There's so many folks that have been really inspiring to me and I hate to put names on the list because there are too many to count!

If I had to name one person, it would be Leah McGowen-Hare, the Vice President of Trailhead Evangelism at Salesforce. She's an amazing in-person trainer. She’s one of the people who’s given me the most hope and inspiration as far as being able to level up my career. She’s by far one of the most inspiring people in the Salesforce ecosystem.

Lizz Hellinga, also a Salesforce MVP, is another really inspiring person. She’s running her own company called Montage Learning, and she’s one of the co-leaders of the Chicago Women in Tech group. She’s an amazing public speaker.

Another person is Chris Halvachs, one of the leaders of the Downers Grove Salesforce Admin Group. He is a Lightning Champion who really wants to give back to the community and has been wildly welcoming to all sorts of different people.

I never saw myself working in tech, but the Salesforce community has totally enabled that. I really love what I'm able to do with tech to help small businesses move forward.

In addition to the people who inspire you, what else do you do to keep up to date on all things Salesforce? What resources are most helpful to you?
I find myself in help and documentation more often than not. Trailhead is also really great for wrapping your head around a concept that you haven’t been exposed to before.

Salesforce Saturday is another good one: you come to the meeting and share what you’re working on and if you’re stumped, the people there can help you work through it.

I’m a co-host of MVP Office Hours, which is also great. It happens twice a month on a Friday afternoon. You can bring your problems to the table and we’re gonna see if we can get through it as a group.

There’s also Ohana Slack, an informal Slack group that’s a really great place for quick feedback.  Additionally, the Salesforce Answers Community is another great resource because you can get answers from experts.

 "Look at your own journey and where you could have used a helping hand, and be that helping hand for someone else."

Are there any must-have apps or Salesforce best practices that you recommend?
It all depends on the business. For an organization that’s a little bit into the weeds and looking to clean up, Field Trip is a really great app to help. It does an inventory of the data on your objects. You can really get an understanding of where your data is when you use it.

Salesforce Labs has an Adoption Dashboard that is free and can help stakeholders see what’s going on in their org, whether it be the number of logins, or the number of new accounts created, or new contacts created, on a daily basis, monthly basis, etc.

What are you most excited about for the future of Salesforce and the community?
I think there's going to be a lot of innovation around voice response, and the mobile app is going to get some more love. Transferring into the mobile space is going to become more of a forefront. As it becomes easier and easier for people to work from anywhere, I also think we're going to see more collaboration tools getting the attention that they weren't getting previously.

I also think that Field Service Lightning is going to bloom into its next iteration too as folks in the field start taking advantage of all of the great things that Salesforce can do.

What’s the biggest piece of advice you have for your fellow Trailblazers?
Always try to be the person that you needed someone to be for you. Look at your own journey and where you could have used a helping hand, and be that helping hand for someone else. Think about how you can really help empower those around you or those that are struggling.

In-person events matter as far as meeting people and getting to know people and making that personal connection. In the current climate it’s not really in person, but it’s important to find ways to make that one-on-one connection with people.

The Salesforce Community Advantage

As Joy Shutters-Helbing’s inspiring story shows, the Trailblazer community shines because of the many people within that are willing to dedicate their time to help others. After starting from scratch in 2004, Joy quickly began making a difference in the community leading group events, mentoring others, and always being willing to lend a helping hand. We hope that her unique insights have inspired you to learn something new, share your knowledge, and get more connected with the Salesforce community.

To stay in the know on all things Salesforce and the community, follow Joy on Twitter and subscribe to the S-Docs blog, where we’ll be posting more Salesforce MVP spotlights throughout the year, along with the latest and greatest in the Salesforce world.

See S-Docs In Action

Leave your Salesforce document workflow worries behind.

Request Demo

Enjoying our blog?

Subscribe now and we'll make sure to send you the latest as we publish new content!

Connect With Us!

For Salesforce news, digital document & e-signature insights, or just for fun.

        

Read More

Blog
June 12, 2024

Optimizing Sales Ops KPIs with Effective Reporting and Document Automation

Optimizing Sales Ops KPIs with Effective Reporting and Document Automation You don't have to micromanage your sales executives to optimize sales operations. Instead, you’ll have more success by establishing sales…
Blog
June 5, 2024

Are You Ready for a Document Automation Tool?

The Need for Efficiency in Today’s Businesses Business efficiency is crucial. Imagine running a marathon while juggling — sounds chaotic, right? That’s what managing documents without automation can feel like.…
Blog
May 29, 2024

Understanding and Advancing Organization Maturity Levels in Your Business

Understanding and Advancing Organization Maturity Levels in Your Business An organizational maturity assessment identifies where your company stands within the stages of a chosen maturity model framework so you can…

Call Apex Classes in S-Docs Templates

By Documentation, General Solutions, S-Docs Cookbook No Comments

Introduction

The S-Docs Callable Apex feature allows you to generate merge field or table values in your S-Docs templates via custom Apex code. This feature is useful if your business requirements necessitate the use of advanced logic that can't be defined directly within an S-Docs template.

You can include as many callable apex classes in your template as you'd like, but we recommend writing a single class with multiple functions or arguments, as opposed to multiple classes.

Apex Class

Your Apex class must be global and return a <string, string> map where keys are represented by field names and values are represented by field values. The following example provides a basic overview of an acceptable class, however you can use multiple functions or arguments in your class.

[code lang="html"]global class CallableApexTest implements Callable {
public Object call(String action, Map<String,Object> args) {
switch on action {
when 'getMergeFieldMapExample1' {
return this.getMergeFieldMapExample1((String)args.get('recordId'));
}
when else {
throw new ExtensionMalformedCallException('Method not implemented');
}
}
}
public class ExtensionMalformedCallException extends Exception {}
public Map<String,String> getMergeFieldMapExample1(String recordId) {
Opportunity opp = [SELECT Id FROM Opportunity WHERE Id=:recordId]; // Base Object Record
Map<String,String> mergeFieldMapExample = new Map<String,String>{
'Field_1' => 'Value_1',
'Field_2' => 'Value_2',
'Field_3' => 'Value_3'
};
return mergeFieldMapExample;
}
}
[/code]

Callable Syntax

To call your Apex class in your S-Docs template, navigate to the Source editor and use syntax similar to the following example:

[code lang="html"]<!--{{!
<callable>
<class>CallableApexTest</class>
<action>getMergeFieldMapExample1</action>
<args>{ "recordId" : "{{!Opportunity.Id}}", "recordId" : "{{!Opportunity.Field__c}}" }</args>
</callable>
}}-->
Field_1: {{!Field_1}}<br />
Field_2: {{!Field_2}}<br />
Field_3: {{!Field_3}}<br />[/code]

Lines [1-2] open the callable Apex statement. The Apex class name is referenced in <class> tags on line [3]. The function of the Apex class is referenced in <action> tags on line [4]. Arguments can optionally be referenced within <args> tags, as shown on line [5]. Finally, the statement is closed on lines [6-7].

You can include any merge fields referenced in your <string, string> map anywhere in your S-Docs template. The three fields from the example map are included on lines [8-10].

The example above would render the following document:

Example Use Case

To further understand this feature, let's take a look at an example use case.

Let's say that the Opportunity object contains a custom multi-select picklist field with 6 different products.

We'd like our document to display a list of 6 sections that output a letter that corresponds to the product's positioning in the chosen list. In other words, if all products are chosen, the S-Docs document should render like this:

But if Products 1, 3, and 6 are chosen, the S-Docs document should render like this:

To easily accomplish this, we can write an Apex class and then call that class in our S-Docs template. The Apex class for this function looks like this (and includes comments for clarification):

[code lang="html" highlight="16,29"]global class SDocsCallable implements Callable {
public Object call(String action, Map<String,Object> args) {
switch on action {
when 'getSectionMergeFieldMap' {
return this.getSectionMergeFieldMap((String)args.get('recordId'));
}
when else {
throw new ExtensionMalformedCallException('Method not implemented');
}
}
}

public class ExtensionMalformedCallException extends Exception {}
/*

Example input:
Opportunity with a Products__c value of:
Product 1;Product 3;Product6

To be clear:

'Product 1' // Included
'Product 2' // NOT Included
'Product 3' // Included
'Product 4' // NOT Included
'Product 5' // NOT Included
'Product 6' // Included

Example output:
{
"Section 1" : "A",
"Section 2" : "",
"Section 3" : "B",
"Section 4" : "",
"Section 5" : "",
"Section 6" : "C"
}
(these are mapped to merge fields in the S-Docs Template like so: {{!Section_1}} )

*/
public Map<String,String> getSectionMergeFieldMap(String recordId) {
String Products = [SELECT Products__c FROM Opportunity WHERE Id=:recordId].Products__c;
List<String> productNames = new List<String>{
'Product 1',
'Product 2',
'Product 3',
'Product 4',
'Product 5',
'Product 6'
};
Map<String,String> mergeFieldMap = new Map<String,String>();
Integer currentChar = 65;
for (Integer i = 0; i < productNames.size(); i++) {
String mergeFieldValue = '';
if (Products.contains(productNames[i])) {
mergeFieldValue = 'Section ' + String.fromCharArray( new List<Integer> { currentChar } );
currentChar++;
}
mergeFieldMap.put('Section_' + (i + 1), mergeFieldValue);
}
return mergeFieldMap;
}
}
[/code]

Our S-Docs template Source code for this use case looks like this:

[code lang="html"]<!--{{!
<callable>
<class>SDocsCallable</class>
<action>getSectionMergeFieldMap</action>
<args>{ "recordId" : "{{!Opportunity.Id}}" }</args>
</callable>
}}-->Section 1: {{!Section_1}}<br />
Section 2: {{!Section_2}}<br />
Section 3: {{!Section_3}}<br />
Section 4: {{!Section_4}}<br />
Section 5: {{!Section_5}}<br />
Section 6: {{!Section_6}}<br />[/code]

When we generate the document, the correct letters correspond to the correct sections:

Callable Apex - Line Items

You can also call apex classes to generate table values in your S-Docs templates - this is done by placing your callable statement within a <lineitems> statement and including one of three return types in <returntype> tags. The three return types are SDocTable, ListSObject, and XML.

SDocTable

The SDocTable return type allows you to generate highly customized tables using logic otherwise not available within S-Docs templates. In an S-Docs template, the callable syntax for the SDocTable return type looks similar to the following:

[code lang="html" highlight="6"]<table><!--{{!<LineItems>
<callable>
<class>CallableApexTestlineitems</class>
<action>getLineItemsAsSDocTable</action>
<args>{ "arg1" : "val1" }</args>
<returntype>SDocTable</returntype>
</callable>
<class>table123</class>
<column>product_rate_category</column>
<column>domestic_rate_adjustment_1</column>
<column>domestic_rate_adjustment_2</column>
<column>domestic_rate_adjustment_3</column>
</LineItems>}}-->
</table>[/code]

The callable syntax is nested inside of a <LineItems> statement. Note the addition of <returntype> tags in line 6, which specify that the apex class will build and return an SDocTable. After the <callable> tags are closed out, the <LineItems> statement is written as normal.

The corresponding Apex class might look similar to the following:

[code lang="html"]global class CallableApexTestlineitems implements Callable {

public Object call(String action, Map<String,Object> args) {
switch on action {
when 'getLineItemsAsSDocTable' {
return this.getLineItemsAsSDocTable((String)args.get('recordId'));
}
when else {
throw new ExtensionMalformedCallException('Method not implemented');
}
}
}

public class ExtensionMalformedCallException extends Exception {}

public Map<String,String> getScheduleMergeFieldMap(String recordId) {
return new Map<String,String>{ 'Schedule_1' => 'Schedule A', 'Schedule_3' => 'Schedule B'};
}

public SDOC.SDUtil.SDocTable getLineItemsAsSDocTable(String recordId) {
Map<String,List<String>> rateCategoryMap = new Map<String,List<String>>{
'Category C' => new List<String>{ 'C1', 'C2', 'C3' },
'Category A' => new List<String>{ 'A1', 'A2', 'A3' },
'Category B' => new List<String>{ 'B1', 'B2', 'B3' }
};
List<String> rateCategoryKeysSorted = new List<String>{
'Category A',
'Category B',
'Category C'
};
SDOC.SDUtil.SDocTable table = new SDOC.SDUtil.SDocTable();
for (String rateCategory : rateCategoryKeysSorted) {
SDOC.SDUtil.SDocTableRow row = new SDOC.SDUtil.SDocTableRow();
row.cells.add(new SDOC.SDUtil.SDocTableCell('product_rate_category', rateCategory));
Integer draNum = 1;
for (String domesticRateAdj : rateCategoryMap.get(rateCategory)) {
row.cells.add(new SDOC.SDUtil.SDocTableCell('domestic_rate_adjustment_' + draNum, domesticRateAdj));
draNum++;
}
table.rows.add(row);
}
return table;
}
}[/code]

The output document would look similar to this:

ListSObject

The ListSObject return type allows you to return a list of records similar to a <LineItemsSOQL> statement. Unlike <LineItemsSOQL> statements, however, you're given much more flexibility since the query is written in an Apex class. For example, you could filter records based on rich-text field data, which isn't normally possible. In an S-Docs template, the callable syntax for the ListSObject return type looks similar to the following:

[code lang="html" highlight="6"]<table><!--{{!<LineItems>
<callable>
<class>CallableApexTestlineitems</class>
<action>getLineItemsAsListSObject</action>
<args>{ "recordId" : "{{!Opportunity.Id}}" }</args>
<returntype>ListSObject</returntype>
</callable>
<class>table499</class>
<column>Name</column>
<column>StageName</column>
<column>Account.Name</column>
<column>Account.Owner.Name</column>
</LineItems>}}-->
</table>[/code]

The corresponding Apex class might look similar to the following:

[code lang="html"]global class CallableApexTestlineitems implements Callable {

public Object call(String action, Map<String,Object> args) {
switch on action {
when 'getLineItemsAsListSObject' {
return this.getLineItemsAsListSObject((String)args.get('recordId'));
}
when else {
throw new ExtensionMalformedCallException('Method not implemented');
}
}
}

public class ExtensionMalformedCallException extends Exception {}

public List<SObject> getLineItemsAsListSObject(String recordId) {
return [SELECT Name, StageName, Account.Name, Account.Owner.Name FROM Opportunity WHERE AccountId != null LIMIT 3];
}
}[/code]

The output document would look similar to this:

XML

The XML return type allows you to merge XML data into a table in your document. The XML can be hardcoded in your apex class or pulled from an external system, making this option great for merging external data into your templates. In an S-Docs template, the callable syntax for the XML return type looks similar to the following:

[code lang="html" highlight="6,9"]<table><!--{{!<LineItems>
<callable>
<class>CallableApexTestlineitems</class>
<action>getLineItemsAsXMLString</action>
<args>{ "arg1" : "val1" }</args>
<returntype>XML</returntype>
</callable>
<class>table499</class>
<listname>products</listname>
<column>productname</column>
<column>productdescription</column>
<column>productcode</column>
</LineItems>}}-->
</table>[/code]

Note the addition of <listname> tags before the table <column> tags, which should be the same as the parent tags in your XML string. The corresponding Apex class might look similar to the following:

[code lang="html"]global class CallableApexTestlineitems implements Callable {

public Object call(String action, Map<String,Object> args) {
switch on action {
when 'getLineItemsAsXMLString' {
return this.getLineItemsAsXMLString((String)args.get('recordId'));
}
when else {
throw new ExtensionMalformedCallException('Method not implemented');

}
}
}

public class ExtensionMalformedCallException extends Exception {}
public String getLineItemsAsXMLString(String recordId) {
return ''
+ '<products>'
+ ' <productname>Apple</productname>'
+ ' <productdescription>Red fruit</productdescription>'
+ ' <productcode>4016</productcode>'
+ '</products>'
+ '<products>'
+ ' <productname>Banana</productname>'
+ ' <productdescription>Yellow fruit</productdescription>'
+ ' <productcode>4011</productcode>'
+ '</products>'
+ '<products>'
+ ' <productname>Pear</productname>'
+ ' <productdescription>Green fruit</productdescription>'
+ ' <productcode>3012</productcode>'
+ '</products>';
}
}[/code]

The output document would look similar to this:

As you can see, the callable Apex feature allows you to perform complex functions in your documents that otherwise aren't available in the S-Docs template editor.

How Native Salesforce Apps Drive Innovation

By Blog No Comments

You’ve probably heard about the ever-increasing pace of change. New ideas and technologies are born at a rate that exponentially outstrips just a decade or two ago.

Think about it this way: it took 68 years for the airline industry to reach 50 million users, but it was only 14 years before the computer made it into the homes of 50 million people. And in just 3 years, 50 million people were using Facebook.

The world is evolving more rapidly than ever before, and businesses are expected to stay two steps ahead of the game. If they lack the agility to deliver cutting-edge solutions on a shorter timescale, or to pivot around unforeseen circumstances quickly, they simply won’t be able to keep up. With a faster pace of change comes a faster pace of obsolescence.

So where do native Salesforce apps come into all of this?

Salesforce has been at the forefront of technological business innovation for decades, and since the force.com platform was introduced in 2009, native apps have been right there alongside it. Native apps aren’t just components that you can interface to Salesforce -- they’re business solutions built directly on the platform, which means they’re in the best position to follow Salesforce’s pace of innovation.

Let’s dive into the implications of being native to Salesforce and see why native apps are equipped to continuously evolve and deliver the solutions that the modern enterprise needs.

Salesforce: An Innovative Leader

Salesforce has come a long way since its 1999 start inside a one bedroom apartment in San Francisco, but innovation has been a core value from the beginning. Housing valuable data inside a cloud-based CRM was unheard of at the time, but Salesforce was one of the first to convince businesses that cloud computing was the way of the future. Today, 94% of enterprises are using the cloud.

Salesforce didn’t stop at customer relationship management. Over the years, their vision expanded significantly:

  • In 2005, they introduced the AppExchange, a marketplace of applications to extend or enhance Salesforce’s functionality, laying the foundation for a robust ecosystem of partners
  • In 2009, they introduced the force.com platform as a service, allowing developers to create custom applications entirely within the Salesforce cloud
  • In 2013, they acquired ExactTarget and Pardot, laying the foundation for Marketing Cloud. That same year, they introduced the Salesforce1 mobile app
  • In 2016, they released Health Cloud, and forged into the world of AI with the release of Einstein
  • In 2020, they were one of the first big companies to respond to the COVID-19 pandemic, and introduced work.com in May to help companies safely transition back to in-person work

If that’s not enough, Salesforce is consistently ranked among the most innovative companies in the world and has filed over 1000 patents. With three new releases a year, the momentum isn’t slowing down anytime soon.

Native Apps: Partners in Innovation

It’s obvious that Salesforce operates with the future in mind -- so how does this transfer to the apps that are built on its platform? To really understand how native Salesforce apps are true partners in innovation, we need to look at the definition of a native app itself.

A native application is an executable program coded in the language of the platform in which it is run. To put it simply, native apps are developed to work solely on a specific platform, and don’t rely on any external infrastructure to work.

When we say that an app is native to Salesforce, we mean that it’s created using Salesforce’s proprietary coding language, Apex, in conjunction with Visualforce and custom objects. It doesn’t use any external servers to run or process data; native apps are completely reliant on Salesforce. This fact gives native apps key advantages.

Native Apps Improve With Salesforce

Since native apps run exclusively on the Salesforce platform, they need to stay up to date with Salesforce’s triannual releases. If you use a native application, it’s nearly guaranteed that your solution will continually release updates in concurrence with Salesforce to maintain optimal functionality. After all, native apps only run within Salesforce, so it’s imperative that they innovate alongside it.

For example, as a native Salesforce document generation and e-signature solution, S-Docs releases three major updates per year to coincide with Salesforce. We stay on top of the latest and greatest coming from the Salesforce team, and incorporate the newest innovations into our products wherever possible.

The bottom line: as Salesforce improves, so do native apps.

Native Apps Release Features Faster

Many of the traditional roadblocks to getting features out the door are not present for native apps, meaning that they’re able to stay one step ahead of their non-native counterparts and innovate quicker.

Since they’re built on the Lightning Platform, Salesforce native apps don’t need to worry about maintaining app infrastructure such as servers, runtime environments, or operating systems; Salesforce takes care of that.

The lion’s share of the data security burden also falls on Salesforce’s shoulders; native apps inherit Salesforce’s stringent security requirements, and don’t have to worry about setting up things like secure REST APIs between Salesforce and external platforms.

Because much of the heavy lifting can be offloaded, native app development teams are able to focus on the highest value work: improving the functionality of their solution and meeting the requirements of their customers faster. This allows customers to get the most out of their investment and innovate quicker themselves.

Native Apps Are More Easily Integrated & Customized

One of the greatest qualities of native apps is that they often mirror the look and feel of Salesforce since they’re built using Salesforce’s proprietary tools. This means that if you know Salesforce, you’ll be able to quickly master a Salesforce native app. You will spend less time learning a new system and more time getting value out of your solution.

Another benefit of being built on the Salesforce platform is ease of customization. Admins and developers can more easily modify aspects of their native solution so that it conforms to their specific business requirements -- after all, they’ve already been trained to work with the Salesforce components that native apps are built from. Off-platform apps simply don’t provide the level of accessibility required for easy customization. In short, Salesforce native applications can be true partners in innovation with the businesses that use them.

Take S-Docs and S-Sign, for example. While our native solutions offer powerful document generation and e-signature capabilities for Salesforce, admins can easily customize them to add functionality that’s specific to their business. In just minutes, a process can be set up to auto-generate and email a complex document based on any platform-triggering event in Salesforce, like notifying certain individuals when a document’s signature status is updated. Because they’re 100% native, implementing these custom workflows is fast and easy.

Native Apps Are Purpose-Built for Salesforce

Unlike non-native applications, which may integrate with many different platforms, Salesforce native apps are purpose-built to work with the system that your team relies on every day. It’s crucial that every component of your Salesforce org functions like a well-oiled machine, and native apps are designed to help you get the most out of Salesforce.

It’s common for organizations to believe they might not get the same functionality from a native app that they could from an application built off-platform. However, the truth is that the Lightning Platform is a powerful infrastructure that allows native apps to be just as (if not more) robust than their off-platform equivalents. What’s more, they are able to focus more on taking full advantage of Salesforce, incorporating features that non-native apps might overlook in their efforts to integrate with multiple databases.

It’s true that native apps work exclusively with Salesforce. If you’re using another solution as your primary CRM, native Salesforce apps might not make sense. But if you are using Salesforce as a source of truth in any way, native apps are there to build upon the value you get from Salesforce in a much smoother and more secure way. Given the choice between two apps with the same functionality, going with the native option is the smart choice.

Native Salesforce Apps Drive Innovation

Like we said before, when the pace of change accelerates, so does the pace of obsolescence. Choosing to use technology that is able to support your business as it scales and innovates is vital. Native apps aren’t only innovators themselves -- their ability to be easily customized and integrated with other solutions makes them agile partners in helping you innovate, too.

Start Innovating With S-Docs and S-Sign

S-Docs is the only 100% native document generation and e-signature solution for Salesforce. Since it’s built on the Salesforce platform, S-Docs allows you to quickly and easily generate, send for e-signature, and track complex documents within the Salesforce cloud.

With S-Docs, you’re able to generate documents that pull data from anywhere in Salesforce, insert complex conditional logic, automate your workflows, and securely send documents for signature. Everything occurs within Salesforce, meaning your sensitive data never changes hands, ever. As we continue to innovate, we’re proud to be a trusted partner to top government, healthcare, and financial services organizations around the globe.

Ready to start streamlining your document and e-signature workflows with a solution that can be customized to your business? Request a demo today or contact sales@sdocs.com for a customized demo.

See S-Docs In Action

Leave your Salesforce document workflow worries behind.

Request Demo

Enjoying our blog?

Subscribe now and we'll make sure to send you the latest as we publish new content!

Connect With Us!

For Salesforce news, digital document & e-signature insights, or just for fun.

        

Read More

Blog
June 12, 2024

Optimizing Sales Ops KPIs with Effective Reporting and Document Automation

Optimizing Sales Ops KPIs with Effective Reporting and Document Automation You don't have to micromanage your sales executives to optimize sales operations. Instead, you’ll have more success by establishing sales…
Blog
June 5, 2024

Are You Ready for a Document Automation Tool?

The Need for Efficiency in Today’s Businesses Business efficiency is crucial. Imagine running a marathon while juggling — sounds chaotic, right? That’s what managing documents without automation can feel like.…
Blog
May 29, 2024

Understanding and Advancing Organization Maturity Levels in Your Business

Understanding and Advancing Organization Maturity Levels in Your Business An organizational maturity assessment identifies where your company stands within the stages of a chosen maturity model framework so you can…

Salesforce MVP Spotlight: Brendan Conroy

By Blog No Comments

Welcome back to another S-Docs Salesforce MVP Spotlight, where we highlight some of the most inspiring and influential individuals in the Salesforce community. As a native Salesforce app, we’ve had the advantage of working with hundreds of incredible admins, developers, architects, and other extraordinary people who make the community great. We’ll provide you with an exclusive look into their Salesforce journeys, featuring best practices, career advice, and favorite ways they give back to the community.

Last time, we spoke with Charly Prinsloo about how she leverages the Salesforce platform to build amazing solutions and help others do the same. Featured this week is Salesforce MVP Brendan Conroy.

Salesforce MVP Spotlight: Brendan Conroy

Brendan Conroy is a 5x Salesforce MVP who’s an expert in implementing and administering Salesforce to help global corporations use the platform to its full potential. He currently holds five Salesforce certifications, including Administrator, Sales Cloud Consultant, and Service Cloud Consultant.

Brendan is more than just a Salesforce authority -- he also leverages the platform to help others gain a foothold in the ecosystem and learn Salesforce themselves. He’s a four-time instructor of a Salesforce Certified Administrator self-study course, a two-time instructor of the Advanced Administrator session series for the Salesforce Community, and an educator for Trailhead’s official Salesforce Fundamentals Program. To top it all off, he’s a mentor for the Trailblazer Mentorship Program and an active participant in the Trailblazer Answers Community.

Currently, Brendan is a Senior Business Systems Analyst at Twitter. Since his start with Salesforce seven years ago, he’s become an expert in all things Salesforce, an invaluable resource for the community, and one of the first 100 people to ever receive the Salesforce MVP title. We sat down with him to hear about his journey to becoming an MVP, his expert advice, and favorite ways of giving back.

"With all the help that the community has given me in my past, I almost feel obligated to extend the same to others."

Tell us about your journey to MVP status.
I was applying for a Director of Sales position about seven years ago. Midway through the interview, my soon-to-be boss told me that the job was already filled -- but they did have an opening for a Salesforce Administrator position.

I had no experience with Salesforce at the time, but I had been an admin for five other CRM systems in the past, so I understood the general process and accepted the job. I had four days after that to learn as much as humanly possible about Salesforce, so I went to YouTube and just started cranking through old hands-on training sessions.

Four months later, I became the head of Sales Ops. Since I had a lot of questions about Salesforce during that time, I relied on the Answers Community heavily at first. As time went on, I began answering questions myself.

Between January and October of that year, I answered over 800 questions, and that’s how I received the Salesforce MVP title initially. I was the 92nd person to become an MVP. After only 10 months, I was definitely surprised!

What are some good ways to get active in the Salesforce community?
There are a lot of ways! Answering questions on the Answers Community is one. You can also use Twitter and Linkedin to connect with folks who are established in the community like MVPs, user group leaders, or just people who actively post a lot.

Going to user groups is another great way to stay connected. If you’ve got the time, helping those who run existing ones can be very beneficial to both you and those you’re assisting.

You can also join specific groups through the Collaborate section of the Trailblazer Community. There are a lot of different industry-specific groups there that are filled with Salesforce advice tailored to your industry.

Any way you reach out and interact with the community can be beneficial.

"I think the most important thing is to think, ‘How am I gonna report on this?’ Understanding the full scope of a request before implementing it is pivotal. "

Giving back is a core focus for a lot of Salesforce MVPs. What’s your favorite way to give back?
At first, answering questions was the main way I helped people. Then I started helping people get their Salesforce certifications -- I was an instructor for a self-study ADM 201 course and the ADM 211 session series for the Salesforce Community -- and lately I’ve been doing mentorships.

I’ve had at least 5 different mentees in the last couple of months, and that’s always a really great experience. It’s typically a month-long program where we meet once a week and go over resumes, do mock-interviews, and talk about their career interests. I give them tips and tricks on how to position themselves better based on what I’ve learned during my time in the tech industry.

Another fun way I give back is going to colleges and presenting about why I love Salesforce and why students should be considering it as a potential career option. The presentations I do are something I wish I would’ve been exposed to when I was in college.

How do you find time to do it all?
With all the help that the community has given me in my past, I almost feel obligated to extend the same to others. Even if I am working 70 hour weeks, I still try to designate some time in order to help out the general community.

"My best advice to folks who are new to Salesforce would be to utilize Trailhead in order to get hands-on training within the tool and to pad out your resume."

Who in the community inspires you most?
I would say that there's two main people. One is Deepa Patel, my MVP mentor. I took one of her 15-week admin courses when I was pursuing my admin certification. After I passed, I became a session leader with her and instructed sessions for six different session series.

She's someone that has given so much back to the community. In addition to teaching multiple classes at once, she maintained the Salesforce Certification Study Group itself. She devoted a significant portion of her time to making sure that the program worked and the students really understood the curriculum so that they could ultimately pass the certification exam.

The other main person who really inspires me is James Garfield, a former Salesforce MVP. He was one of those people who immediately got back to me on the Answers Community any time I had a question while I was learning Salesforce. He’s a super bright person.

At one point, I had to completely change the object relationships at my work. He jumped on the phone for three hours and helped me through that process. There was a lot that could have gone wrong if he hadn't helped me out with that, and that's something that always resonated with me.

In addition to the people who inspire you, what else do you do to keep up to date on all things Salesforce? What resources are most helpful to you?
I think the main resource would ultimately be Trailhead. Trailhead is valuable because you can not only learn new skills, but also reflect achievements that you earn like Badges, Trailhead rank, and Superbadges on your resume.

Superbadges are great because you have to build out a reasonably complex, functioning process in Salesforce in order to achieve them. Even if you’ve never had experience with Salesforce within your actual job, you can call out superbadges during interviews and say that you’ve built a full length project that is essentially sanctioned by Salesforce itself. So my best advice to folks who are new to Salesforce would be to utilize Trailhead in order to get hands-on training within the tool and to pad out your resume.

SalesforceBen is great as well since he explains complex Salesforce functionality in plain English, so even if you’re not super familiar with the Salesforce platform, his blog’s overall presentation doesn’t use a lot of tech industry jargon and can be leveraged by newcomers to the system.

I also tend to go to YouTube a lot -- Brian Kwong, known as the Salesforce Wizard, has a great YouTube channel where he does release notes and overall functionality, particularly with Flow. He’ll show a pretty complex flow and how to set that up.

"You have to be able to interact with folks and really get to the heart of what they're asking. You have to think of things holistically."

What are some of your Salesforce best practices?
I think the most important thing is to think, ‘How am I gonna report on this?’ If you're not able to report on the data, then it may be extraneous. When I was in Salesforce consulting, the first thing I would ask is, ‘What do you want the reports to look like’? It’s just a very direct way of saying ‘What's the process, and how are you going to make the data match that.’ It can be one thing to say ‘what do you want to happen,’ but that doesn't necessarily mean that it's going to resonate with the data.

I also think that it’s important to break down a new request step-by-step in order to understand the “big picture” of what should happen and understand any considerations that might come out of making this change. For example, it’s common that I would get requests from users saying, “can you have an email be sent out to me every time (specific criteria) happens?” What the admin has to do with that information is to think, “okay, what are they trying to achieve here ultimately? How is that different from what they do normally? Are there any exceptions, etc?” If one does not do that, they may miss an important consideration that contradicts the request and end up making the wrong decision, resulting in frustrated end users (i.e. “We get emails about this every 5 minutes. Why is this set up this way?”).

So as a best practice, when getting new requests as an admin/developer, try to understand the full scope of what is to be achieved from an end-user standpoint, which users (internal or external) will be impacted, and if there are any issues that may have to be dealt with in the future if this is implemented. After that, determine the details such as timeline, what needs to be done in order to achieve the request, etc. I believe that understanding the full scope of a request before implementing it is pivotal.

Are there any must-have apps that you use?
It ultimately depends on the use case. Chrome extensions would be the most applicable ones that I can recommend. There's one called Quick Login As that allows admins to choose from a list of all of the users in their org and click to log in as them. I definitely recommend that one.

Another one would be Change Set Helper. I've worked with change sets prior to this extension becoming popular, and it would be such a pain to have to remember every change you've made. Change Set Helper automatically filters it for you. For example, you can filter all of the fields that were recently edited by edit and date and bring them to the top, as opposed to having to remember, “Oh, I edited these 30 fields. I better throw that into the change set.”

What’s the biggest piece of advice you have for your fellow Trailblazers?
Regardless of what industry you’re in, you have to develop some degree of social skills. As an admin, for example, you're dealing with sales, service, the C-Suites, marketing, finance...there's all kinds of departments that you're working with, so you have to be able to interact with folks and really get to the heart of what they're asking. You have to think of things holistically.

Additionally, call out Trailhead Superbadges on your resume if you have any. As I mentioned earlier, those are full-fledged projects that are essentially sanctioned by Salesforce. Even if you don't have a job that is specific to setting up Salesforce, you can do a full project life cycle by doing Superadges on Trailhead.

The Salesforce Community Advantage

As Brendan Conroy’s inspiring story shows, the Trailblazer community shines because of the many people within that are willing to dedicate their time to help others. After starting from scratch in 2013, Brendan quickly began using Salesforce to make a difference -- whether through answering questions online, teaching certification courses, or mentoring others on their own paths to success. We hope that his unique insights have inspired you to learn something new, share your knowledge, and get more connected with the Salesforce community.

To stay in the know on all things Salesforce and the community, follow Brendan on Twitter and subscribe to the S-Docs blog, where we’ll be posting more Salesforce MVP spotlights throughout the summer, along with the latest and greatest in the Salesforce world.

See S-Docs In Action

Leave your Salesforce document workflow worries behind.

Request Demo

Enjoying our blog?

Subscribe now and we'll make sure to send you the latest as we publish new content!

Connect With Us!

For Salesforce news, digital document & e-signature insights, or just for fun.

        

Read More

Blog
June 5, 2024

Are You Ready for a Document Automation Tool?

The Need for Efficiency in Today’s Businesses Business efficiency is crucial. Imagine running a marathon while juggling — sounds chaotic, right? That’s what managing documents without automation can feel like.…
Blog
May 29, 2024

Understanding and Advancing Organization Maturity Levels in Your Business

Understanding and Advancing Organization Maturity Levels in Your Business An organizational maturity assessment identifies where your company stands within the stages of a chosen maturity model framework so you can…
Blog
May 8, 2024

How Automated Healthcare Payer Solutions Deliver Exceptional Value

How Automated Healthcare Payer Solutions Deliver Exceptional Value Good quality healthcare is patient-centered and timely. When insurance providers streamline processes like policy renewals and filing claims, it lets you spend…

Veruna Finalizes Partnership With S-Docs

By Press Release No Comments

Wednesday, August 19, 2020

For Immediate Release

Veruna Finalizes Partnership With S-Docs

BOSTON, MA | Aug. 19, 2020 (GLOBE NEWSWIRE) -- Veruna, developer of the insurance industry’s only comprehensive agency management system (AMS) built on the Salesforce platform, is pleased to announce a new partnership with S-Docs, the only 100 percent, Salesforce-native document generation and e-signature solution available on the market today.

Veruna selected S-Docs’ cloud solution after reviewing the options for document generation across the Salesforce partner ecosystem and discovering functionality which will deliver customized documents, proposals, and more to insurance agency customers already leveraging the Veruna 2.0 solution. S-Docs allows for the creation of sophisticated documents while overall improving efficiency, reducing errors, and eliminating tedious work.

"The fact that both S-Docs and Veruna are native-built on the Salesforce platform will provide a seamless experience for Veruna customers,” said Dan Pejanovic, CEO of S-Docs. “With S-Docs integrated with the Veruna platform, users will be able to create documents faster, easier, and more securely than ever before.”

“We chose S-Docs to replace our current partner because of their Salesforce-native capabilities, their approach to partner support, and their commitment to making our joint customers successful,” said Jennifer Carroll, CEO of Veruna. “Integrating S-Docs into our solution allows us both to continue to leverage the Salesforce platform, simplifying the integration and administration of our solution for our customers, providing a more seamless user-experience, extending tighter data security, and faster document generation.”

Built on the Salesforce Lightning platform, Veruna’s AMS, Veruna 2.0, not only features extensive customer relationship management (CRM), lead gen, marketing, portals, and sales capabilities, but also an upgraded user interface (UI), dynamic dashboards, enhanced email capabilities, and a completely-redesigned activity timeline.

About Veruna
Veruna delivers the insurance industry’s only modern agency management system (AMS) built on the Salesforce platform and capable of driving quicker decisions using real-time data, robust analytics, and automated workflows with increased mobility, flexibility, customization, and integration all backed by the expansion capabilities inherent to the Salesforce AppExchange. For more information, please visit www.veruna.com.

About S-Docs
S-Docs is the only 100% native document generation and e-signature solution available for Salesforce users. Founded in 2010, the application has grown to be the first choice of major enterprise clients for their digital document needs. S-Docs solves for a multitude of use-cases with an intuitive solution and world-class support. Clients from around the globe have rated S-Docs with hundreds of 5-star reviews, securing a spot in the top 1% of all apps on the Salesforce AppExchange. The company is privately held with headquarters in New York and offices in Ann Arbor. Learn more at stg-sdocscom-sdkb.kinsta.cloud and follow us on Twitter @Sdocs.

Headquarters

521 Fifth Ave
New York City, NY 10175

800-519-DOCS
       

Selecting Email Recipients

By Documentation, General Solutions, S-Docs Cookbook No Comments

When you're ready to email your documents, the S-Docs email page provides two options for quickly selecting email recipients.

Contact / User Lookup

The Contact / User Lookup field allows you to search for any contacts or users in your org.

The S-Docs contact user lookup field

Click inside the field to open the Contact / User Lookup window.

The contact lookup window

To find contact or user information, [1] enter a search term and click Go. You can then [2] switch between all Contact and User results that match your query. [3] Click a Contact or User name to insert their email address into the email To field. You can also copy and paste the address into the CC or BCC fields as needed.

Contact Quick Pick

The Contact Quick Pick field allows you to quickly choose any Contact records related to your base record.

Note: S-Docs will search for any lookup relationships between your base object and the Contact or Account objects to populate this picklist.

The S-Docs contact quick pick menu

Contacts that you select will be added to the To field, separated by commas. You can also copy and paste the address into the CC or BCC fields as needed. When a contact is added, an Edit link will appear next to their name. You can click this link to open and edit the contact record in a new window.

Troubleshooting

Why Can't I access the Contact / User Lookup or the Contact Quick Pick?
If the Contact / User Lookup and Contact Quick Pick fields are missing, this means that an admin has locked the To field for one of the documents that you are emailing (this includes HTML email body templates).

If the To field is locked for any of the templates that you generate, you will not be able to edit this field, and the recipient selection options will not appear.

Where are the CC and BCC fields?
If the CC or BCC fields are missing, this means that an admin has locked those fields for one of the documents that you are emailing (this includes HTML email body templates).

The S-Docs email page without CC or BCC fields

Why is my email failing to send?
By default, S-Docs links outbound emails to the contact record with a matching email address; Salesforce requires this linkage. If you try to send an email to an email address that is not listed under any Contact record in your org, S-Docs will attempt to link it to a single dummy contact record called "No Contact Record." This contact record is created automatically by the S-Docs package to handle this linkage, and is immediately deleted once the email is sent.

If your org has implemented validation rules that require additional contact fields to be completed, then the S-Docs package will not be able to create this contact record. In this case, you can create an Apex trigger to ensure your emails can be sent. Click here to learn more about solving email deliverability issues.

Overview: Translating S-Docs

By Documentation, General Solutions, S-Docs Cookbook No Comments

Introduction

Multinational companies with employees and customers based around the globe need to do business in a variety of different languages. S-Docs provides a number of language translation options that you can leverage to give your users and customers a seamless experience, whether they're using S-Docs internally or viewing generated documents. This article will go over key points of consideration and provide you with the necessary resources for translating S-Docs based on your requirements.

The two main aspects of S-Docs that can be translated are:

  1. The S-Docs user interface that admins and business users interact with inside of Salesforce
  2. The content of your generated documents that customers and internal stakeholders view

This article will explain how to ensure that both of these aspects are translated based on the languages of your Salesforce users, customers, or both.

Translate the S-Docs UI for Salesforce Users

If your business has multinational employees that need to generate documents, translating the S-Docs user experience can be imperative to allowing them to work as efficiently and seamlessly as possible. S-Docs allows you to translate the entire document generation experience, from selecting templates to sending emails. There are two options for translating the S-Docs UI.

Note: Currently, the S-Docs template editor is only available in English. However, fields listed in the Insert Field menu will appear in the user's Salesforce language.

Download Translations

S-Docs provides preconfigured translations for two languages: Spanish and German.

Translating the user experience using our preconfigured translations is a simple matter of downloading the desired translation template and adding the translation parameter to your S-Docs button. Once this is completed, the S-Docs user experience will be translated for users that click this button.

Click here for detailed instructions on downloading translation templates and adding the translate parameter to your S-Docs button.

Define Your Own Translations

If your users speak a language other than Spanish or German (or you want to write your own translations for Spanish or German) you can also translate the S-Docs UI yourself by navigating to the S-Docs translation page and translating each field manually.

Click here for detailed instructions on defining your own translations.

Translate Document Content

For companies that do business with customers around the globe, sending documents in your customers' native language can be vital to delivering great customer experiences.

Translating Data

Merge Fields
S-Docs leverages the Salesforce Translation Workbench to allow you to translate any Salesforce field label and any Salesforce picklist field data (other forms of field data, such as text, cannot be translated because they are not supported by the Translation Workbench).

Ensuring that your documents are generated with translated field labels and picklist field data is a simple process:

  1. Define translations in the Salesforce Translation Workbench
  2. Add the translate parameter to your S-Docs button (or set the language at the template level)
  3. Add the translate attribute to your merge fields

Click here for detailed instructions on translating field labels and field data.

Related Lists
Related list data can also be translated using the toLabel() function within a direct soql query.

Click here for more information on translating related lists and lookup fields.

Formatting International Characters

If your template contains international characters such as Japanese or Hebrew, there are a few steps you can take to make sure the text in your output documents are formatted correctly.

Template Settings
If your template contains international characters, you should check the Template contains international characters (Unicode fonts) box under the Document Options tab. If your international characters still don't render correctly, you can set the Unicode Enforcement Level to Strict under the same tab. This will override any font settings being applied to merge fields.

If your documents are written in a right-to-left language like Arabic or Hebrew, you can do one of the following:

  1. Use the rtl merge field attribute to transform merge field data to be right-to-left. This will not transform static text.
  2. Use <rtl> tags in the template source to transform both merge field data and static text to be right-to-left.

Click here for more information on transforming right-to-left languages.

Salesforce MVP Spotlight: Charly Prinsloo

By Blog No Comments

Welcome back to another S-Docs Salesforce MVP Spotlight, where we highlight some of the most inspiring and influential individuals in the Salesforce community. As a native Salesforce app, we’ve had the advantage of working with hundreds of incredible admins, developers, architects, and other extraordinary people who make the community great. We’ll provide you with an exclusive look into their Salesforce journeys, featuring best practices, career advice, and favorite ways they give back to the community.

Last time, we spoke with Eric Dreshfield about his journey founding Midwest Dreamin’ and becoming an expert in the Salesforce community. Featured this week is Salesforce MVP Charly Prinsloo.

Salesforce MVP Spotlight: Charly Prinsloo

Charly Prinsloo is a 2x Salesforce MVP with a passion for all things Salesforce. She’s an expert in using the platform to architect and implement intuitive solutions for businesses in every industry, but her expertise doesn’t stop there. Charly also specializes in leveraging Salesforce  to help others and make a positive impact in the community.

As a global co-leader for Ladies Be Architects, Charly supports women around the world on their journey to become Certified Technical Architects, the pinnacle Salesforce certification for top architects on the platform. She’s also a coach at Radical Apex Developer (RAD) Women, where she helps women learn to code on the Salesforce platform and advance their developer careers.

To top it all off, Charly holds 16 Salesforce certifications and is a Lightning Champion. Currently, she’s a Practice Lead & Technical Architect at Sense Corp.

Charly began using Salesforce in 2005 when her medical research position required her to start working with computers. Since then, she’s gained Salesforce MVP status, spoken at Dreamforce, and become a leading Trailblazer in the community. We sat down with Charly to hear about her incredible journey, Salesforce best practices, and affinity for helping others.

"None of us did this to become an MVP; we did it because we wanted to learn, and we thought that if we’re learning, we might as well see who wants to learn with us."

Tell us about your journey to MVP status.
I started working on Salesforce in 2005, so it’s been a long journey! I wasn't ever planning on becoming an MVP -- Salesforce MVPs didn’t actually exist when I got started. I was an accidental admin at first, and eventually did all of the possible roles I could until I progressed to the technical developer side.

To become a Salesforce MVP, you have to be nominated and then selected based on the impact you make in the community, among other criteria.

We do a lot of community work at Ladies Be Architects, and I think that’s how I got nominated. We run study groups on a monthly basis, and we’ve recorded over 200 hours of content that's available on our YouTube channel. We also hold sessions at most Salesforce community conferences. We really try to empower the people in the community that are specifically focused on the architect journey. I think that’s what led to me becoming an MVP.

It wasn’t ever intended, but it’s something that I’m very honored to get. There’s so many great MVPs out there, and I’m so glad that all the fun we’re having at Ladies Be Architects, RAD Women, and simply reaching out to the community has made it possible for me to be a part of this amazing group.

Giving back is a core focus for a lot of Salesforce MVPs. What’s your favorite way to give back?
I think all of it! It’s energizing when you interact with the community, whether it’s chatting with people on Twitter and giving advice, or people reaching out to you and saying “How would you do this? Can you help me solve this problem?”

The study groups that we run and record are a lot of fun too, and a great way to give back. It’s all a continual learning journey. That’s one of the cool things about giving back -- none of us did this to become an MVP or to get a status; we did it because we wanted to learn, and we thought that if we’re learning, we might as well see who wants to learn with us. That’s how our study groups and Ladies Be Architects was born. The things I find the most fun are learning and having people learn with me.

Giving back through the Lightning Champion program is also great. Lightning champions are people that have proven that they’re experts in Salesforce Lightning -- they’ve rolled it out, they can manage the scope of change management, and they can build applications in Lightning. They commit to being available to the community and end users. If anyone has questions or needs help with their Lightning migration or building something in Lightning, Lightning Champions are there as trusted advisors. It’s a pretty cool program to be a part of.

"Salesforce is great at delivering incredible functionality through simplicity. It doesn’t have to be complicated."

How do you find time to do it all?
I don’t think there’s any real answer -- it does take a lot of time, but it comes naturally when you’re doing it with a goal in mind. Most of our community work is because we’re learning ourselves, so it becomes really easy to make the time for it because it's something you would've done naturally. Sometimes it means you wake up at 5 in the morning instead of 6, or go to bed an hour late, but the time comes easy because it’s fun.

Who in the community inspires you most?
The other ladies in Ladies Be Architects are very inspiring to me. Seeing their dedication, commitment, and courage is really inspiring. Gemma Blezard and Susannah St-Germain, as well as the 3 ambassadors we have in Australia -- Vickie Jeffery, Emily McCowan, and Adrienne Cutcliffe. I spend a lot of time talking to them, and they keep me focused because I want to continue doing the work no matter how hard it gets.

Salesforce MVP David Liu is another one of my great inspirations. He’s such a nice person and he's so kind. The way that he explains things, and the fact that he’s never too busy to help somebody, is incredibly amazing.

There’s so many inspiring people out there, it would be impossible to name them all!

In addition to the people who inspire you, what else do you do to keep up to date on all things Salesforce? What resources are most helpful to you?
If I have to look at the bookmarks on my computer, most of them are the Salesforce official documentation, and I’m always jumping between different people’s blogs. Trailhead has become one of my first stops to find something too.

"Keeping up with every release gives me the opportunity to be at the forefront of how the world is changing."

What are some of your Salesforce best practices?
Whether you’re an admin or developer or an end user, it’s important to remember to keep it simple. Salesforce is great at delivering incredible functionality through simplicity. It doesn’t have to be complicated, and you don’t have to have lots of buttons and lots of screens to achieve something.

As far as apps go, I love using Agile Accelerator, a tool built by Salesforce Labs. It’s free on the AppExchange and it's a complete agile project management tool. You can track your user stories, your sprints, your epics, and your whole backlog management. Agile Accelerator does it seamlessly since it’s native to Salesforce.

What are some of your favorite Salesforce projects that you’ve worked on?
It feels like I’ve worked on every cloud and built some really cool functionality that it’s hard to pick. I think the most interesting and fun one was quite a few years back before digital banking was a thing -- I was part of the team who built the original digital bank on the Salesforce platform. It incorporated cryptocurrency and blockchain technology on Salesforce with single customer source data. We had incredible architecture using tools like Mulesoft and Docker long before they became famous.

It acted as a complete digital bank, including everything from the back office ledgers and accounting to the front office, onboarding, and FICA -- a one-stop bank that we built on the platform.

"My primary rule in everything I do is kindness. If you have kindness, networking becomes easy because you want to find out how people are."

What are you most excited about for the future of Salesforce and the community?
I wish I had a crystal ball so I could see what’s coming because it changes so often! Salesforce is so good at anticipating new trends and functionality in technology. They just incorporated blockchain last Dreamforce, and they’re so quick to adopt new digital disruption technologies so it's hard to know what’s coming, but I’m very excited just for that reason. I know that keeping on top of the platform and keeping up with every release gives me the opportunity to be at the forefront of how the world is changing. Doing it through a Salesforce lens is amazing because it's familiar to me and it makes sense, so that's something that I'm really looking forward to.

What’s the biggest piece of advice you have for your fellow Trailblazers?
Take people with you on your journey and share what you learn. If you want to learn how to configure a lightning page, reach out and say ‘Hey, who wants to do this with me?’ A lot of people would say “Of course,” even those who have been in the community for a long time, because Salesforce is a continually changing platform. You might’ve known how to do lightning pages 6 months ago, but there's undoubtedly new functionality available. There will always be people willing to help. It’s kind of mind boggling once you start really understanding how incredibly deep and connected the Salesforce Ohana is.

Additionally, it’s important to learn networking and team work. My primary rule in everything I do is kindness. If you have kindness, networking becomes easy because you want to find out how people are. You’ve also got to be self motivated -- you’ve got to set yourself some goals, take that hour a day or 2 hours a week to settle down and do some trails. Or reach out to the community and learn a new thing; that's how you’ll stay connected and also make a difference.

The Salesforce Community Advantage

Charly Prinsloo’s inspiring story is a testament to how talented, connected, and open the Trailblazer community is. Since 2005, Charly has been using Salesforce as a platform for innovation -- but she also devotes her time and expertise to empowering others to follow in her footsteps. We hope that her unique insights have inspired you to learn something new, share your knowledge, and get more connected with the Salesforce community.

To stay in the know on all things Salesforce and the community, follow Charly on Twitter and subscribe to the S-Docs blog, where we’ll be posting more Salesforce MVP spotlights throughout the summer, along with the latest and greatest in the Salesforce world.

See S-Docs In Action

Leave your Salesforce document workflow worries behind.

Request Demo

Enjoying our blog?

Subscribe now and we'll make sure to send you the latest as we publish new content!

Connect With Us!

For Salesforce news, digital document & e-signature insights, or just for fun.

        

Read More

Blog
June 5, 2024

Are You Ready for a Document Automation Tool?

The Need for Efficiency in Today’s Businesses Business efficiency is crucial. Imagine running a marathon while juggling — sounds chaotic, right? That’s what managing documents without automation can feel like.…
Blog
May 29, 2024

Understanding and Advancing Organization Maturity Levels in Your Business

Understanding and Advancing Organization Maturity Levels in Your Business An organizational maturity assessment identifies where your company stands within the stages of a chosen maturity model framework so you can…
Blog
May 8, 2024

How Automated Healthcare Payer Solutions Deliver Exceptional Value

How Automated Healthcare Payer Solutions Deliver Exceptional Value Good quality healthcare is patient-centered and timely. When insurance providers streamline processes like policy renewals and filing claims, it lets you spend…

How to Design a Professional Quote in Salesforce

By Blog No Comments

“It’s not about having the right opportunities. It’s about handling the opportunities right.”
-Mark Hunter, The Sales Hunter

One of the most useful tools in a sales team’s wheelhouse is the sales quote -- and we’re not talking about the motivational kind that’s listed above this paragraph (although those can help too if you’re in need of some inspiration).

We’re talking about those handy documents that you send to prospects who are interested in what you’re offering, but need more information before making a buying decision. Sales quotes are a way to lay your cards on the table: they show the prices of your products or services, applicable discounts, and any terms that might be relevant.

Getting a quotation request is great because it means that your prospect is definitely interested in what you’re selling. However, it also means that they’re likely shopping around and receiving competitor quotes -- after all, they’re in search of the best fit for their business. It’s your job to prove that your solution is the one they need by giving them a winning quote that sets you apart.

How to Design a Professional Quote in Salesforce

So how do you do it? What should you consider when creating sales quotes, and how can you design them in a way that increases your win rate and improves customer satisfaction at the same time?

Luckily, you’ve come to the right place. As a native document generator and e-signature solution for Salesforce, we’ve had over ten years of experience helping our customers with great document design. Quotes are one of the most common documents that we come across, but despite the frequency with which they’re created, they can be difficult to get right. We’re here to help you transform your quotes into professional, eye-catching documents that your customers will love.

Creating professional quotes that use Salesforce data is easiest with a document generator like S-Docs -- all you have to do is create a template (or download one pre-made) and let our solution pull in all of the necessary data for you -- but the tips in this article will be relevant to you even if you go the manual route.

Let’s dive into building a professional quote template in Salesforce that will set your business apart from the competition, impress your future customers, and save you hours of productivity in the long run.

Sales Quote Basics

Generally, sales quotes contain three basic elements:

  1. A header section with contact and administrative information
  2. A body section that lists products/services and pricing
  3. A footer section with terms and conditions

There’s a lot of room for customization within these three elements, so think about the problem that your quote is trying to solve, and structure it accordingly. If your solutions are more cost-effective than your competitors, it might be a good idea to highlight a master pricing overview at the top before diving into specifics. If your solutions have lots of unique selling points, consider including more room for item descriptions.

Additionally, it’s important to be aware of your audience. Certain industries may value design and color more than others, so do a little research before getting started. It’s always best to have an idea in mind before spending too much time on your template.

If you’re using a document generation solution, coming up with multiple layouts might be a good idea too. Using the power of conditional logic, you can design a single template that changes based on the industry of the prospect it’s being sent to, saving lots of time down the road -- but we digress. Once you have a great idea in mind, it’s time to start designing.

Start with Your Brand

To begin creating your quote template, refer to your brand guidelines. Quotes are one of the first formal documents that your prospect will receive from you, so making a good impression counts. Sending a quote that matches your brand identity will ensure that your prospect knows who you are right when they open it, and it’ll help them remember you next time, whether they encounter you online or decide to proceed with a deal. Plus, it makes you look more professional and instills confidence in your ability to deliver consistently.

Take a look at this outline that we prepared using the S-Docs template editor.

As you can see, both the header and footer of the document use consistent brand colors and the logo is displayed prominently at the top. Since quotes are created to provide specific information, they should be as simple to understand as possible without omitting any information. This document makes it easy to see who it’s from, what it’s for, and how to get in contact with the sender.

Add Administrative Details

Now that you’ve set a stylistic tone for your quote, the next step is including space for administrative details. Typically, this includes you and your prospect’s contact information, as well as details about the quote itself like its number and expiration date (when you use a document generator, all of this information can be dynamically pulled in).

As you continue developing your quote, keep brand consistency in mind throughout the process. For example, we decided to use headers in our administrative section that incorporate brand colors. The headers also help organize the information and make it easy to find.

In addition to the administrative information, we also added a section for a description of the project that we’re quoting. Remember, we’re trying to make this document as easy to understand as possible. Providing a short description at the top can orient the reader and help you stand out from other quotes that might not include a section like this.

Create the Quote Body

With your administrative details in place, it’s time to tackle the meat of the quote, the section that your prospect has been waiting to see: the body table. This is where you list your products or services, along with descriptions, prices, quantities, and totals. The quote body is what your prospect is going to spend the most time reviewing, so it’s crucial that it’s well-organized and easy to understand.

The quote body is also a great place to call attention to any discounts that you’re able to give your prospect. In the document below, we separated the discount from the rest of the line items so that the eye is immediately drawn to it.

Note: Prices listed in this table are for example purposes only.

At the bottom of the table, sum the prices, including taxes and any other charges that may be applicable. Be sure that the grand total is conspicuous and easy to find -- we chose to highlight it (using brand colors, of course!).

As you’ve probably already noticed, the body table contains a lot of information. It’s easy to understand, which is great for your prospects -- but because there’s so much that goes into it, setting it up correctly can take up lots of valuable time. Hunting through pricebooks and copying and pasting information that’s already been entered into Salesforce just doesn’t make sense for fast-paced sales teams.

What’s more, manually inputting all of this information can lead to errors pretty fast. And errors...well, they tend to lead to bigger errors. All it takes is one incorrect price to create confusion and frustration down the road that might cause surefire opportunities to go cold.

This is where document generation solutions can make the quote creation process exponentially easier. With just a few clicks, you can create quote templates that automatically merge related list data into custom-formatted tables. This means no copy-paste loop and no errors -- all you have to do is click a button, and your body table is populated instantly.

Discounts and other conditional formatting requirements can be simplified using document generators, too. Any number of business rules can be put in place to ensure that your quote meets the specifications of the job at hand. Automatic discounts based on different pricing tiers, different tax rates based on location, varied terms and conditions based on deal size -- no matter the requirement, document generators like S-Docs can handle the heavy lifting and help you deliver speedy quotes every time.

You Might Also Like: 6 Benefits of a Salesforce Document Generator

Add Terms and Conditions

Quotes may not be the first thing that comes to mind when you hear the word “contract,” but they can still form the basis of a legally binding offer. You should include any important terms and conditions that will be applicable if your prospect accepts the quote, such as payment terms or warranties.

Along with preventing any disputes in the future, a terms section ensures that there are no surprises down the line and lets your prospect know what to expect should they decide to do business with you.

You Might Also Like: How Accounting and Legal Departments Can Simplify Contract Creation in Salesforce

Get it in (Virtual) Writing!

In some cases, you can call it a day and send out the quote once you’ve included your terms. However, there may be times when you want to get your prospect’s acceptance in writing (and we’re not talking email replies). Adding a few blank signature lines at the bottom might do the trick, but that puts them in an unpleasant position -- should they really go through the trouble of printing out the quote, signing it, and then scanning it back into the computer?

Our main goal is to make the quotation process as easy as possible, and asking someone to complete multiple steps and interact with more than one piece of technology doesn’t fall under our definition of “easy as possible.”

Luckily, integrating an e-signature solution into your quotation process can eliminate any headaches that legacy signature workflows tend to produce. When you start using e-signatures, the entire process becomes seamless for both you and your prospective customers.

If you use a document generator with a proprietary e-signature solution, things become even easier. With S-Docs and S-Sign, you’re able to generate quotes with a single click, send them for signature, track their progress, and receive them back signed and ready to go -- all without ever leaving Salesforce, or switching between different user interfaces.

Your prospects will love the modern experience that you deliver, while you and your team can continue moving fast and getting things done as the highly efficient team that you are.

Start Generating Professional Quotes with S-Docs

If you follow the formula laid out in this article, you’ll be well on your way to creating professional quotes that stand apart from your competitors and impress your prospects -- but well-designed quotes are only the beginning. If you’re ready to start improving your win rate and amplifying your workflow, look no further than S-Docs, the only 100% native document generation and e-signature solution for Salesforce.

With S-Docs, you’ll be able to create winning quote templates in Salesforce using our robust template editor -- insert related list tables, conditional logic statements, and data from anywhere in Salesforce -- the easy-to-use interface of S-Docs supports it all. And when you use a native e-signature solution like S-Sign, generating and sending your quotes for signature is lightning-fast, and your prospects will be able to review and sign them without missing a beat. The best part? It’s all tracked in Salesforce, allowing you to make intelligent decisions based on insights that S-Docs provides.

Start treating your opportunities right by implementing S-Docs and modernizing your quotation workflow today with the fastest, most secure document generation and e-signature solution for Salesforce. Request a customized demo or email sales@sdocs.com. Happy quoting!

See S-Docs In Action

Leave your Salesforce document workflow worries behind.

Request Demo

Enjoying our blog?

Subscribe now and we'll make sure to send you the latest as we publish new content!

Connect With Us!

For Salesforce news, digital document & e-signature insights, or just for fun.

        

Read More

Blog
June 5, 2024

Are You Ready for a Document Automation Tool?

The Need for Efficiency in Today’s Businesses Business efficiency is crucial. Imagine running a marathon while juggling — sounds chaotic, right? That’s what managing documents without automation can feel like.…
Blog
May 29, 2024

Understanding and Advancing Organization Maturity Levels in Your Business

Understanding and Advancing Organization Maturity Levels in Your Business An organizational maturity assessment identifies where your company stands within the stages of a chosen maturity model framework so you can…
Blog
May 8, 2024

How Automated Healthcare Payer Solutions Deliver Exceptional Value

How Automated Healthcare Payer Solutions Deliver Exceptional Value Good quality healthcare is patient-centered and timely. When insurance providers streamline processes like policy renewals and filing claims, it lets you spend…
Top