SlideShare a Scribd company logo
Agenda of webinar
● Introduction to Continuous Integration (CI) and Continuous Deployment (CD)
● Introduction to Importance and Drawbacks of CI/CD
● Salesforce CI/CD Best Practices
● Implementation of CI/CD on Salesforce
Presenters
Devarshi Chokshi
Salesforce Practice Lead
Subhash Shah
Sr. Solutions Architect
Introduction to AIMDek Technologies
● Software Development Company
● End-to-End Services & Solution Implementations.
● Assist with enterprise portal development, consulting
services, software update & migration, integration services to
transform your business with digital experience.
● 150+ years of cumulative experience, delivered 40+ projects
● Implemented solutions to various industries including
healthcare, automotive, sports & fitness, manufacturing,
eCommerce, education & insurance.
What is Continuous Integration (CI)?
It is the practice of integrating changes from multiple
developers working in an organization and add these
changes to the mainline as soon as possible.
What is Continuous Deployment (CD)?
Continuous deployment to the production given
your code passes all the test cases.
This practice means that no manual intervention
is necessary to deploy to production.
Why CI/CD?
● Avoid checking for broken code or broken
functionality deployed.
● Automatically deploy code to production.
● Increases visibility across the team
● Retain quality
Any Challenges?
● Initial setup can be a challenge
● May be expensive depending on the tool and the
package.
Best Practices for
Implementing CI/CD on
Salesforce
Best Practices
• Use of version control
• Manage source code, files, data and metadata
• Versioning will make code auditing easy
• Commit frequently
• Commit as soon as the development is completed
• Smaller commits help avoiding conflicts later
• Build faster
• Under 10 min
• Larger builds need to be broken down into multiple smaller builds
and executed parallelly
Best Practices
• Smoke test
• Making sure the most critical functionalities work after every build
• Quick and can be run frequently
• Deploy on staging server
• Deploy to an environment which is replica of the production environment
• It will avoid last minute errors or bugs
• Deployment on the production server will be error free.
Traditional Way of Deployment In Salesforce
• Change sets
• Salesforce gives you a tool to move configuration from a Salesforce Sandbox (test) environment through to
another Sandbox or your Production environment.
• The change set tool is very straightforward, however, items need to be added one by one,
it is easy to miss components, and change sets can only be sent between orgs that are affiliated with your
production org.
• Package
• A Salesforce developer can also package up changes to an unmanaged package. This would allow you to
take some code from Salesforce Environment 1 and deploy it to an unrelated Salesforce Environment 2.
• Need to manually create the package, adding in components one step at a time. You then need to upload
the package to Salesforce. You then have to wait whilst that package synchronises across all of the
Salesforce servers/nodes.
Environments
• Sandbox: A virtual space in which new or untested software or
coding can be run securely.
• Dev: the development environment is the set of processes and
programming tools used to create the program or software product.
• QA: QA server is suitable for testing, measuring the quality of the
software/hardware. unit tests/regression tests are meant to run on
this server.
• Staging: A stage or staging environment is an environment for testing
that exactly resembles the production environment
CI/CD Process
1. Developers work on their local filesystem and push their work on
sandbox
2. Any config changes done in the sandbox are pulled down to the local
filesystem
3. Once a unit of work is complete, the developer pushes their work to a
remote repository
4. An automated process watches the “DEV” git branch and pushes new
commits out to “Dev” sandbox
5. When the environment is ready, commits are merged to the “QA”
branch and are pushed to the “QA” sandbox
6. When the environment is ready, commits are merged to the “STAGE”
and are pushed to the “Stage” sandbox
7. When “Stage” is verified then a push to production can happen. This
can either be a manual or automatic deploy.
What is Force Migration Tool?
● It is also known as ANT.
● It is a tool that help you move the metadata between the different salesforce
environments.
Implementation of CI on Salesforce
● Create repository and the branches as per the standards
● Install the eclipse and then open it
● Install force.com plugin
Go to help menu > Install new software > Click Add
https://developer.salesforce.com/media/force-ide/eclipse45
● Access to Detailed Steps,
https://developer.salesforce.com/docs/atlas.en-
us.eclipse.meta/eclipse/ide_install.htm
● Once the installation of force.com is complete, create new
force.com project and then fetch the existing project into the
eclipse
● After fetching the project, commit your changes into the repository
Implementation of CI on Salesforce (Contd.)
• Example of package.xml
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>Account</members>
<name>CustomObject</name>
</types>
<version>43.0</version>
</Package>
Implementing CD on Salesforce
• Create ant-salesforce.jar
• Go to https://developer.salesforce.com/docs/atlas.en-
us.daas.meta/daas/forcemigrationtool_install.htm and
download the zip file
• Unzip the file and copy ant-salesforce.jar file
• Create deploy folder in the project and all the following files:
• Build.xml (https://developer.salesforce.com/docs/atlas.en-
us.daas.meta/daas/forcemigrationtool_deploy.htm)
• Ant-salesforce.jar
Implementing CD on Salesforce
• Example of build.xml (http://ant.apache.org/manual/Tasks/conditions.html)
<project name="Sample usage of Salesforce Ant tasks" basedir="." xmlns:sf="antlib:com.salesforce">
<condition property="sf.username" value=""> <not> <isset property="sf.username"/> </not> </condition>
<condition property="sf.password" value=""> <not> <isset property="sf.password"/> </not> </condition>
<condition property="sf.sessionId" value=""> <not> <isset property="sf.sessionId"/> </not> </condition>
<taskdef resource="com/salesforce/antlib.xml" uri="antlib:com.salesforce">
<classpath>
<pathelement location="ant-salesforce.jar" />
</classpath>
</taskdef>
Implementing CD on Salesforce
• Build.xml (contd.)
<target name="deployCodeRunLocalTests">
<sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}" deployRoot="../src" rollbackOnError="true" testlevel="RunLocalTests"/>
</target>
<target name="deployCodeAndRunAllTests">
<sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}" maxPoll="10" pollWaitMillis="200000" deployRoot="..src"
testLevel="RunAllTestsInOrg" rollbackOnError="true" logType="Debugonly"/>
</target>
<target name="deployCodeAndNoTest">
<sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}"
serverurl="${sf.serverurl}" maxPoll="10" pollWaitMillis="200000" deployRoot="..src"
testLevel="NoTestRun" rollbackOnError="true" logType="Debugonly"/>
</target>
</project>
Implementing CD on Salesforce
• Post adding required files, open TFS and follow the steps:
• Go to build setup of TFS and click New Build
• Select respective repository & branch and click Continue
• Select the Ant
• Select hosted on the Agent pool and provide the build.xml path in process tab
• Now go to the variable - add user name, password and server url
• Open ant and add option -Dsf.username=$(username) -Dsf.password=$(password)
-Dsf.serverurl=$(serverurl)
• Click save and queue – select the respective commit and branch
• After the build is made, check the deployment status on salesforce
• Trigger the continuous build by enabling continuous integration in the trigger section
If we don’t get to your question during today’s webinar, we will
be sure to follow up afterward over the mail.
Q&A Session
Thank you!
Follow us on our social accounts and feel free to reach out at
hello@aimdek.com
INDIA
AIMDek Technologies Pvt. Ltd.
203, Shivam Complex, Science City Road, Sola, Ahmedabad,
380060, India
Sales: sales@aimdek.com | General: hello@aimdek.com
+91 78747 88766 | +1 84474 44423
AIMDek Technologies Inc.
7030 Woodbine Avenue, Suite 500, Markham, Ontario, L3R 6G2,
Canada
Sales: sales@aimdek.com | General: hello@aimdek.com
+1 64724 36116
CANADA

More Related Content

What's hot

Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Sam Garforth
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
SlideTeam
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
Salesforce Developers
 
Salesforce: CI,CD & CT
Salesforce: CI,CD & CTSalesforce: CI,CD & CT
Salesforce: CI,CD & CT
Agile Testing Alliance
 
Salesforce DevOps using GitHub Action
Salesforce DevOps using GitHub ActionSalesforce DevOps using GitHub Action
Salesforce DevOps using GitHub Action
Sakthivel Madesh
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
Ali Akbar
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
Batyr Nuryyev
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
Alessandro Scardova
 
Manage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkManage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance Framework
Salesforce Developers
 
Release & Change management in salesforce
Release & Change management in salesforceRelease & Change management in salesforce
Release & Change management in salesforce
Kalyan Lanka ☁
 
Session 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCESession 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCE
SmritiSharan1
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
MuleSoft Meetup
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
Steve Mactaggart
 
Salesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And DeploymentSalesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And Deployment
Harshala Shewale ☁
 
Feature Toggle
Feature ToggleFeature Toggle
Feature Toggle
Bryan Liu
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
Salesforce Developers
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
Juan Fabian
 
Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)
Salesforce Partners
 
First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...
First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...
First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...
Anna Loughnan Colquhoun
 
Azure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala MeetupAzure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala Meetup
Guillermo Zepeda Selman
 

What's hot (20)

Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Salesforce: CI,CD & CT
Salesforce: CI,CD & CTSalesforce: CI,CD & CT
Salesforce: CI,CD & CT
 
Salesforce DevOps using GitHub Action
Salesforce DevOps using GitHub ActionSalesforce DevOps using GitHub Action
Salesforce DevOps using GitHub Action
 
Salesforce.com Sandbox management
Salesforce.com Sandbox management Salesforce.com Sandbox management
Salesforce.com Sandbox management
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
 
Manage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkManage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance Framework
 
Release & Change management in salesforce
Release & Change management in salesforceRelease & Change management in salesforce
Release & Change management in salesforce
 
Session 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCESession 1: INTRODUCTION TO SALESFORCE
Session 1: INTRODUCTION TO SALESFORCE
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Salesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And DeploymentSalesforce Flawless Packaging And Deployment
Salesforce Flawless Packaging And Deployment
 
Feature Toggle
Feature ToggleFeature Toggle
Feature Toggle
 
Best Practices for Successful Deployment
Best Practices for Successful DeploymentBest Practices for Successful Deployment
Best Practices for Successful Deployment
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)Choosing the Right Demo Environment (Salesforce Partners)
Choosing the Right Demo Environment (Salesforce Partners)
 
First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...
First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...
First Steps to Salesforce Release Management & DevOps [Salesforce User Group,...
 
Azure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala MeetupAzure DevOps - Azure Guatemala Meetup
Azure DevOps - Azure Guatemala Meetup
 

Similar to Best practices for implementing CI/CD on Salesforce

Salesforce cicd integration a quick guide
Salesforce cicd integration a quick guideSalesforce cicd integration a quick guide
Salesforce cicd integration a quick guide
Katy Slemon
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
Sunil Dalal
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
Softmart
 
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMPráticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Marcelo Sousa Ancelmo
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Steve Mercier
 
Salesforce DX for Admin v2
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2
Thierry TROUIN ☁
 
Salesforce DX for admin
Salesforce DX for adminSalesforce DX for admin
Salesforce DX for admin
Thierry TROUIN ☁
 
Tech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración ContinuaTech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración Continua
Globant
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
Masas Dani
 
Visual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools Walkthrough
Angela Dugan
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
Eklove Mohan
 
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
Jitendra Bafna
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
Mert Çalışkan
 
Azure DevOps Tasks.pptx
 Azure DevOps Tasks.pptx Azure DevOps Tasks.pptx
Azure DevOps Tasks.pptx
PrasanthOneness
 
PowerBreakfast #005 - Why DSC, NOW?
PowerBreakfast #005 - Why DSC, NOW?PowerBreakfast #005 - Why DSC, NOW?
PowerBreakfast #005 - Why DSC, NOW?
Milton Goh
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
Moataz Mahmoud
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformation
Xebia India
 
Code Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsCode Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application Migrations
Dana Luther
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Chris Weldon
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
Abdullah al Mamun
 

Similar to Best practices for implementing CI/CD on Salesforce (20)

Salesforce cicd integration a quick guide
Salesforce cicd integration a quick guideSalesforce cicd integration a quick guide
Salesforce cicd integration a quick guide
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Serena Release Management approach and solutions
Serena Release Management approach and solutionsSerena Release Management approach and solutions
Serena Release Management approach and solutions
 
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALMPráticas, Técnicas e Ferramentas para Continuous Delivery com ALM
Práticas, Técnicas e Ferramentas para Continuous Delivery com ALM
 
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as CodeConfoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
Confoo-Montreal-2016: Controlling Your Environments using Infrastructure as Code
 
Salesforce DX for Admin v2
Salesforce DX for Admin v2Salesforce DX for Admin v2
Salesforce DX for Admin v2
 
Salesforce DX for admin
Salesforce DX for adminSalesforce DX for admin
Salesforce DX for admin
 
Tech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración ContinuaTech Insiders Salesforce: SFDX e Integración Continua
Tech Insiders Salesforce: SFDX e Integración Continua
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Visual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools Walkthrough
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
MuleSoft Nashik Virtual Meetup#4 - Implementing CI/CD pipeline for deploying ...
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
Azure DevOps Tasks.pptx
 Azure DevOps Tasks.pptx Azure DevOps Tasks.pptx
Azure DevOps Tasks.pptx
 
PowerBreakfast #005 - Why DSC, NOW?
PowerBreakfast #005 - Why DSC, NOW?PowerBreakfast #005 - Why DSC, NOW?
PowerBreakfast #005 - Why DSC, NOW?
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformation
 
Code Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsCode Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application Migrations
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 

More from AIMDek Technologies

Unveiling Salesforce EinsteinGPT
Unveiling Salesforce EinsteinGPTUnveiling Salesforce EinsteinGPT
Unveiling Salesforce EinsteinGPT
AIMDek Technologies
 
Medical-Devices
Medical-DevicesMedical-Devices
Medical-Devices
AIMDek Technologies
 
Patient Centric Innovations
Patient Centric InnovationsPatient Centric Innovations
Patient Centric Innovations
AIMDek Technologies
 
Einstein Bots
 Einstein Bots Einstein Bots
Einstein Bots
AIMDek Technologies
 
What is RabbitMQ ?
What is RabbitMQ ?What is RabbitMQ ?
What is RabbitMQ ?
AIMDek Technologies
 
Introduction to Einstein Bots
Introduction to Einstein BotsIntroduction to Einstein Bots
Introduction to Einstein Bots
AIMDek Technologies
 
Design REST APIs using RAML
Design REST APIs using RAMLDesign REST APIs using RAML
Design REST APIs using RAML
AIMDek Technologies
 
Gamification in UX
Gamification in UXGamification in UX
Gamification in UX
AIMDek Technologies
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing framework
AIMDek Technologies
 
Introduction to Blockchain
Introduction to BlockchainIntroduction to Blockchain
Introduction to Blockchain
AIMDek Technologies
 
AWS Summit : Digital Transformation and Innovation with Cloud
AWS Summit : Digital Transformation and Innovation with CloudAWS Summit : Digital Transformation and Innovation with Cloud
AWS Summit : Digital Transformation and Innovation with Cloud
AIMDek Technologies
 
Concepts of business intelligence
Concepts of business intelligenceConcepts of business intelligence
Concepts of business intelligence
AIMDek Technologies
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
AIMDek Technologies
 
Microsoft: Multi-tenant SaaS with Azure
Microsoft: Multi-tenant SaaS with AzureMicrosoft: Multi-tenant SaaS with Azure
Microsoft: Multi-tenant SaaS with Azure
AIMDek Technologies
 
What is Serverless Computing?
What is Serverless Computing?What is Serverless Computing?
What is Serverless Computing?
AIMDek Technologies
 
Introduction to Artificial Intelligence and Machine Learning with Python
Introduction to Artificial Intelligence and Machine Learning with Python Introduction to Artificial Intelligence and Machine Learning with Python
Introduction to Artificial Intelligence and Machine Learning with Python
AIMDek Technologies
 
Leveraging smart technologies to transform the new challenging healthcare ind...
Leveraging smart technologies to transform the new challenging healthcare ind...Leveraging smart technologies to transform the new challenging healthcare ind...
Leveraging smart technologies to transform the new challenging healthcare ind...
AIMDek Technologies
 
Enabling intelligence for cr ms _ salesforce einstein
 Enabling intelligence for cr ms _ salesforce einstein Enabling intelligence for cr ms _ salesforce einstein
Enabling intelligence for cr ms _ salesforce einstein
AIMDek Technologies
 
Liferay for Healthcare IT Solutions
Liferay for Healthcare IT Solutions  Liferay for Healthcare IT Solutions
Liferay for Healthcare IT Solutions
AIMDek Technologies
 
Kotlin- Programming Language For Modern Multi-Platform Applications
Kotlin- Programming Language For Modern Multi-Platform ApplicationsKotlin- Programming Language For Modern Multi-Platform Applications
Kotlin- Programming Language For Modern Multi-Platform Applications
AIMDek Technologies
 

More from AIMDek Technologies (20)

Unveiling Salesforce EinsteinGPT
Unveiling Salesforce EinsteinGPTUnveiling Salesforce EinsteinGPT
Unveiling Salesforce EinsteinGPT
 
Medical-Devices
Medical-DevicesMedical-Devices
Medical-Devices
 
Patient Centric Innovations
Patient Centric InnovationsPatient Centric Innovations
Patient Centric Innovations
 
Einstein Bots
 Einstein Bots Einstein Bots
Einstein Bots
 
What is RabbitMQ ?
What is RabbitMQ ?What is RabbitMQ ?
What is RabbitMQ ?
 
Introduction to Einstein Bots
Introduction to Einstein BotsIntroduction to Einstein Bots
Introduction to Einstein Bots
 
Design REST APIs using RAML
Design REST APIs using RAMLDesign REST APIs using RAML
Design REST APIs using RAML
 
Gamification in UX
Gamification in UXGamification in UX
Gamification in UX
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing framework
 
Introduction to Blockchain
Introduction to BlockchainIntroduction to Blockchain
Introduction to Blockchain
 
AWS Summit : Digital Transformation and Innovation with Cloud
AWS Summit : Digital Transformation and Innovation with CloudAWS Summit : Digital Transformation and Innovation with Cloud
AWS Summit : Digital Transformation and Innovation with Cloud
 
Concepts of business intelligence
Concepts of business intelligenceConcepts of business intelligence
Concepts of business intelligence
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Microsoft: Multi-tenant SaaS with Azure
Microsoft: Multi-tenant SaaS with AzureMicrosoft: Multi-tenant SaaS with Azure
Microsoft: Multi-tenant SaaS with Azure
 
What is Serverless Computing?
What is Serverless Computing?What is Serverless Computing?
What is Serverless Computing?
 
Introduction to Artificial Intelligence and Machine Learning with Python
Introduction to Artificial Intelligence and Machine Learning with Python Introduction to Artificial Intelligence and Machine Learning with Python
Introduction to Artificial Intelligence and Machine Learning with Python
 
Leveraging smart technologies to transform the new challenging healthcare ind...
Leveraging smart technologies to transform the new challenging healthcare ind...Leveraging smart technologies to transform the new challenging healthcare ind...
Leveraging smart technologies to transform the new challenging healthcare ind...
 
Enabling intelligence for cr ms _ salesforce einstein
 Enabling intelligence for cr ms _ salesforce einstein Enabling intelligence for cr ms _ salesforce einstein
Enabling intelligence for cr ms _ salesforce einstein
 
Liferay for Healthcare IT Solutions
Liferay for Healthcare IT Solutions  Liferay for Healthcare IT Solutions
Liferay for Healthcare IT Solutions
 
Kotlin- Programming Language For Modern Multi-Platform Applications
Kotlin- Programming Language For Modern Multi-Platform ApplicationsKotlin- Programming Language For Modern Multi-Platform Applications
Kotlin- Programming Language For Modern Multi-Platform Applications
 

Recently uploaded

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 

Best practices for implementing CI/CD on Salesforce

  • 1.
  • 2. Agenda of webinar ● Introduction to Continuous Integration (CI) and Continuous Deployment (CD) ● Introduction to Importance and Drawbacks of CI/CD ● Salesforce CI/CD Best Practices ● Implementation of CI/CD on Salesforce
  • 3. Presenters Devarshi Chokshi Salesforce Practice Lead Subhash Shah Sr. Solutions Architect
  • 4. Introduction to AIMDek Technologies ● Software Development Company ● End-to-End Services & Solution Implementations. ● Assist with enterprise portal development, consulting services, software update & migration, integration services to transform your business with digital experience. ● 150+ years of cumulative experience, delivered 40+ projects ● Implemented solutions to various industries including healthcare, automotive, sports & fitness, manufacturing, eCommerce, education & insurance.
  • 5. What is Continuous Integration (CI)? It is the practice of integrating changes from multiple developers working in an organization and add these changes to the mainline as soon as possible.
  • 6. What is Continuous Deployment (CD)? Continuous deployment to the production given your code passes all the test cases. This practice means that no manual intervention is necessary to deploy to production.
  • 7. Why CI/CD? ● Avoid checking for broken code or broken functionality deployed. ● Automatically deploy code to production. ● Increases visibility across the team ● Retain quality
  • 8. Any Challenges? ● Initial setup can be a challenge ● May be expensive depending on the tool and the package.
  • 9. Best Practices for Implementing CI/CD on Salesforce
  • 10. Best Practices • Use of version control • Manage source code, files, data and metadata • Versioning will make code auditing easy • Commit frequently • Commit as soon as the development is completed • Smaller commits help avoiding conflicts later • Build faster • Under 10 min • Larger builds need to be broken down into multiple smaller builds and executed parallelly
  • 11. Best Practices • Smoke test • Making sure the most critical functionalities work after every build • Quick and can be run frequently • Deploy on staging server • Deploy to an environment which is replica of the production environment • It will avoid last minute errors or bugs • Deployment on the production server will be error free.
  • 12. Traditional Way of Deployment In Salesforce • Change sets • Salesforce gives you a tool to move configuration from a Salesforce Sandbox (test) environment through to another Sandbox or your Production environment. • The change set tool is very straightforward, however, items need to be added one by one, it is easy to miss components, and change sets can only be sent between orgs that are affiliated with your production org. • Package • A Salesforce developer can also package up changes to an unmanaged package. This would allow you to take some code from Salesforce Environment 1 and deploy it to an unrelated Salesforce Environment 2. • Need to manually create the package, adding in components one step at a time. You then need to upload the package to Salesforce. You then have to wait whilst that package synchronises across all of the Salesforce servers/nodes.
  • 13. Environments • Sandbox: A virtual space in which new or untested software or coding can be run securely. • Dev: the development environment is the set of processes and programming tools used to create the program or software product. • QA: QA server is suitable for testing, measuring the quality of the software/hardware. unit tests/regression tests are meant to run on this server. • Staging: A stage or staging environment is an environment for testing that exactly resembles the production environment
  • 14. CI/CD Process 1. Developers work on their local filesystem and push their work on sandbox 2. Any config changes done in the sandbox are pulled down to the local filesystem 3. Once a unit of work is complete, the developer pushes their work to a remote repository 4. An automated process watches the “DEV” git branch and pushes new commits out to “Dev” sandbox 5. When the environment is ready, commits are merged to the “QA” branch and are pushed to the “QA” sandbox 6. When the environment is ready, commits are merged to the “STAGE” and are pushed to the “Stage” sandbox 7. When “Stage” is verified then a push to production can happen. This can either be a manual or automatic deploy.
  • 15. What is Force Migration Tool? ● It is also known as ANT. ● It is a tool that help you move the metadata between the different salesforce environments.
  • 16. Implementation of CI on Salesforce ● Create repository and the branches as per the standards ● Install the eclipse and then open it ● Install force.com plugin Go to help menu > Install new software > Click Add https://developer.salesforce.com/media/force-ide/eclipse45 ● Access to Detailed Steps, https://developer.salesforce.com/docs/atlas.en- us.eclipse.meta/eclipse/ide_install.htm ● Once the installation of force.com is complete, create new force.com project and then fetch the existing project into the eclipse ● After fetching the project, commit your changes into the repository
  • 17. Implementation of CI on Salesforce (Contd.) • Example of package.xml <?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>Account</members> <name>CustomObject</name> </types> <version>43.0</version> </Package>
  • 18. Implementing CD on Salesforce • Create ant-salesforce.jar • Go to https://developer.salesforce.com/docs/atlas.en- us.daas.meta/daas/forcemigrationtool_install.htm and download the zip file • Unzip the file and copy ant-salesforce.jar file • Create deploy folder in the project and all the following files: • Build.xml (https://developer.salesforce.com/docs/atlas.en- us.daas.meta/daas/forcemigrationtool_deploy.htm) • Ant-salesforce.jar
  • 19. Implementing CD on Salesforce • Example of build.xml (http://ant.apache.org/manual/Tasks/conditions.html) <project name="Sample usage of Salesforce Ant tasks" basedir="." xmlns:sf="antlib:com.salesforce"> <condition property="sf.username" value=""> <not> <isset property="sf.username"/> </not> </condition> <condition property="sf.password" value=""> <not> <isset property="sf.password"/> </not> </condition> <condition property="sf.sessionId" value=""> <not> <isset property="sf.sessionId"/> </not> </condition> <taskdef resource="com/salesforce/antlib.xml" uri="antlib:com.salesforce"> <classpath> <pathelement location="ant-salesforce.jar" /> </classpath> </taskdef>
  • 20. Implementing CD on Salesforce • Build.xml (contd.) <target name="deployCodeRunLocalTests"> <sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" deployRoot="../src" rollbackOnError="true" testlevel="RunLocalTests"/> </target> <target name="deployCodeAndRunAllTests"> <sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="10" pollWaitMillis="200000" deployRoot="..src" testLevel="RunAllTestsInOrg" rollbackOnError="true" logType="Debugonly"/> </target> <target name="deployCodeAndNoTest"> <sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="10" pollWaitMillis="200000" deployRoot="..src" testLevel="NoTestRun" rollbackOnError="true" logType="Debugonly"/> </target> </project>
  • 21. Implementing CD on Salesforce • Post adding required files, open TFS and follow the steps: • Go to build setup of TFS and click New Build • Select respective repository & branch and click Continue • Select the Ant • Select hosted on the Agent pool and provide the build.xml path in process tab • Now go to the variable - add user name, password and server url • Open ant and add option -Dsf.username=$(username) -Dsf.password=$(password) -Dsf.serverurl=$(serverurl) • Click save and queue – select the respective commit and branch • After the build is made, check the deployment status on salesforce • Trigger the continuous build by enabling continuous integration in the trigger section
  • 22. If we don’t get to your question during today’s webinar, we will be sure to follow up afterward over the mail. Q&A Session
  • 23. Thank you! Follow us on our social accounts and feel free to reach out at hello@aimdek.com
  • 24. INDIA AIMDek Technologies Pvt. Ltd. 203, Shivam Complex, Science City Road, Sola, Ahmedabad, 380060, India Sales: sales@aimdek.com | General: hello@aimdek.com +91 78747 88766 | +1 84474 44423 AIMDek Technologies Inc. 7030 Woodbine Avenue, Suite 500, Markham, Ontario, L3R 6G2, Canada Sales: sales@aimdek.com | General: hello@aimdek.com +1 64724 36116 CANADA