SalesforceDX : Explaining Scratch Org Definition File

Scratch Org definition file is getting used to create the shape of your scratch org. I would say it is the blueprint of your scratch org. You can use this definition file to create multiple scratch org from your repository.

Scratch org definitions come from JSON text files that are stored in your project's repository and directory structure. When an SFDX project is first created, it comes with a config/project-scratch-def.json file that defines an extremely basic org "shape" for an empty scratch org.
That default scratch org likely looks nothing like your production org. You can use it for developing functionality that isn't dependent on your org's settings, or you can customize it using the settings that are available as part of the configuration file, or you can script your process to perform Metadata API deploys or other API actions to control settings that DX does not support yet.
Ideally, the combination of your DX source code (including all your programmatic and declarative customization) with your scratch org definition gets you close enough to Prod instance.

This definition file contains three main important information about your scratch org.
  • Which Edition? As of Winter'19, it supports Developer, Enterprise, Group or Professional
  • Add-on features: Functionalities you want to include while creating the scratch org like communities, StateAndCountryPicklist, LiveAgent etc.
  • Settings: Org and Feature settings used to configure Salesforce products, such as nameSettings, ideaSettings, caseSettings, omniChannelSettings.
Let's dig into a Scratch Org definition file now -

    "orgName": "Sudipta Deb Company",
    "username": "sudipta-test-scratch@sudipta.com",
    "adminEmail": "sudipta.deb@gmail.com",
    "description": "This is the scratch org created by Sudipta Deb",
    "edition": "Enterprise",
    "features": ["Communities", "StateAndCountryPicklist", "LiveAgent"],
    "settings": {
        "orgPreferenceSettings": {
            "s1DesktopEnabled": true,
            "networksEnabled": true,
            "chatterEnabled": true
        "nameSettings": {
            "enableMiddleName": true,
            "enableNameSuffix": true
        "quoteSettings": {
            "enableQuote": true
        "liveAgentSettings": {
            "enableLiveAgent": true
        "omniChannelSettings": {
            "enableOmniChannel": true
        "ideasSettings": {
            "enableIdeas": true
        "caseSettings": {
            "emailToCase": true

Now let me explain different parts of this definition file -
  • orgName:  It is just giving a name of your organization in the scratch org. 
  • username: username of the scratch org user
  • adminEmail: Email address of the Dev Hub user making the scratch org creation request.
  • edition: provides the Salesforce edition of the scratch org.
  • description: Giving description of the scratch org. It's a good practice to provide description.
  • features: In my example, I am enabling communities, StateAndCountryPicklist, LiveAgent in the scratch org.

Action Plan in Financial Services Cloud || Winter '19 New Feature

In Winter '19 release, Salesforce introduced Action Plans for Financial Services Cloud. It captures repeatable tasks in templates and then automate the task sequences with an action plan.
Example: Processing Loan application, Customer on-boarding process etc. It will also give you the option to create reports and dashboards to monitor progress and ensure compliance.

It consists of three parts -
Action Plan Template: Power consistent customer experiences with configurable task templates.
Process Automation: Increase productivity by automatically generating tasks with due dates and role based assignment.
Plan Execution: Drive collaboration and complaint task completion with analytics and enforcement of required tasks.

Let's explain in details -

Action Plan Template

An action plan template is nothing but a list of tasks to complete a business process. In a template, each task is given a priority, the deadlines (the number of days in which it should be completed - data offset), and who is responsible. Then this action plan template is used to create action plans with each task assigned to a user with a completion date.

Below picture will give you a great view of Action Plan Template and Action Plan -

Now let's start creating one Action Plan:


  • Permission Set: You need to assign permission set - ActionPlans to the users. Without this permission set, you will not be able to assign action plan task to those users.
  • Extra Permission: You can provide below standard object permission so that users can edit and delete action plans-
    • Action Plan: Read, Create, Edit and Delete.
    • Action Plan Template: Read, Create, Edit, Delete and View All
  • Status Field Required: This is required to accurately track and report on action plans based on their status. Set the Action Plan Status as mandatory field in Action Plan layout.
  • Action Plan List to Account  Page Layout: Add action plan related list in Account Page layout.
  • Action Plan Lightning Component: Add the Action Plans List - Financial Services Cloud Lightning Component in the page in a separate tab.
  • Setup Nonwork days: Use this option to skip nonwork days when setting up the task completion dates. To do that, you can set the Business Hours and setup company-wide holidays.

Use Case

We will use Action Plan Template to automate new credit card opening processes for financial institute XYZ and then use the template to create the action plan for one of the account. 

Action Plan Template

Let's start by creating the action template and inside the action template below are the tasks -

Against each task, we have the option of whom to assign the task - we have three options (Action Plan creators, any other user, or the account team member role). We can define the number of days to complete the task and priority. Here is the view -

Finally we can publish the action plan template.

Action Plan

Now with action plan template published, we can login to any account and create the new plan using action plan template. Here is the action plan creation for - XYZ Visa Credit Card 

What happened at the backend, Salesforce has created all the tasks and assigned to owners based on the task configuration. We can see the same from account's task view.



Follow Me

Enter your email address:

Delivered by FeedBurner

Popular Posts


Salesforce (105) Apex (45) admin (27) visualforce (21) ADM (20) dev 501 (19) integration (18) learn salesforce (18) 501 (16) SOAP (13) lightning (12) tutorial (11) Certification. (9) javascript (9) Certification (7) Trigger (7) test class (7) unit testing (7) Advanced Admin (6) Sharing and Visibility (6) design pattern (6) developer (6) report (6) salesforce release (6) security (6) trailhead (6) Advanced Apex (5) Kitchener Developer Group (5) New Features (5) SOQL (5) css (5) dashboard (5) debug (5) formula (5) mobile (5) service cloud (5) solution management (5) use case (5) JSON (4) Lightning Experience (4) Salesforce DX (4) WebSphere (4) best practice (4) cast iron (4) component (4) deployment (4) github (4) html (4) polymer (4) profiles (4) responsive (4) tdd (4) ui (4) Architect (3) Live Chat (3) Online Event (3) Opportunity (3) Performance (3) Products (3) REST (3) Role (3) Sales Cloud (3) Scratch Org (3) Study Notes. (3) Summer15 (3) Tips (3) Web Technology (3) dynamic apex (3) event (3) license (3) map (3) mapbox (3) singleton (3) version controlling (3) Asynchronous callout (2) Bulkify (2) Data Architecture and Management Certification (2) Devops (2) Distributed Version Controlling (2) ES6 (2) Eclipse (2) Einstein (2) Enterprise Territory Management (2) Financial Services Cloud (2) Force.com IDE (2) Governor Limit (2) Groups (2) IBM (2) Implicit Sharing (2) JourneyToCTA (2) Kitchener User Group (2) Lightning Design System (2) Live Agent (2) Metadata (2) PD II (2) Price Book (2) SOSL (2) Sharing (2) Spring 15 (2) Summer17 (2) Territory (2) ant (2) automation tool (2) basic (2) chatter (2) coding (2) communication (2) console (2) controller (2) documentation (2) flow (2) git (2) jquery (2) logging (2) object (2) permission (2) process builder (2) release (2) salesforce1 (2) strategy (2) xml (2) Action Plan (1) Action Plan Template (1) Advanced Currency (1) Agent Productivity (1) Analytics (1) Apex Sharing (1) Arrow (1) Asynchronous Apex (1) Aura Framework (1) Batch (1) Bots (1) Browser (1) Bulk data load (1) CTA (1) Calendar (1) Canon (1) Case Management (1) Celebration (1) Cheat Sheet (1) Classic (1) Community (1) Confetti (1) Constructor (1) Contact Center (1) Continuation (1) Continuous Integration (1) Convert (1) Cookie (1) Custom Metadata (1) Custom Object (1) Customer (1) Dated Exchange Rate (1) Decorator Design Pattern (1) Dev Hub (1) Diwali (1) Email (1) FSC (1) Function (1) Future (1) Goals (1) Guide (1) Household (1) Ideas (1) Improvement (1) KPIs (1) Large Data Volume (1) LastModifiedDate (1) Lightning Web Component (1) Manage Currencies (1) Manual Sharing (1) Metrics (1) Multi Currency (1) New (1) New Feature (1) OOPS (1) OWD (1) Omni-Channel (1) Partner (1) Person Account (1) Photo (1) Pipeline (1) Platform Developer I (1) Platform Developer II (1) Presentation (1) Product Schedule (1) Profile (1) Promise (1) Prototype (1) Public Site (1) Query Plan (1) Queueable (1) QuickReference (1) Reports (1) Retrieve (1) Role Hierarchy (1) SFDX (1) Salesforce Optimizer (1) Schedule (1) Session (1) Sharing Rule (1) Sharing Sets (1) Site (1) Skills (1) Snap-ins (1) Spring 17 (1) Summer14 (1) Summer16 (1) Summer19 (1) Switch (1) SystemModStamp (1) User License (1) Users (1) Webservice (1) Winter'15 (1) Winter'17 (1) access (1) actionFunction (1) actionPoller (1) actionRegion (1) actionSupport (1) agile (1) app (1) approval process (1) aura (1) awesome (1) backup (1) bitbucket (1) book (1) campaign (1) change set (1) code (1) code coverage (1) configuration (1) csv (1) custom button (1) custom settings (1) customization (1) data loader (1) database (1) delegate Admin (1) describe (1) dom (1) dreamforce (1) duplicate (1) dynamic (1) equals (1) error (1) field-level security (1) folder (1) ftp (1) generic (1) gift (1) global describe (1) hashcode (1) import wizard (1) jenkins (1) keynote (1) long running requests (1) monitoring (1) mysql (1) page layout (1) personal (1) power of one (1) record type (1) relationship (1) request (1) review (1) sub-tab (1) tab (1) username (1) visual workflow (1) workflow (1)

Total Subscribers

Total Pageviews