TrailheaDX is the Salesforce developer conference. It was held in San Francisco on the 28th and 29th of June, in the Moscone West Center. The number of attendees has quadrupled from last year, with people coming from all around the world, as my colleague and myself traveled from Málaga (Spain).
This conference was born after the demands from Salesforce developers of having their own event. It is true that there is a zone at Dreamforce for developers, but that was not enough for us, and finally our demands were listened to and Salesforce created this amazing conference.
One thing to note about TrailheaDX is that the people giving the talks are product managers, directors or engineers working directly with the products, so you have first hand information.
There were more than 180 sessions to cover multiple and diverse topics. 3 key areas led the whole conference and were highlighted during the opening keynote with amazing demos run by Leah McGowen-Hare (Director of employee and Trailhead content strategy) and Sarah Joyce Franklin (SVP Dev Relations & DM Trailhead). The demos are already online, check this powerful demo of Einstein and this one about Salesforce DX both run by Leah McGowen-Hare, and also this one about Platform Events run by Sarah Franklin.
Salesforce DX
Salesforce DX was released in Beta during TrailheaDX. I have already written a blog about it because I was participating in the private pilot, you can check it here to know what is Salesforce DX in detail.
As a summary, Salesforce DX is a group of tools oriented to develop and release Force.com applications following the industry standards of version control system (VCS), Continuous Integration (CI) and Continuous Deployment (CD). It comes with a Command Line Interface (CLI) that we could enjoy in every single talk about Salesforce DX.
Many of the members of the Salesforce DX team were at the conference giving multiple talks about this topic.
We had Wade Wagner (VP Product) introducing Salesforce DX, his session is already online.
We also had Dileep Burki (Director) talking about the Second Generation of Packaging. It is still in development mode and will be offered as private pilot in the next weeks and not available in beta after Winter ’18, so still a quite long way to go. The Second Generation of Packages is meant to be a unique package that can be used for ISV, Partners and end clients to work together with Salesforce DX for a more automated development and release experience.
There was also a workshop run by Jules Weijters called Salesforce DX and Continuous Integration, that showed how to use Salesforce DX and Travis as CI systems. This was one of my highlighted sessions to attend. Unfortunately the session was so packed that the WiFi couldn’t provide internet for all of us and I couldn’t do the workshop. A real shame. On a positive note, the workshop was based on a trail, that we all can do at home.
Thomas Dvornik (Technical Lead) gave a great geeky talk about how to customize your environment to be more productive using Salesforce DX. Mike Miller (Software Architect) and Jim Wunderlich’s (Salesforce DX Technical Lead) session was about how to migrate existing apps to Salesforce DX. This was the very same talk that I did for DreamOlé, although mine was in Spanish.
And there were more sessions I couldn’t attend! I could tell there were big expectations for Salesforce DX on this conference and I think expectations were exceeded.
Einstein
Artificial Intelligence has firmly arrived to Salesforce. It is called Einstein and there are several products around it.
Sales Cloud Einstein is a product that helps sales teams to focus on leads with higher conversion probabilities. Einstein takes the information of all your leads, and creates and trains a model that gives a score (probability of conversion) for each lead. Along with that score, Einstein gives feedback to the user about what is influencing that score so the user can act on it. For example, if the country is an important field for our model, and this field is empty, it will tell the user. It also offers Account and Opportunity Insights and can automatically log activities from your sales user email and calendar. The key point of Sales Cloud Einstein is that the user doesn’t need to upload any data or do anything to train the model, it takes all the data from your CRM (and email client and calendar if you allow it). At Ebury, we are already in a trial with this. Looks promising!
Einstein is an application that lives outside Salesforce, so in order to communicate with it we need an API. There are 3 different APIs: Einstein Vision, Einstein Language Intent and Einstein Language Sentiment.
Einstein Vision API gives us the power to evaluate images based on a model that you train. I will use the same example we saw in a workshop, let’s say we want to classify cats based on their breed every time we upload a cat image. The first thing we need to do is to create the model. We just have to upload images (sample data), the more the better, assigning a label for classification. In our example we would upload lots of cat images with a parameter saying if they are British, Bengali or Siamese. Once we have uploaded the images, we call the Einstein API method to create the DataSet, we will then have our model ready to be trained. Then we will use Einstein API to train the model. This process is asynchronous and can take some time, depending on how big the DataSet is. When this is done, we are ready to get predictions against this model. When we upload an image it will be automatically classified by Einstein. Amazing!
The other two apis are for Neuro-Language Processing (NLP). Based on plain text Einstein can tell you what your customer wants, Einstein Intent, and if that message is positive, negative or neutral, Einstein Sentiment, giving you the result based on probability.
The concept is the same as that for Einstein Vision. We need to create a model, uploading lots of plain text sentences with their corresponding labels. This label would be positive, negative, or neutral for Einstein Sentiment. For Einstein Intent we would define labels based on what the customer is requesting, it could be support, services, or sales to redirect the inquiry to the right team. We would then create the DataSet and train the model asynchronously. And we are ready. Next thing is to upload a sentence and see what our models return. This is great for automating routing of customer requests for example.
One thing to take in mind with AI, the better your data is, the better your prediction will be.
These are very powerful tools that I’m sure will be growing in the next releases.
Platform events
Salesforce knows that integrations are a key part of the platform and wants to make the communication between Salesforce and external systems easier for their customers.
At TrailheaDX Salesforce presented Platform Events, a custom messaging platform so that customers can build and publish their own events, within Salesforce or outside of Salesforce. This platform is based on the publish-subscribe model.
There are 3 main components: Salesforce message bus where events are added in chronological order with replay IDs. Publishers, that can be internal or external to Salesforce, can push new events into the bus. Internal apps will use Apex, Process Builder or Flows, while external apps will use Salesforce native APIs (REST, SOAP). Consumers, that can also be internal or external to Salesforce, can subscribe to events via CometD/Bayeaux protocols and with Apex.
A Custom Event looks very familiar to Custom Objects, but their API name ends with “__e” (instead of “__c”). You can also add custom fields to it, keeping the “__c” suffix. To publish an event you only need to create a record of that event object. To listen to an event, we can create a trigger in Apex if we are in Salesforce, or subscribe to it using CometD/Bayeaux protocols if we are outside the Salesforce ecosystem.
This is a very powerful tool that we are going to use at Ebury to make our integrations more effective.
These points that I just summarised were the 3 main key areas of the conference, but there were many other topics covered in the sessions: testing, new features coming up like External Services or Salesforce API explorer, lightning components, community lightning builder, and many more. But I’m afraid I can’t talk about of all of them in just 1 post, and it was literally impossible to go to all sessions.
Alongside the conference there were also sessions focused on Equality for All and the importance of a diverse community. Tony Prophet, the Chief Equality Officer, was in the conference contributing to different panels. The sessions and panels were inspiring.
At the same time that sessions were happening there were booths distributed in the “Salesforce Forest” where you could go to see a demo or ask for information. There was a booth for almost everything: Salesforce DX, Einstein Vision, Einstein API, Community Lightning Builder, Lightning Application Builder, Certifications, Salesforce API, and many more. And of course there were booths for partners where you could go to get a demo for their products, such as DocuSign, Rabbit, and Copado.
We could then relax after the first session’s day with some beers and music at the party at Warfield. This featured a live set from from Thievery Corporation!
For the closing keynote we had Damon Lindelof, screenwriter and producer, most known for the television series Lost, sharing his experience with us. Lots of Lost fans in the audience.
You can check TrailheaDX ‘17 sessions in the Salesforce Developer channel on YouTube. Enjoy!
As a closing note I have to say I just loved TrailheaDX, I came back home with the bag full of motivation, full of new things I want to learn, and full of new features that I’m willing to apply here at Ebury. Above all I came back feeling very happy and very fortunate for what I do.