Airkit Lightning Component (Salesforce)
Last updated
Last updated
Airkit apps can be embedded into Salesforce pages using the Airkit lightning component that can be found on the Salesforce App Exchange. This allows developers to quickly build out and launch personalized web apps and omnichannel experiences on top of Salesforce.
Look at the top of any Salesforce page.
If you are using Lightning Experience, click on the gear icon, then select Setup Home.
If you’re using Salesforce Classic and you see Setup in the user interface header, click it.
If you’re using Salesforce Classic and you don’t see Setup in the header, click your name, then select Setup.
Navigate to Security > CSP Trusted Sites.
Create a New Trusted Site.
Fill in the information under General Information:
Trusted Site URL: This is the base domain of your Airkit application that you would like to pass into the lightning component. To get the base domain, Edit your Airkit app and go to Settings > Base Domain
For example:
URL: https://app.airkit.com/{trigger} Base domain: https://app.airkit.com
Select all of the CSP Directives and click on Save.
You will need to configure Target Hostnames in your Airkit App in order to allow your app to be embedded into Salesforce.
Go to studio.airkit.com and Edit your app and go to Settings.
Scroll down until you see Target Hostnames.
Add the domain of your Salesforce instance as the Target Hostname.
Save your App.
The Airkit lightning component takes in a Configuration Url which needs to be set up as a part of your Airkit application. This requires two API endpoints that you will need to configure, an App API and a SDK API.
Navigate to Triggers and create a SDK API.
Create a new URL Route and click on Create. You can also use an existing route as well.
Click on the sdk
endpoint where you will be able to build out the API.
This is an SDK API which means it has preconfigured headers and properties that allow you to use with Airkit's Web SDK. To get the record's ID and object name when the Airkit lightning component is embedded into Salesforce, the endpoint will need to be modified slightly. Add two Query Params called:
objectName
recordId
Then, scroll down to the **Start Journey **data operation and under the Start Parameters you will need to add the following code block. This will allow you to access theobjectName
and the recordId
using session.start.queryParams
.
Save your app.
Create an App API using the same URL route created in the previous step and add config
to the end of the endpoint.
Add a transform data operation and pass in the following. The SDK Url
is the url endpoint created in the previous step.
Configure the response of the API:
Response Headers: Content-Type
: application/json
Response Status : 200
Response Body: TO_JSON(transform)
Save your app.
After your App APIs are configured, your app is ready to be embedded and published. In order to see a page render in Salesforce, your app must have a web page with some controls on the page. For this example, the web page will simply say "Hello World" and also pass in the session
variable on the page.
When ready to publish, click on the "Publish" button in the top right hand corner and publish your application. The API endpoint will also be published when you hit publish. This is important to pass the config
endpoint into the Airkit lightning component in the following steps.
Add the Airkit lightning component to a page in Salesforce. For this example, the component will be added to the Case Object page. The component has the following properties:
configUrl: The config url of the Airkit app to be embedded
events: Comma delimited list of change events in Salesforce to emit into Airkit
debug: When checked, will send events to the console to assist in debugging
height: A number that determines the height of the lightning component
Take the config
endpoint that was created in this step and pass it into the configUrl
property on the lightning component.
Pass in a value for the height.
Save your page.
You can set up data capture events from Salesforce that can emit events and data into Airkit. For example, you can trigger off an action chain in Airkit that updates the UI and sends a text message, whenever a status changes on a Salesforce case to completed and have it pertain to the existing session that is being run on the lightning component.
Change Data Capture setup in Salesforce
Go to Setup > Integrations > Change Data Capture.
Select the Case entity.
Save your changes.
Configuring the incoming event in Airkit
Navigate to your app in the studio and go to Connections > Embedded Event Sources and add an Incoming Event Source.
Add an Any
variable and name it payload
.
In Identifiers > Key add /data/CaseChangeEvent
. This key is dependent on what change event object you select. For standard objects, the key will follow the pattern of /data/<Standard_Object_Name>ChangeEvent
For more information, see here.
Add an action to the action chain. This action chain will run whenever there is a change on the case record.
Save and publish your Airkit app.
Adding the event to the Airkit Lightning Component
The last step to tie it all together is to add the key to the events property on the lightning component. Add /data/CaseChangeEvent
to the events property.
Save your changes.
You can trigger off platform events from Airkit into Salesforce using Airkit's Outgoing events. This allows you to pass data from Airkit back into Salesforce in real-time.
This example will walk through setting up an event to pass data into a Chatter feed on a case.
Go to Salesforce Setup and navigate to Integrations > Platform Events.
Create a new Platform event and fill in the Platform Event Information.
Save the platform event and you will see the Platform Event Definition Detail. Here you will have an API Name that will be the Identifier Key for the outgoing event in Airkit.
Next, add custom fields on the platform event. These will be the fields to pass data into Salesforce. The field types should also map to the types in Airkit as well when creating the variables on the outgoing event.
Fill in the Custom field information.
Save the custom field. Repeat the process for recordId
.
Once the Custom Fields are created, you will see the API Name that gets generated from the custom fields. These will be used as a part of the Apex trigger and also the Airkit event.
Create a new Apex Trigger and paste in the following snippet:
Some specific callouts:
messageRecieved__e
is the Platform event API name created.
message__c
is the message custom field API name
recordId__c
is the record custom field API name
Save the Apex Trigger.
Navigate to Triggers > App APIs > config endpoint.
Edit the transform data operation that is currently setting the appUrl
and sdkConfig
to include the platform event that was created.
Navigate to the studio and go to Connections > Outgoing Events > Create new Outgoing event.
Click on the event created and add in the Platform Event API name into the Identifiers > Key property.
Then add the variables that map to the custom fields that were created. The names of the variables should correspond to the custom field API Names.
After publishing, you can run this event on any action chain such as a button and pass in values into the inputs to write data from Airkit to the Chatter feed: