CommunityDevOps ExchangePartners
Articles
5/8/2023
10 minutes

How to schedule a Function and Job Template in DevOps: A Step-by-Step Guide

Written by
David Venegas
Table of contents

Whether you created a new function or Job Template to automate a task in your DevOps process, or installed a function based solution from the DevOps Exchange, you can now schedule it to run automatically at a specified time and frequency. 

In this post you will learn how to schedule a function and job template to run automatically, saving you time from manually executing them.

An example use case is to automate the cleanup of git branches which is a solution available in the DevOps Exchange. This solution includes a function that you can schedule on a weekly basis. For this use case we will leverage a scheduled flow, job template and the Actions API. 

Let’s take a look at how to set up the scheduling!

Pre-requisites

  1. Have a Copado API Key in Account Summary tab
  2. Have a Job Template
  3. The cleanup git branches solution includes a standalone function, you’ll need to create a Job Template and then add a Function step by selecting the branch cleanup function.

Creating the Flow

1. Create a Copado Actions API Key

The execution of the job template requires an authentication process. Go ahead and create a Copado API Key to enable secure access to schedule the execution.

  • Navigate to Copado Actions API tab
  • Click on New
  • Select Run Job Template action
  • Set expiration to 365 days
  • Click Save
add new webhook API key

2. Register the Copado API Endpoint for callouts

The job template scheduled execution requires doing a callout to the Copado API and flows enforce that callouts happen only with authorized endpoints. Go ahead and create a named credential to authorize the Copado API Endpoint.

  • Navigate to Setup -> Named Credentials
  • Click on New
  • Enter a name, like Copado API Credential
  • Enter your Copado Instance URL. Navigate to Account Summary tab to copy it
  • For example: https://app-api.copado.com
  • Leave the identity type as Anonymous
  • Click Save
Register the Copado API Endpoint for callouts

3. Create the Scheduled Flow

The scheduled flow enables you to specify a time and frequency in which the flow needs to be executed.

  • Navigate to Setup -> Flows
  • Click on New Flow
  • Select Scheduled Triggered Flow option
  • Click Create
Create the Scheduled Flow
  • Click Set Schedule
  • Specify the start date and start time
  • Specify the frequency


The flow will look like this when finished with the process

Flow Builder

4. Define the scheduled execution parameters

To execute the job template, we’ll use the Copado Actions REST API endpoint. This requires a set of parameters, like for example which job template should be executed and what is the API Key for authentication. We’ll store the parameters in a formula resource, encode it and then pass it as a parameter when executing the job template in a later step.

  • Click on New Resource
  • Select type Text Template
  • Enter a name, like JSONPayload
  • Select View as Plain Text
  • Copy and paste the payload or body
Define the scheduled execution parameters
  • Enter the job template API Name. This can be found in the job template record API Name field
  • The payload parameter runAfterInstantiation must be equal to true

The REST API endpoint’s GET method requires that the payload is sent as URL Encoded. We’ll create a new formula resource to encode the payload.

  • Click on New Resource
  • Select type Formula
  • Enter a name, like Encoded Payload
  • Use the URLEncode function to encode the payload variable
Edit Formula

5. Add New Action

  • Click on the plus icon in the flow diagram and select Action
  • In the modal, click on HTTP Callout Action
  • Enter a name with no spaces, like CopadoActionsAPI
  • Select the Named Credential
  • Click Next
New HTTP callout
  • Enter a name for the endpoint, like Execute Job Template
  • Select HTTP Method Get
  • Copy and paste the Run Job Template endpoint from the API Guide
  • /json/v1/webhook/mcwebhook/RunJobTemplate
Copado DevOps Action API
  • Add 2 query parameters
  • webhookKey (type String)
  • Payload (type String)
Ad 2 query parameters in NEW HTTP Callout
  • Click on Provide Sample Response
  • Copy and paste the 200 response from API Guide
  • Replace any null values with empty string “”. This is only applicable with the Flow HTTP action. If you’re testing the API with other tools, continue to use null.
  • If using Copado version v20.14 or later, the JSON response is exactly as in the screenshot. If using an older version, the response is inside an array - starts with an opening bracket [ and finishes with a closing bracket ].
Copy and paste the 200 response from API Guide
  • Click Done to close the Response modal
  • Click Done again to close the HTTP service modal
  • Next, enter a name for the action, like Execute Job Template
  • Copy the key from the Copado Actions API tab and paste it in the webhookKey parameter
  • Select the encoded payload variable in the payload parameter
Edit Action
  • Click Done to close the modal. And you’re done! This is how the finished flow looks like:
Flow Builder

6. Test the Flow Execution

Confirm that the flow configuration is correct by testing the execution in debug mode.

  • Click Debug
  • Click Run on the Debug Flow modal
run debug flow
  • Confirm response is successful 200
Debug Details

Conclusion

Scheduling a Function and Job Template execution is straightforward. By leveraging flows, you also have the option to implement advanced use cases like, for example, querying and updating records before and after executing the job template.

If you would like to inspect the scheduled executions, simply navigate to the Job Template record and select the Job Executions subtab:

Job template test

Interested in learning more? Check out these resources

  1. Copado Functions module 
  2. Copado Extension Builder Certification
  3. Copado Extension Discussion Group

Book a demo

About The Author

Director, AI and Data Program

David Venegas is a product leader working with Copado’s R&D team to bring AI and data-powered solutions to market.

Copado Launches Copado Explorer to Simplify and Streamline Testing on Salesforce
Exploring Top Cloud Automation Testing Tools
Master Salesforce DevOps with Copado Robotic Testing
Exploratory Testing vs. Automated Testing: Finding the Right Balance
A Guide to Salesforce Source Control
A Guide to DevOps Branching Strategies
Family Time vs. Mobile App Release Days: Can Test Automation Help Us Have Both?
How to Resolve Salesforce Merge Conflicts: A Guide
Copado Expands Beta Access to CopadoGPT for All Customers, Revolutionizing SaaS DevOps with AI
Is Mobile Test Automation Unnecessarily Hard? A Guide to Simplify Mobile Test Automation
From Silos to Streamlined Development: Tarun’s Tale of DevOps Success
Simplified Scaling: 10 Ways to Grow Your Salesforce Development Practice
What is Salesforce Incident Management?
What Is Automated Salesforce Testing? Choosing the Right Automation Tool for Salesforce
Copado Appoints Seasoned Sales Executive Bob Grewal to Chief Revenue Officer
Business Benefits of DevOps: A Guide
Copado Brings Generative AI to Its DevOps Platform to Improve Software Development for Enterprise SaaS
Celebrating 10 Years of Copado: A Decade of DevOps Evolution and Growth
Copado Celebrates 10 Years of DevOps for Enterprise SaaS Solutions
5 Reasons Why Copado = Less Divorces for Developers
What is DevOps? Build a Successful DevOps Ecosystem with Copado’s Best Practices
Scaling App Development While Meeting Security Standards
5 Data Deploy Features You Don’t Want to Miss
Top 5 Reasons I Choose Copado for Salesforce Development
How to Elevate Customer Experiences with Automated Testing
Getting Started With Value Stream Maps
Copado and nCino Partner to Provide Proven DevOps Tools for Financial Institutions
Unlocking Success with Copado: Mission-Critical Tools for Developers
How Automated Testing Enables DevOps Efficiency
How to Keep Salesforce Sandboxes in Sync
How to Switch from Manual to Automated Testing with Robotic Testing
Best Practices to Prevent Merge Conflicts with Copado 1 Platform
Software Bugs: The Three Causes of Programming Errors
How Does Copado Solve Release Readiness Roadblocks?
Why I Choose Copado Robotic Testing for my Test Automation
How to schedule a Function and Job Template in DevOps: A Step-by-Step Guide
Delivering Quality nCino Experiences with Automated Deployments and Testing
Best Practices Matter for Accelerated Salesforce Release Management
Maximize Your Code Quality, Security and performance with Copado Salesforce Code Analyzer
Upgrade Your Test Automation Game: The Benefits of Switching from Selenium to a More Advanced Platform
Three Takeaways From Copa Community Day
Cloud Native Applications: 5 Characteristics to Look for in the Right Tools
Using Salesforce nCino Architecture for Best Testing Results
How To Develop A Salesforce Testing Strategy For Your Enterprise
What Is Multi Cloud: Key Use Cases and Benefits for Enterprise Settings
5 Steps to Building a Salesforce Center of Excellence for Government Agencies
Salesforce UI testing: Benefits to Staying on Top of Updates
Benefits of UI Test Automation and Why You Should Care
Types of Salesforce Testing and When To Use Them
Copado + DataColada: Enabling CI/CD for Developers Across APAC
What is Salesforce API Testing and It Why Should Be Automated
Machine Learning Models: Adapting Data Patterns With Copado For AI Test Automation
Automated Testing Benefits: The Case For As Little Manual Testing As Possible
Beyond Selenium: Low Code Testing To Maximize Speed and Quality
UI Testing Best Practices: From Implementation to Automation
How Agile Test Automation Helps You Develop Better and Faster
Salesforce Test Cases: Knowing When to Test
DevOps Quality Assurance: Major Pitfalls and Challenges
11 Characteristics of Advanced Persistent Threats (APTs) That Set Them Apart
7 Key Compliance Regulations Relating to Data Storage
7 Ways Digital Transformation Consulting Revolutionizes Your Business
6 Top Cloud Security Trends
API Management Best Practices
Applying a Zero Trust Infrastructure in Kubernetes
Building a Data Pipeline Architecture Based on Best Practices Brings the Biggest Rewards
CI/CD Methodology vs. CI/CD Mentality: How to Meet Your Workflow Goals
DevOps to DevSecOps: How to Build Security into the Development Lifecycle
DevSecOps vs Agile: It’s Not Either/Or
How to Create a Digital Transformation Roadmap to Success
Infrastructure As Code: Overcome the Barriers to Effective Network Automation
Leveraging Compliance Automation Tools to Mitigate Risk
Moving Forward with These CI/CD Best Practices
Top 3 Data Compliance Challenges of Tomorrow and the Solutions You Need Today
Top 6 Cloud Security Management Policies and Procedures to Protect Your Business
What are the Benefits of Principle of Least Privilege (POLP) for My Organization?
You Can’t Measure What You Can’t See: Getting to know the 4 Metrics of Software Delivery Performance
How the Public Sector Can Continue to Accelerate Modernization
Building an Automated Test Framework to Streamline Deployments
How To Implement a Compliance Testing Methodology To Exceed Your Objectives
Cloud Security: Advantages and Disadvantages to Accessibility