blog.kandji.io Open in urlscan Pro
199.60.103.227  Public Scan

Submitted URL: https://email.kandji.io/e3t/Ctc/ZS+113/cC6HP04/VXdSgZ2xWt2BW38RXSc8QK292W8yJSQm5dFtcCN8DGmDH3lYMRW7Y8-PT6lZ3l7W10NFdn55w...
Effective URL: https://blog.kandji.io/kandji-packages-create-and-update-custom-apps-via-api?utm_medium=email&_hsenc=p2ANqtz--N4X2fy6E4...
Submission: On May 06 via manual from FR — Scanned from FR

Form analysis 2 forms found in the DOM

/search

<form action="/search" class="relative">
  <input type="text" class="" name="term" autocomplete="off" aria-label="Search" value="" placeholder="Type your search request">
  <button aria-label="Search" class="absolute right-0 top-0 h-full w-11 transition duration-200 ease-in-out opacity-50 hover:opacity-100">
    <span aria-hidden="true" class="inline-flex items-center justify-center w-11 h-full">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" class="h-6 w-6">
        <rect width="256" height="256" fill="none"></rect>
        <circle cx="116" cy="116" r="84" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></circle>
        <line x1="175.4" y1="175.4" x2="224" y2="224" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></line>
      </svg>
    </span>
  </button>
</form>

POST https://forms.hsforms.com/submissions/v3/public/submit/formsnext/multipart/5058330/21f774d6-4c0b-4c25-b47a-35023464393a

<form id="hsForm_21f774d6-4c0b-4c25-b47a-35023464393a_2458" method="POST" accept-charset="UTF-8" enctype="multipart/form-data" novalidate=""
  action="https://forms.hsforms.com/submissions/v3/public/submit/formsnext/multipart/5058330/21f774d6-4c0b-4c25-b47a-35023464393a"
  class="hs-form-private hsForm_21f774d6-4c0b-4c25-b47a-35023464393a hs-form-21f774d6-4c0b-4c25-b47a-35023464393a hs-form-21f774d6-4c0b-4c25-b47a-35023464393a_de5a277a-80bb-4a71-a4bc-702423f962ad hs-form stacked hs-custom-form"
  target="target_iframe_21f774d6-4c0b-4c25-b47a-35023464393a_2458" data-instance-id="de5a277a-80bb-4a71-a4bc-702423f962ad" data-form-id="21f774d6-4c0b-4c25-b47a-35023464393a" data-portal-id="5058330"
  data-test-id="hsForm_21f774d6-4c0b-4c25-b47a-35023464393a_2458">
  <div class="hs_email hs-email hs-fieldtype-text field hs-form-field"><label id="label-email-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your Email"
      for="email-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>Email</span><span class="hs-form-required">*</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input id="email-21f774d6-4c0b-4c25-b47a-35023464393a_2458" name="email" required="" placeholder="Email" type="email" class="hs-input" inputmode="email" autocomplete="email" value=""></div>
  </div>
  <div class="hs_utm_campaign hs-utm_campaign hs-fieldtype-text field hs-form-field" style="display: none;"><label id="label-utm_campaign-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your utm_campaign"
      for="utm_campaign-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>utm_campaign</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input name="utm_campaign" class="hs-input" type="hidden" value=""></div>
  </div>
  <div class="hs_utm_content hs-utm_content hs-fieldtype-text field hs-form-field" style="display: none;"><label id="label-utm_content-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your utm_content"
      for="utm_content-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>utm_content</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input name="utm_content" class="hs-input" type="hidden" value="305522564"></div>
  </div>
  <div class="hs_utm_medium hs-utm_medium hs-fieldtype-text field hs-form-field" style="display: none;"><label id="label-utm_medium-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your utm_medium"
      for="utm_medium-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>utm_medium</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input name="utm_medium" class="hs-input" type="hidden" value="email"></div>
  </div>
  <div class="hs_utm_source hs-utm_source hs-fieldtype-text field hs-form-field" style="display: none;"><label id="label-utm_source-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your utm_source"
      for="utm_source-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>utm_source</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input name="utm_source" class="hs-input" type="hidden" value="hs_email"></div>
  </div>
  <div class="hs_utm_term hs-utm_term hs-fieldtype-text field hs-form-field" style="display: none;"><label id="label-utm_term-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your utm_term"
      for="utm_term-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>utm_term</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input name="utm_term" class="hs-input" type="hidden" value=""></div>
  </div>
  <div class="hs_blog_kandji_blog_2_6850365017_subscription hs-blog_kandji_blog_2_6850365017_subscription hs-fieldtype-radio field hs-form-field" style="display: none;"><label
      id="label-blog_kandji_blog_2_6850365017_subscription-21f774d6-4c0b-4c25-b47a-35023464393a_2458" class="" placeholder="Enter your Kandji Blog Email Subscription"
      for="blog_kandji_blog_2_6850365017_subscription-21f774d6-4c0b-4c25-b47a-35023464393a_2458"><span>Kandji Blog Email Subscription</span></label>
    <legend class="hs-field-desc" style="display: none;"></legend>
    <div class="input"><input name="blog_kandji_blog_2_6850365017_subscription" class="hs-input" type="hidden" value="instant"></div>
  </div>
  <div class="hs_submit hs-submit">
    <div class="hs-field-desc" style="display: none;"></div>
    <div class="actions"><input type="submit" class="hs-button primary large" value="Subscribe"></div>
  </div><input name="hs_context" type="hidden"
    value="{&quot;embedAtTimestamp&quot;:&quot;1714975224684&quot;,&quot;formDefinitionUpdatedAt&quot;:&quot;1629373273571&quot;,&quot;notifyHubSpotOwner&quot;:&quot;true&quot;,&quot;userAgent&quot;:&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36&quot;,&quot;pageTitle&quot;:&quot;Kandji Packages: Create and Update Custom Apps via API&quot;,&quot;pageUrl&quot;:&quot;https://blog.kandji.io/kandji-packages-create-and-update-custom-apps-via-api?utm_medium=email&amp;_hsenc=p2ANqtz--N4X2fy6E4lqrmW0CuFONI8szxtBcpO0OP_1VPzF5af4xjR8mQ1ykkCdMn2dOYEu-D1cW_4LOsdeEm9ofCk8i7hQzUTg&amp;_hsmi=305522564&amp;utm_content=305522564&amp;utm_source=hs_email&quot;,&quot;pageId&quot;:&quot;165665885085&quot;,&quot;urlParams&quot;:{&quot;utm_medium&quot;:&quot;email&quot;,&quot;_hsenc&quot;:&quot;p2ANqtz--N4X2fy6E4lqrmW0CuFONI8szxtBcpO0OP_1VPzF5af4xjR8mQ1ykkCdMn2dOYEu-D1cW_4LOsdeEm9ofCk8i7hQzUTg&quot;,&quot;_hsmi&quot;:&quot;305522564&quot;,&quot;utm_content&quot;:&quot;305522564&quot;,&quot;utm_source&quot;:&quot;hs_email&quot;},&quot;isHubSpotCmsGeneratedPage&quot;:true,&quot;canonicalUrl&quot;:&quot;https://blog.kandji.io/kandji-packages-create-and-update-custom-apps-via-api&quot;,&quot;contentType&quot;:&quot;blog-post&quot;,&quot;hutk&quot;:&quot;cff9262876631ae91d2b36ce4d88d37c&quot;,&quot;__hsfp&quot;:4046427330,&quot;__hssc&quot;:&quot;234561729.1.1714975226997&quot;,&quot;__hstc&quot;:&quot;234561729.cff9262876631ae91d2b36ce4d88d37c.1714975226996.1714975226996.1714975226996.1&quot;,&quot;formTarget&quot;:&quot;#hs_form_target_sidebar_subscribe_&quot;,&quot;formInstanceId&quot;:&quot;2458&quot;,&quot;rawInlineMessage&quot;:&quot;<p>Thanks for subscribing!</p>&quot;,&quot;hsFormKey&quot;:&quot;c918c08703f103826f4d43f809eea060&quot;,&quot;pageName&quot;:&quot;Kandji Packages: Create and Update Custom Apps via API&quot;,&quot;rumScriptExecuteTime&quot;:1251.099998474121,&quot;rumTotalRequestTime&quot;:1484.7000045776367,&quot;rumTotalRenderTime&quot;:1586.7000045776367,&quot;rumServiceResponseTime&quot;:233.60000610351562,&quot;rumFormRenderTime&quot;:102,&quot;connectionType&quot;:&quot;4g&quot;,&quot;firstContentfulPaint&quot;:0,&quot;largestContentfulPaint&quot;:0,&quot;locale&quot;:&quot;en&quot;,&quot;timestamp&quot;:1714975227017,&quot;originalEmbedContext&quot;:{&quot;portalId&quot;:&quot;5058330&quot;,&quot;formId&quot;:&quot;21f774d6-4c0b-4c25-b47a-35023464393a&quot;,&quot;region&quot;:&quot;na1&quot;,&quot;target&quot;:&quot;#hs_form_target_sidebar_subscribe_&quot;,&quot;isBuilder&quot;:false,&quot;isTestPage&quot;:false,&quot;isPreview&quot;:false,&quot;formInstanceId&quot;:&quot;2458&quot;,&quot;formsBaseUrl&quot;:&quot;/_hcms/forms&quot;,&quot;css&quot;:&quot;&quot;,&quot;inlineMessage&quot;:&quot;<p>Thanks for subscribing!</p>&quot;,&quot;isMobileResponsive&quot;:true,&quot;rawInlineMessage&quot;:&quot;<p>Thanks for subscribing!</p>&quot;,&quot;hsFormKey&quot;:&quot;c918c08703f103826f4d43f809eea060&quot;,&quot;pageName&quot;:&quot;Kandji Packages: Create and Update Custom Apps via API&quot;,&quot;pageId&quot;:&quot;165665885085&quot;,&quot;contentType&quot;:&quot;blog-post&quot;,&quot;formData&quot;:{&quot;cssClass&quot;:&quot;hs-form stacked hs-custom-form&quot;},&quot;isCMSModuleEmbed&quot;:true},&quot;correlationId&quot;:&quot;de5a277a-80bb-4a71-a4bc-702423f962ad&quot;,&quot;renderedFieldsIds&quot;:[&quot;email&quot;,&quot;utm_campaign&quot;,&quot;utm_content&quot;,&quot;utm_medium&quot;,&quot;utm_source&quot;,&quot;utm_term&quot;,&quot;blog_kandji_blog_2_6850365017_subscription&quot;],&quot;captchaStatus&quot;:&quot;NOT_APPLICABLE&quot;,&quot;emailResubscribeStatus&quot;:&quot;NOT_APPLICABLE&quot;,&quot;isInsideCrossOriginFrame&quot;:false,&quot;source&quot;:&quot;forms-embed-1.5064&quot;,&quot;sourceName&quot;:&quot;forms-embed&quot;,&quot;sourceVersion&quot;:&quot;1.5064&quot;,&quot;sourceVersionMajor&quot;:&quot;1&quot;,&quot;sourceVersionMinor&quot;:&quot;5064&quot;,&quot;allPageIds&quot;:{&quot;embedContextPageId&quot;:&quot;165665885085&quot;,&quot;analyticsPageId&quot;:&quot;165665885085&quot;,&quot;contentPageId&quot;:165665885085,&quot;contentAnalyticsPageId&quot;:&quot;165665885085&quot;},&quot;_debug_embedLogLines&quot;:[{&quot;clientTimestamp&quot;:1714975224751,&quot;level&quot;:&quot;INFO&quot;,&quot;message&quot;:&quot;Retrieved customer callbacks used on embed context: [\&quot;getExtraMetaDataBeforeSubmit\&quot;]&quot;},{&quot;clientTimestamp&quot;:1714975224751,&quot;level&quot;:&quot;INFO&quot;,&quot;message&quot;:&quot;Retrieved pageContext values which may be overriden by the embed context: {\&quot;pageTitle\&quot;:\&quot;Kandji Packages: Create and Update Custom Apps via API\&quot;,\&quot;pageUrl\&quot;:\&quot;https://blog.kandji.io/kandji-packages-create-and-update-custom-apps-via-api?utm_medium=email&amp;_hsenc=p2ANqtz--N4X2fy6E4lqrmW0CuFONI8szxtBcpO0OP_1VPzF5af4xjR8mQ1ykkCdMn2dOYEu-D1cW_4LOsdeEm9ofCk8i7hQzUTg&amp;_hsmi=305522564&amp;utm_content=305522564&amp;utm_source=hs_email\&quot;,\&quot;userAgent\&quot;:\&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36\&quot;,\&quot;urlParams\&quot;:{\&quot;utm_medium\&quot;:\&quot;email\&quot;,\&quot;_hsenc\&quot;:\&quot;p2ANqtz--N4X2fy6E4lqrmW0CuFONI8szxtBcpO0OP_1VPzF5af4xjR8mQ1ykkCdMn2dOYEu-D1cW_4LOsdeEm9ofCk8i7hQzUTg\&quot;,\&quot;_hsmi\&quot;:\&quot;305522564\&quot;,\&quot;utm_content\&quot;:\&quot;305522564\&quot;,\&quot;utm_source\&quot;:\&quot;hs_email\&quot;},\&quot;pageId\&quot;:\&quot;165665885085\&quot;,\&quot;contentAnalyticsPageId\&quot;:\&quot;165665885085\&quot;,\&quot;contentPageId\&quot;:165665885085,\&quot;isHubSpotCmsGeneratedPage\&quot;:true}&quot;},{&quot;clientTimestamp&quot;:1714975224753,&quot;level&quot;:&quot;INFO&quot;,&quot;message&quot;:&quot;Retrieved countryCode property from normalized embed definition response: \&quot;FR\&quot;&quot;},{&quot;clientTimestamp&quot;:1714975227012,&quot;level&quot;:&quot;INFO&quot;,&quot;message&quot;:&quot;Retrieved analytics values from API response which may be overriden by the embed context: {\&quot;hutk\&quot;:\&quot;cff9262876631ae91d2b36ce4d88d37c\&quot;,\&quot;canonicalUrl\&quot;:\&quot;https://blog.kandji.io/kandji-packages-create-and-update-custom-apps-via-api\&quot;,\&quot;contentType\&quot;:\&quot;blog-post\&quot;,\&quot;pageId\&quot;:\&quot;165665885085\&quot;}&quot;}]}"><iframe
    name="target_iframe_21f774d6-4c0b-4c25-b47a-35023464393a_2458" style="display: none;"></iframe>
</form>

Text Content

___

Skip to content
Book a Demo Request Pricing Virtual Tour
Kandji logo
Open main menu
Kandji
Close menu


PRODUCT

Device Harmony

Device Management

Endpoint Detection & Response

Pricing

Support


USE CASES

Deploy

Secure

Configure

Manage

Integrate


FEATURES

Liftoff

Passport

Auto Apps

Managed OS

Migration

Compliance

Prism

Integrations

iOS & iPadOS


RESOURCES

Resources Hub

Blog

Customer Stories

MacAdmins Community

Security Details


PARTNERS

Resellers

Technology Partners

Become a Partner

Register a Deal

Partner Portal


COMPANY

About Kandji

Careers

News & Press

Contact

Log in Get Started
Get Started
Kandji logo
Product



SOLUTIONS

Device Management

Advanced automation and frictionless experiences for Apple devices

Endpoint Detection & Response

Cutting-edge performance and extensive threat detection for Mac


WHY KANDJI?

Device Harmony

Tear down the wall between IT and InfoSec to keep every Apple user secure and
productive at work


FEATURES

Liftoff

Onboard users with a personalized setup experience

Passport

Let users unlock devices with their single sign-on credentials

Auto Apps

Automatically ensure devices always have the right software

Managed OS

Set and enforce macOS update parameters fleet-wide

Migration

Move users onto Kandji via an existing MDM platform

Compliance

Map settings to compliance benchmarks in minutes

Prism

Get instant visibility and reporting on the state of your Apple fleet.

Integrations

Connect Kandji with the rest of your software stack to save even more time.

iOS & iPadOS

Deploy, manage, and secure iOS and iPadOS devices at scale.


SEE KANDJI IN ACTION



Try Kandji Free

Discover the power of Kandji with a personalized demo and 14-day trial.

Get Started

Pricing
Resources


Resources Hub

Blog

Customer Stories

MacAdmins Community

Security Details

Support
Partners


Resellers

Technology Partners

Become a Partner

Register a Deal

Partner Portal

Company


About Kandji

Careers

News & Press

Contact

Log in Get Started
Blog Product Update Kandji Pac...


KANDJI PACKAGES: CREATE AND UPDATE CUSTOM APPS VIA API

Noah Anderson
Noah Anderson May 3, 2024
Systems Engineer at Kandji
7 min read

In Kandji, you can deploy custom apps—software you want your users to have but
isn’t available as one of Kandji’s Auto Apps or from the Mac App Store—using our
Custom App Library Item. 

In concrete terms, that means creating a new Library Item, uploading
installation files—PKG, DMG, or ZIP—to it, setting enforcement policies, adding
optional pre- or postinstall scripts, then putting that Library Item in the
appropriate Blueprint. Once that’s done, your custom app will appear on all
devices assigned to that Blueprint.

But there’s another way to add custom apps: using our recently released API
endpoints. These make it possible to manage custom Library Items
programmatically.

However, we recognize that building a workable solution on top of APIs can be a
technically complex, time-intensive project. That’s why we’re excited to share
two new open-source frameworks—Kandji Packages and KAPPA—both of which provide a
frictionless way to create and update Custom Apps over API. Here’s how they
work.


LINK TO THIS SECTION KANDJI PACKAGES: WHAT IT DOES, HOW IT WORKS

Kandji Packages is a way to deploy custom installers programmatically so that
users always have the current version. (In that respect, it’s similar to Kandji
Auto Apps.) 

So if, for example, you want your developers to always have the most current
version of the AWS Command Line Interface, you could use Kandji Packages to
distribute it to that team.

Packages is appropriate for apps that require customized configurations, such as
an installer package for which you need to modify an included file or attach a
config file before deploying. It works with command line tools and binaries that
have versioning; it can check the current version on a download source against
the version that’s already deployed. As long as the vendor provides version
information in the package, Kandji Packages can enforce it.

Before you use Kandji Packages, you need a couple of things: a valid Kandji
tenant; an API token with these permissions; and (optionally) a Slack token for
reporting status.

After that initial configuration, download a macOS app installer—either a PKG or
DMG—and point Packages at the download. It will upload to your Kandji instance,
auto-populate details like the app name, and post to Slack once it’s finished.
As detailed in the README file, there are other customizations available, such
as selecting a per-app enforcement type or Self Service category.

It’s important to note that when you use Kandji Packages to initially create a
new Custom App, it will not add it to a Blueprint; you still need to use the
Kandji web app for that. But if you use it to update an existing Library Item
that's already scoped to a Blueprint, it'll update the installer and version for
enforcement  (if set) and keep the existing scope as is.

You run Kandji Packages on a Mac (it’s primarily Python, with a little shell
scripting to manage setup and configuration). You can also use it as part of a
continuous integration/delivery flow to continually update and distribute custom
apps as they become available; it can interact with files you have in a repo.
(This still requires a Mac node.)

See Kandji in Action

Experience Apple device management and security that actually gives you back
your time.

Get Started Contact Us

In addition to working with local files, Kandji Packages can also source an
installer by name directly from Homebrew. As long as the Homebrew cask source is
a PKG or DMG, Packages will execute the same workflow as above when adding that
installer to, or updating it in, Kandji.


LINK TO THIS SECTION KANDJI PACKAGES AND AUTOPKG

If all that sounds familiar, it’s because the functionality is similar to what
you get from AutoPkg, the venerable automation framework for packaging and
distributing macOS software.

Like AutoPkg, Kandji Packages can download installer files from a specified
source site, extract them (if archived), parse their versioning information, and
provide identifying information about the installation. Unlike AutoPkg, Kandji
Packages can then leverage the Kandji API to actually upload the installer file
to your Kandji instance for deployment to specific devices.

For customers who are already invested in an AutoPkg environment, we’ve built an
AutoPkg processor—the Kandji AutoPkg Processor Actions, or KAPPA for short—to
connect such existing AutoPkg infrastructures to Kandji. If you’ve ever used
something like Munki, which integrates tightly with AutoPkg to handle package
uploads, scoping, and more, the behavior should be familiar; KAPPA hopes to
provide similarly seamless integration.

All of their existing recipes and all of the workflows they've set up to
download installers and build and assign packages remain the same; they just
need to modify their existing recipes to add a step for KAPPA that would, in
essence, say, "After this package is built, pass it off to the Kandji
processor." You can also create a recipe to define the name of the package, the
group it should be assigned to, and where it should appear in Kandji Self
Service, among other configuration options.

We do a few things to check on versioning: If it’s just an app bundle that
you're distributing—something like Slack—we will read the short version string
from its info.plist. We then check the current installation to see which version
is running. If it’s a binary, we can record a PKG value instead and then use
that for validating the installed version. 

If you’re using the Audit and enforce installation option, you can set a number
of days before version enforcement triggers. When enforcement is due, the user
will be prompted to close the open app before the update proceeds, with an
option to defer once. If it's a binary or background process with an update
pending, that update will proceed without issue.

Both frameworks are open source, with licensing details available for Kandji
Packages and for KAPPA. We actively welcome contributions and feedback from the
community.


LINK TO THIS SECTION ABOUT KANDJI

Kandji is the Apple device management and security platform that empowers secure
and productive global work. With Kandji, Apple devices transform themselves into
enterprise-ready endpoints, with all the right apps, settings, and security
systems in place. Through advanced automation and thoughtful experiences, we’re
bringing much-needed harmony to the way IT, InfoSec, and Apple device users work
today and tomorrow.



See Kandji in Action

Experience Apple device management and security that actually gives you back
your time.

Get Started Contact Us

See Kandji in Action

Experience Apple device management and security that actually gives you back
your time.

Start Free Trial Contact Us

Share Post
LinkedIn Facebook Twitter Reddit Print
Previous Post
Search

More Product Updates
Kandji's Integration with ServiceNow Streamlines Asset Management


KANDJI'S INTEGRATION WITH SERVICENOW STREAMLINES ASSET MANAGEMENT

Kandji Prism Gives Admins Quick Visibility into Apple Device Fleets


KANDJI PRISM GIVES ADMINS QUICK VISIBILITY INTO APPLE DEVICE FLEETS

Kandji Earns ISO 27001 Certification


KANDJI EARNS ISO 27001 CERTIFICATION

Related Topics
Introducing Custom Apps and Scripts in Self Service


INTRODUCING CUSTOM APPS AND SCRIPTS IN SELF SERVICE

Kandji Raises $60 Million Series B to Drive the Future of Apple Enterprise
Management


KANDJI RAISES $60 MILLION SERIES B TO DRIVE THE FUTURE OF APPLE ENTERPRISE
MANAGEMENT

Create Multiple Instances of Auto Apps and Managed OSes


CREATE MULTIPLE INSTANCES OF AUTO APPS AND MANAGED OSES

Get the latest blog updates in your inbox


SUBSCRIBE

Email*

utm_campaign

utm_content

utm_medium

utm_source

utm_term

Kandji Blog Email Subscription




PRODUCT

 * Device Harmony
 * Device Management
 * Endpoint Detection & Response
 * Updates


USE CASES

 * Deploy
 * Secure
 * Configure
 * Manage
 * Integrate
 * macOS MDM Solutions
 * iOS MDM Solutions


FEATURES

 * Liftoff
 * Passport
 * Auto Apps
 * Managed OS
 * Migration
 * Compliance
 * Prism
 * Integrations


RESOURCES

 * Resources Hub
 * Blog
 * Customer Stories
 * Support
 * MacAdmins Slack
 * Apple MDM Definitions


COMPANY

 * About Kandji
 * The Kandji Difference
 * Careers
 * News & Press
 * Contact
 * Partners

Link to Kandji's Twitter Link to Kandji's Facebook Link to Kandji's LinkedIn
Logo for AICPA SOC for Service Organizations

 * Device Harmony
 * Device Management
 * Endpoint Detection & Response
 * Get Started
 * Pricing
 * Support
 * About
 * Careers
 * Blog

Link to Kandji's Twitter Link to Kandji's Facebook Link to Kandji's LinkedIn
Logo for AICPA SOC for Service Organizations

Kandji logo

© Copyright 2024 Kandji, Inc. All Rights Reserved.
Kandji, the bee logo and Device Harmony are trademarks of Kandji, Inc.

 * Privacy Policy
 * Your Privacy Choices
 * Accessibility
 * Legal

This website uses cookies and other tracking technologies to enhance user
experience and to analyze performance and traffic on our website. We also share
information about your use of our site with our social media, advertising and
analytics partners. If we have detected an opt-out preference signal then it
will be honored. Further information is available in our

Accept All Cookies
Reject Optional Cookies
Manage Privacy Preferences


PRIVACY PREFERENCE CENTER

When you visit any website, it may store or retrieve information on your
browser, mostly in the form of cookies. This information might be about you,
your preferences or your device and is mostly used to make the site work as you
expect it to. The information does not usually directly identify you, but it can
give you a more personalized web experience. Because we respect your right to
privacy, you can choose not to allow some types of cookies. Click on the
different category headings to find out more and change our default settings.
However, blocking some types of cookies may impact your experience of the site
and the services we are able to offer. Privacy Policy .
Allow All


MANAGE CONSENT PREFERENCES

STRICTLY NECESSARY COOKIES

Always Active

These cookies are necessary for the website to function and cannot be switched
off in our systems. They are usually only set in response to actions made by you
which amount to a request for services, such as setting your privacy
preferences, logging in or filling in forms. You can set your browser to block
or alert you about these cookies, but some parts of the site will not then work.
These cookies do not store any personally identifiable information.

FUNCTIONAL COOKIES

Always Active

These cookies enable the website to provide enhanced functionality and
personalisation. They may be set by us or by third party providers whose
services we have added to our pages. If you do not allow these cookies then some
or all of these services may not function properly.

PERFORMANCE COOKIES

Performance Cookies

These cookies allow us to count visits and traffic sources so we can measure and
improve the performance of our site. They help us to know which pages are the
most and least popular and see how visitors move around the site. All
information these cookies collect is aggregated and therefore anonymous. If you
do not allow these cookies we will not know when you have visited our site, and
will not be able to monitor its performance.

TARGETING COOKIES

Targeting Cookies

These cookies may be set through our site by our advertising partners. They may
be used by those companies to build a profile of your interests and show you
relevant adverts on other sites. They do not store directly personal
information, but are based on uniquely identifying your browser and internet
device. If you do not allow these cookies, you will experience less targeted
advertising.

Back Button


COOKIE LIST



Search Icon
Filter Icon

Clear
checkbox label label
Apply Cancel
Consent Leg.Interest
checkbox label label
checkbox label label
checkbox label label

Reject All Confirm My Choices