# Welcome

Sky Ledge is the world's most beautiful platform for combining information from systems, processes and assets into actionable insights.

Whether you're new to Sky Ledge or not, these docs should serve as your source of truth to all things Sky Ledge. We'll be relying on your feedback to make sure it stays that way as we grow.

We'll introduce you to the core concepts of Sky Ledge and get you on your way to configuring and creating your own Control Rooms. We've included some videos along the way, as well as links to FAQs in our Knowledge Base to help you get up and running.

## Why Sky Ledge?

Sky Ledge helps all kinds of teams easily see, predict and respond to issues and insights in their environment.

**Because here's the thing about most BI and IoT platforms:** Reporting tools are great at creating... reports. These reports might also include reports and charts. But, they always leave you asking one question: **So what?**

So what that you've got a long list of people, assets and data. So what that you have a pretty report with columns, rows and charts? What do you do about it?

This is where Sky Ledge stands out.

## Who is Sky Ledge for?

Sky Ledge helps different types of users see, predict and respond. More importantly, Sky Ledge translates insights into language that makes sense to different types of users. Here's how:

### Business Users

Business users can easily access insights that translate complex issues into friendly, meaningful language. For example, if an autonomous truck is experiencing connectivity issues, a business users will receive an alert such as "Autonomous truck experiencing critical connectivity issues" as opposed to technical jargon. This way, business users can easily understand and decide an appropriate response.

### Asset Managers, Safety, Engineering and Control Teams

Operational teams are able to see, predict and respond to issues in a way that is relevant to them. Regardless of the industry, insights are tailored to be as specific and contextual to the use case. Sky Ledge allows technical teams to raise alerts and translate these into language that makes sense to less technical stakeholders for them to understand and make decisions on.

### Developers

Sky Ledge is the perfect platform for developers to ingest raw data and translate these into insights and alerts. But you can do so much more than that: Allow users to respond to alerts, take action and create workflows.

## Getting Started

**Got 2 minutes?** Check out a video overview of our product:

### Guides: Jump right in

Follow our handy guides to get up to speed with the basics as quickly as possible:

{% content-ref url="/pages/VXD1cxNHeQOWeYLhWaz8" %}
[Creating Your Account](/getting-started/creating-your-account)
{% endcontent-ref %}

{% content-ref url="/pages/3dLoms3Qj3dN30tP59cT" %}
[Sky Ledge API - Quick start](/getting-started/sky-ledge-api-quick-start)
{% endcontent-ref %}

{% hint style="info" %}
The guides above are the best way to get started in Sky Ledge. If you're still stuck, you can always join our Slack [community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA). Ask questions, get to know other Sky Ledge users or simply ask what all the fuss is about.
{% endhint %}

### Fundamentals: Dive a little deeper

Learn the fundamentals of Sky Ledge to get a deeper understanding of our main features:

{% content-ref url="/pages/ETaDGkTYKdTwTD9lmc33" %}
[Launchpad](/fundamentals/launchpad)
{% endcontent-ref %}

{% content-ref url="/pages/hLN7IfKsQK2k1BEoQcjA" %}
[Control Rooms](/fundamentals/control-rooms)
{% endcontent-ref %}

{% content-ref url="/pages/DcOhWSQUJzo7z44hFntl" %}
[Assets](/fundamentals/assets)
{% endcontent-ref %}

{% content-ref url="/pages/E3VtUqLnu3tED4KLpWQr" %}
[Events](/fundamentals/events)
{% endcontent-ref %}

{% hint style="info" %}
**Note:** As we add new features to Sky Ledge, we will update our Fundamentals Docs to reflect those changes. We'll also update our [Slack community](https://sky-ledge.gitbook.io/product-docs/#join-our-community) as we go along
{% endhint %}

## Join our Community!

We know we're not always going to get it right. If you notice something is not right or simply doesn't make sense, be sure to join our [Slack community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA) and let us know about it! We value your feedback and will endeavour to act on your suggestions as soon as is humanly possible.

There'll also be other Sky Ledge users there, so you can exchange stories, gripes or areas of improvement with them too! We look forward to welcoming you into our [community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA) :confetti\_ball::partying\_face:


# Creating Your Account

## Creating your Sky Ledge account

There are four ways to sign up:

1. Join an existing organisation you belong to
2. Create a new Sky Ledge organisation and account,
3. Sign up with your Gmail or Microsoft account or,
4. Using company SSO (Enterprise customers only).

In this guide we'll describe the first three approaches along with videos on how to create an account.

### Joining an organisation

In most cases, users will want to join an organisation they belong to instead of creating a fresh organisation.

Joining an organisation is quite simple:

1. Ask your workspace administrator to send you an invitation.
2. Once you receive the email invitation, simply follow the instructions in the email.

### Creating a new Sky Ledge organisation and account

To sign up for an account, simply:

1. Visit <https://platform.skyledge.com/auth/signup>
2. Choose **Create a Sky Ledge Organisation**
3. Enter your first name, last name, email address and choose a password. Your email address will be your username
4. Click **Next** and enter your organisation details.
5. Click **Get Started**. You're done!

{% embed url="<https://www.loom.com/share/4ecde21ddcdd49dfb6d55aea91d189e5>" %}
Create your Sky Ledge account
{% endembed %}

***

## Next Step

* [Learn more about Launchpad](/fundamentals/launchpad)
* [Learn more about Control Rooms](/fundamentals/control-rooms)


# Sky Ledge API - Quick start

We’re going to show you how easy it is to:

1. [Get your Sky Ledge API Key](#getting-your-sky-ledge-api-key)&#x20;
2. [Create a Control Room via API](#creating-a-control-room)&#x20;
3. [Create an Asset and display it on a map](#creating-asset-our-first-truck)

This guide will just focus on the API calls, the next section will unpack this in more detail using our Hero Potions Inc example

### Getting your Sky Ledge API Key&#x20;

To get your API Key:

1. Click on the Manage Organization menu item
2. Click on API Keys in the sidebar
3. Add your API Key as part of a X-Authorization header in your API requests

{% embed url="<https://www.loom.com/share/160b79771df04f6db5f98204137205e6>" %}
How to retrieve your API Key
{% endembed %}

### **Creating assets and displaying them on a map in four steps**

#### **Creating a Control Room**

```
POST api.skyledge.com/controlrooms

// raw JSON body for api request
{  
   "name":"Hero Logistics",
   "description":"Real-time monitoring of Hero Logistics"
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/controlrooms' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "name":"Hero Logistics",
   "description":"Real-time monitoring of Hero Logistics"
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import {
  Configuration,
  ControlRoomsApi,
  CreateControlRoomRequest,
} from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<CreateControlRoomRequest> = {
  name: 'Hero Logistics',
  description: 'Real-time monitoring of Hero Logistics',
};

const controlRoomApi = new ControlRoomsApi(configuration);

const newControlRoom = await controlRoomApi.createControlRoom(data);

console.log(newControlRoom.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/controlrooms"

payload = json.dumps({
  "name": "Hero Logistics",
  "description": "Real-time monitoring of Hero Logistics"
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

#### **Creating an Asset Type - Truck**

```
POST api.skyledge.com/asset-types

{  
   "identifier":"truck",
   "name":"Delivery Truck",
   "description":"Trucks belonging to our delivery fleet"
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/asset-types' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "identifier":"truck",
   "name":"Delivery Truck",
   "description":"Trucks belonging to our delivery fleet"
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetTypeRequest, AssetTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<AssetTypeRequest> = {
  identifier: 'truck',
  name: 'Delivery Truck',
  description: 'Trucks belonging to our delivery fleet',
};

const assetTypeApi = new AssetTypesApi(configuration);

const newAssetType = await assetTypeApi.createAssetType(data);

console.log(newAssetType.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/asset-types"

payload = json.dumps({
  "identifier": "truck",
  "name": "Delivery Truck",
  "description": "Trucks belonging to our delivery fleet"
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

#### **Assigning our Truck Asset Type to our Control Room**

```
PUT api.skyledge.com/controlrooms/{controlRoomId}/asset-types/{assetTypeId}

{}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request PUT 'https://api.skyledge.com/controlrooms/CONTROL_ROOM_ID/asset_types/ASSET_TYPE_ID' \
--header 'X-Authorization: API_KEY'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const assetTypeApi = new AssetTypesApi(configuration);

const controlRoomId = CONTROL_ROOM_ID;
const assetTypeId = ASSET_TYPE_ID;

const addAssetType2ControlRoom =
  await assetTypeApi.assignsAssetTypeToControlRoom(controlRoomId, assetTypeId);

console.log(addAssetType2ControlRoom.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests

url = "https://api.skyledge.com/controlrooms/CONTROL_ROOM_ID/asset_types/ASSET_TYPE_ID"

payload={}
headers = {
  'X-Authorization': 'API_KEY'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

#### Creating Asset - Our First Truck

```
POST api.skyledge.com/asset-types/{assetTypeId}/assets

{  
   "assetIdentifier":"truck_001",
   "name":"Mercedes Truck",
   "description":"Refrigerated truck.",
   "attributes":{  
      "icon":"truck",
      "model":"Actos Rigid Truck",
      "year":"2019",
      "asset-manager":"David Lawton",
      “colour” : “pink”
   },
   "metrics":{  
      "maximumCarryingWeightTonnes":3,
      "currentSpeed":80,
      “temperatureOfCargo” : 2
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         -73.9848,
         40.7586
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "assetIdentifier":"truck_001",
   "name":"Mercedes Truck",
   "description":"Refrigerated truck.",
   "attributes":{  
      "icon":"truck",
      "model":"Actos Rigid Truck",
      "year":"2019",
      "asset-manager":"David Lawton",
      "colour" : "pink"
   },
   "metrics":{  
      "maximumCarryingWeightTonnes":3,
      "currentSpeed":80,
      "temperatureOfCargo" : 2
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         -73.9848,
         40.7586
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetRequest, AssetsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: AssetRequest = {
  assetIdentifier: 'truck_001',
  name: 'Mercedes Truck',
  description: 'Refrigerated truck.',
  attributes: {
    icon: 'truck',
    model: 'Actos Rigid Truck',
    year: '2019',
    assetManager: 'David Lawton',
    colour: 'pink',
  } as any,
  metrics: {
    maximumCarryingWeightTonnes: 3,
    currentSpeed: 80,
    temperatureOfCargo: 2,
  },
  location: {
    type: 'Point',
    coordinates: [-73.9848, 40.7586],
  },
};

const assetTypeId = ASSET_TYPE_ID;

const assetApi = new AssetsApi(configuration);

const createAsset = await assetApi.createAsset(assetTypeId, data);

console.log(createAsset.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets"

payload = json.dumps({
  "assetIdentifier": "truck_001",
  "name": "Mercedes Truck",
  "description": "Refrigerated truck.",
  "attributes": {
    "icon": "truck",
    "model": "Actos Rigid Truck",
    "year": "2019",
    "asset-manager": "David Lawton",
    "colour": "pink"
  },
  "metrics": {
    "maximumCarryingWeightTonnes": 3,
    "currentSpeed": 80,
    "temperatureOfCargo": 2
  },
  "location": {
    "type": "Point",
    "coordinates": [
      -73.9848,
      40.7586
    ]
  }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

Voila. In four steps we’ve created a Control Room, an asset typ&#x65;**,** pushed our first asset type to the Control Room and created our first asset.


# Developer Guide

Sky Ledge is the world's simplest API for displaying insights (or anything) on a map.

You can do this in as little as three steps:

1. Create a Control Room&#x20;
2. Create assets&#x20;
3. Get those things on a map

Before we start building, we highly recommend you skim through the previous section, [Broken mention](broken://pages/lqkkIgW7NdAgUpoFpjN8) to get familiar with basic concepts.

### What do I need to develop with Sky Ledge?&#x20;

#### An account

To build on top of Sky Ledge, you simply need a Sky Ledge account. Learn how to create an account here: [Create a Sky Ledge Account](/getting-started/creating-your-account)

#### An API Key

What’s an API Key?

API keys give developers special access to interact and use Sky Ledge APIs. API Keys should be kept away from prying eyes as they give you very high levels of access (e.g. deleting stuff).

#### Getting your API Key

Retrieving your Sky Ledge API Key is simple once you've created your account. Learn how you can retrieve it here: [Retrieve your Sky Ledge API Key](https://docs.skyledge.com/getting-started/sky-ledge-api-quick-start#getting-your-sky-ledge-api-key)

### Getting started - HP Inc. (Hero Potions Inc.)

#### Hero Potions

Ok, so you’ve got an account and you’ve got your API key. Let’s brief you on your first client project: Hero Potions Inc (HP Inc).

HP Inc manufacture potions to give users special powers. They received government approval to produce and sell three potions: Hero Flight, Hero Speed and Hero Memory. Each of these gives users incredibly special super powers: the ability to fly, run at the speed of light and remember absolutely everything for a year.

There has been massive customer interest in these potions. Their business is growing quickly and HP Inc need to be across their legal obligations, keep their costs down to continue making profit. They also want to ensure HP Inc employees work in a safe environment so they don’t come into contact with chemicals that could cause severe health side effects!

They need Sky Ledge to help.

### Understanding Customer Pains and Opportunities

The first step to harnessing is to get clear on the business problems our customer needs addressed. This ensures we build a solution that genuinely meets their needs.

In the case of HP Inc, they have a few business challenges Sky Ledge could help with:

* **Customer visibility:** HP Inc customer care team need to know where shipments are so they can let customers know where their shipments are and when they’ll likely arrive. Some resellers want their own real-time dashboard with information about their delivery location and status
* **Legal compliance:** HP Inc’s potions are tightly regulated and they need to notify the Hero Regulator Authority each time they ship potions to pharmacies
* **Reducing production cost:** Potions need to be produced using special manufacturing processes with very little room for error, waste is very expensive as they use extremely rare ingredients
* **Safety outcomes:** Accidentally touching raw chemicals poses horrible safety risks. Heroes Potions want to predict and prevent the risk of their employees coming into contact with dangerous equipment or materials
* **Supply Chain Quality Assurance:** When shipping HP Inc customers, temperature needs to be within a very specific range (6-8 degrees). Customers returning spoiled potions is very costly. So we need to be certain that returns are actually our fault, and not those of our customers

### Approaching Client Problems&#x20;

#### How do you eat an elephant? One bite at a time.

HP Inc is super excited that Sky Ledge can help on all of these fronts (and more). They’ve asked us to go after quick wins to help them deliver value quickly, fall in love and take it from there.

It turns out there’s a really simple pain point they have:

The flight potion is not sold directly to consumers. It can only be administered by specialists at HP Inc certified pharmacies. When pharmacies administer the potions, two things can happen to the consumer:

1. **Nothing** - this happens to customers with rare genes. HP believe these customers would be valuable research subjects
2. **They fly** - as expected, the flying potion gives users the ability to fly for an entire 30 minutes

Both the pharmacy and HP Inc need to record:

* Which patients don’t respond to the potion, and when
* Which patients took the potion successfully

HP Inc needs to do this for compliance purposes as the aviation authority needs to know how many flying humans could clog up airspace. They also need to know this for medical and market research purposes to understand why the drug might not have worked and where it’s being consumed

### Getting clear on terminologies and stakeholders

As part of any project, it’s a good habbit to understand our customer’s world and get clear on what different things mean and what different stakeholders do. Let’s get some terminologies and stakeholder references straight to help with the rest of our journey:

* **HP Inc -** Hero Potions Inc, our customer
* **Flying Potion -** one of the potions produced and sold by HP Inc
* **Pharmacy -** HP Inc sells their potions (including the Flying Potion) to Pharmacies who administer potions to consumers
* **Heroes -** Consumers who take HP’s potions
* **Zeros -** Harsh term, but these are consumers who don’t have any luck with HP Inc’s potions
* **Hero Regulator -** A Government body that needs to track who consumes potions, when and where
* **Airspace Regulator -** A Government body that makes sure airspace doesn’t get too crowded with Flying Heroes so planes and heroes co-exist safely

### What we'll cover in this guide

* [Creating A Control Room](/getting-started/developer-guide/creating-a-control-room)
* [Creating Event Types](/getting-started/developer-guide/creating-event-types)
* [Creating Events](/getting-started/developer-guide/creating-events-aka-alerts-or-notifications)
* [Creating Asset Types](/getting-started/developer-guide/creating-asset-types)
* [Linking Asset Types to a Control Room](/getting-started/developer-guide/linking-asset-types-to-a-control-room)
* [Creating Assets](/getting-started/developer-guide/creating-assets)
* [Creating and Tracking a Metric](/getting-started/developer-guide/creating-and-tracking-a-metric)
* [Future Updates](/getting-started/developer-guide/future-updates)

If you get stuck along the way, be sure to join our [Slack Community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA) and ask all the questions your heart desires!


# Creating A Control Room

### **Recap: What’s a Control Room?**

Control Rooms are “containers of insights”.

Control Rooms can be created to **organise insights geographically** (e.g. Hero Potion control rooms for different regions, New York, Boston, San Fran).

They can also be used to organise insights **by themes or types of insights** (for example, different Control Rooms for the regulator, marketing team and logistics).

And of course, you can **mix and match** (for example, have control rooms for the logistics team in NY, a different one for the logistics team in San Fran and perhaps another Control Room that displays logistics insights across all cities).

### **Creating your first Control Room - Using the interface**

Creating a Control Room is a super easy, four step process:

1. Sign in to your launchpad&#x20;
2. Create Control Room
3. Give it a name, we've called ours “Heroes Flying Potion - Real-time Monitoring”&#x20;
4. Create Control Room

Click here for a detailed visual walk through.

### **Creating your first Control Room - Using the API**

It’s entirely possible that Control Rooms need to be provisioned using APIs. For example, an automatic process that creates a control room for each pharmacy that purchases from HP Inc. This way each pharmacy can see information about shipping status as well as create and see insights about its customers.

#### **Creating the Control Room**

```
POST api.skyledge.com/controlrooms

// raw JSON body for api request
{  
   "name":"Heroes Flying Potion - Real-time Monitoring",
   "description":"Real-time monitoring of Flying Potions"
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/controlrooms' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw {  
   "name":"Heroes Flying Potion - Real-time Monitoring",
   "description":"Real-time monitoring of Flying Potions"
}
```

{% endtab %}

{% tab title="NodeJs" %}

```
import {
  Configuration,
  ControlRoomsApi,
  CreateControlRoomRequest,
} from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<CreateControlRoomRequest> = {  
   "name":"Heroes Flying Potion - Real-time Monitoring",
   "description":"Real-time monitoring of Flying Potions"
}

const controlRoomApi = new ControlRoomsApi(configuration);

const newControlRoom = await controlRoomApi.createControlRoom(data);

console.log(newControlRoom.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/controlrooms"

payload = json.dumps({  
   "name":"Heroes Flying Potion - Real-time Monitoring",
   "description":"Real-time monitoring of Flying Potions"
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}
{% endtabs %}


# Creating Event Types

**Recap: What are Event Types?**

Event types describe the types of information or insights you'd like to see in your Control Room. Click here to learn more about Event Types.

### **Creating Event Types - Using the interface**

Event types can be created  through the UI in four simple steps:

1. Open the Control Room you created in the previous step (Heroes Flying Potion - Real-time Monitoring)&#x20;
2. In the side panel, click ‘Manage Event Types’&#x20;
3. Then click “Add New Event Type”&#x20;
4. Fill out the details for your Event Types

Here are the steps visually:

![How your Control Room will look](/files/KG71k5Dhn63dCmdq01e6)

![Where to click to Create an 'Event Type'](/files/Yp8natYy3dDbqJHSayZw)

![Event Types page. Yours will be empty. Click 'Add a new Event Type' to create a new one](/files/UnoJf3mDn9oT2TvldS67)

![What the page looks like when you click 'Add a new Event Type'](/files/EwQKCv680sHya87fnje9)

Event Types describe the types of alerts you want to receive. Our first Event Type could be letting us know that a Hero (Flying Potion customer) is flying in a given location.

So here’s how we’d fill out the Event Type details:

![Example Event Type](/files/pWaNo0vphegesh6yiHoC)

When we save the Event Type, we’re taken back to our ‘Manage Event Types’ section and can see our first Event Type “Customer Flying” in our Event Type Library:

![Our first created Event Type](/files/M0u9guMLxslpOhcZt19I)

Let’s unpack the Event Type we created:

1. **Name your event:** This is a way for you to label your Event Types in a way that make sense to you as a business. You could choose to use a naming convention or simply give it a descriptive name so you know what it’s referring to. This is purely for organisational purposes and doesn’t appear in your Control Room or Event Stream.
2. **Title:** This is the title that appears in your event stream. You want to keep this concise to convey what you’re after.\
   \
   Notice that location is written between curly braces {{location}}. This ensures that each event will be able to replace {{location}} with the actual location the event took place in.\
   \
   These are called “placeholders”, you can create any number of placeholders so that external systems can push different types of information into your events, giving you richer, event specific insights.
3. **Description:** A bit more detail that appears under the title.\
   \
   Similar to the title, you can include placeholders here to give you specific insights. In this case we’re displaying our customer’s first name using {{customerFirstName}}
4. **Importance Level:** Different Event Types can have different importance ratings. This allows you to specify a default, but external systems can override this (some events might need to be rated as critical, and others as low priority)

### **Creating Event Types - Using the API**

Similar to what we did using the interface, we can create our Event Types via API. Here are a few Event Types (including the one we created previously) using API calls:

#### **Creating Event Type - Customer Flying**

```
POST api.skyledge.com/event-types

{  
   "name":"Customer Flying",
   "title":"Customer flying in {{location}}",
   "description":"{{customerFirstName}} successfully took off.",
   "locationType":"Point",
   "defaultImportanceLevel":0,
   "controlRooms":[  
      "CONTROL_ROOM_ID"
   ]
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "name":"Customer Flying",
   "title":"Customer flying in {{location}}",
   "description":"{{customerFirstName}} successfully took off.",
   "locationType":"Point",
   "defaultImportanceLevel":0,
   "controlRooms":[  
      "CONTROL_ROOM_ID"
   ]
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventTypeRequest, EventTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const controlRoomId = CONTROL_ROOM_ID;

const data: Partial<EventTypeRequest> = {
  name: 'Customer Flying',
  title: 'Customer flying in {{location}}',
  description: '{{customerFirstName}} successfully took off.',
  locationType: 'Point',
  defaultImportanceLevel: 0,
  controlRooms: [controlRoomId],
};

const eventTypeApi = new EventTypesApi(configuration);

const newEventType = await eventTypeApi.createAnEventType(data);

console.log(newEventType.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types"

payload = json.dumps({
  "name": "Customer Flying",
  "title": "Customer flying in {{location}}",
  "description": "{{customerFirstName}} successfully took off.",
  "locationType": "Point",
  "defaultImportanceLevel": 0,
  "controlRooms": [
    "CONTROL_ROOM_ID"
  ]
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

#### **Creating Event Type - Prohibited Airspace Intrusion**

```
POST api.skyledge.com/event-types

{  
   "name":"Prohibited Airspace Intrusion",
   "title":"Flying Person Detected in {{location}} - Prohibited Airspace",
   "description":"A flying person has been detected in a prohibited airspace",
   "locationType":"Point",
   "defaultImportanceLevel":2,
   "controlRooms":[  
      "{controlRoomId}"
   ]
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "name":"Prohibited Airspace Intrusion",
   "title":"Flying Person Detected in {{location}} - Prohibited Airspace",
   "description":"A flying person has been detected in a prohibited airspace",
   "locationType":"Point",
   "defaultImportanceLevel":2,
   "controlRooms":[  
      "CONTROL_ROOM_ID"
   ]
}'

```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventTypeRequest, EventTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const controlRoomId = CONTROL_ROOM_ID;
const location = LOCATION;

const data: Partial<EventTypeRequest> = {
  name: 'Prohibited Airspace Intrusion',
  title: `Flying Person Detected in {{${location}}} - Prohibited Airspace`,
  description: 'A flying person has been detected in a prohibited airspace',
  locationType: 'Point',
  defaultImportanceLevel: 2,
  controlRooms: [controlRoomId],
};

const eventTypeApi = new EventTypesApi(configuration);

const newEventType = await eventTypeApi.createAnEventType(data);

console.log(newEventType.status);
```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types"

payload = json.dumps({
  "name": "Prohibited Airspace Intrusion",
  "title": "Flying Person Detected in {{location}} - Prohibited Airspace",
  "description": "A flying person has been detected in a prohibited airspace",
  "locationType": "Point",
  "defaultImportanceLevel": 2,
  "controlRooms": [
    "CONTROL_ROOM_ID"
  ]
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

#### **Creating Event Type - Potion Ineffective**

```
POST api.skyledge.com/event-types

{  
   "name":"Potion Ineffective",
   "title":"Potion ineffective on customer in {{location}}",
   "description":"A customer in {{location}} has consumed the potion with no effect",
   "locationType":"Point",
   "defaultImportanceLevel":2,
   "controlRooms":[  
      "{controlRoomId}"
   ]
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "name":"Potion Ineffective",
   "title":"Potion ineffective on customer in {{location}}",
   "description":"A customer in {{location}} has consumed the potion with no effect",
   "locationType":"Point",
   "defaultImportanceLevel":2,
   "controlRooms":[  
      "CONTROL_ROOM_ID"
   ]
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventTypeRequest, EventTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const controlRoomId = CONTROL_ROOM_ID;
const location = LOCATION;

const data: Partial<EventTypeRequest> = {
  name: 'Potion Ineffective',
  title: `Potion ineffective on customer in {{${location}}}`,
  description: `A customer in {{${location}}} has consumed the potion with no effect`,
  locationType: 'Point',
  defaultImportanceLevel: 2,
  controlRooms: [controlRoomId],
};

const eventTypeApi = new EventTypesApi(configuration);

const newEventType = await eventTypeApi.createAnEventType(data);

console.log(newEventType.status);
```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types"

payload = json.dumps({
  "name":"Potion Ineffective",
  "title":"Potion ineffective on customer in {{location}}",
  "description":"A customer in {{location}} has consumed the potion with no effect",
  "locationType":"Point",
  "defaultImportanceLevel":2,
  "controlRooms": [
    "CONTROL_ROOM_ID"
  ]
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}
{% endtabs %}

3 Event Types created with 3 API calls!


# Creating Events (aka Alerts or Notifications)

**Recap: What are Events?**

Previously we looked at Event Types, these are templates describing the different types of insights/notifications a business might want to see. They describe the structure of what needs to be displayed as part of a given Event Type along with any placeholders (e.g. {{location}} or {{customerFirstName}}.

Events are the actual, literal alerts/notifications that flow into your Control Room.

So using the Event Type we created previously (Customer Flying), actual events would look something like this:

![Event Alert appearing in our Event Stream](https://lh3.googleusercontent.com/83ycL0F8SWXbwo-7c5xoqQW3DxMCCRuTmYtwPSP6QD5CVQco-3UBHRW4-a-Sz15VQwXeCgUDkcxLpVduH7ja36YDEdC1JSQTDJFGmy_VaCzIadzmr4ZR8Ez7G4ayp0evtkzqs1xf)

You can see this is based on the same Event Type we created earlier. But they contain actual information inside of the placeholders.

We can create Events in two ways, via UI or API. In some cases, it makes sense to allow users to post Events via a UI, in other (and most cases) it makes sense to stream events via APIs. We’ll walk you through both.

### **Creating Events - Using the interface**

The Hero Regulator expects Pharmacies to register customers who take the Hero Flight potion and take flight successfully. In this case, Pharma’s simply open their Control Room and raise an alert within the system.

The process is quite straightforward:

1. Open the Control Room you created in the previous step (Heroes Flying Potion - Real-time Monitoring)&#x20;
2. In the side panel, click ‘Post an Event’&#x20;
3. Select the Event Type we’d like to post to, in this case “Customer Flying”&#x20;
4. Fill in the placeholders with the actual location and name&#x20;
5. Post the event!

Now you can go into your Control Room and see the events in your event stream.

Here’s a quick visual walk through:

![Click 'Post an Event' button](https://lh4.googleusercontent.com/FZB_wD6nzY8u6TplM8VfOzzzr6jKh8HAhGhhBLsJT_5ZM68qeW5MyrkmmuQWB-GB_dviOhpulBfPpYCPh2V1TjPbIdilBquyoN_v7_mFsQbRehT0mwJWfp_M-Q1HIomASdjS4D7-)

![Click on 'Customer Flying' Event Type](https://lh4.googleusercontent.com/fIyqGGF4UmRlOyilHRW0reBgG_jT0vFgKMhKB9mmIfgAeiYraUyA-B9als8iWsvgd4L2EZRF8xr8rR9ES9f7mAAzqfOGPUJxFRZjj67PDMnv-UHZtJdaKGecK5QD6KjKL_HfcqBirLug2nD_IA)

![Create Event page with placeholders previously designated in Event Type](https://lh3.googleusercontent.com/4ZcVWOw7mqvtzIbv2rkmkMSnO22hG5RqeF_nAbw_13d6jHxIuKbr_2DnZmIThHoGu1qw0Q8NqR-QrSAMQpzxzmc_jCM44Z4psjMiLRQ-aHcn3Zq_CO2ukROeyeDo9A2NYs_ueHes)

### **Creating Events - Using the API**

The process is essentially the same. Instead of selecting Event Types from a list as we did previously, we need to reference our Event Type’s Unique Identifier.

Getting this is easy:

1. Head over to ‘Manage Event Types’ in your Control Room&#x20;
2. Open the Event Type of interest (e.g. Customer Flying)&#x20;
3. Navigate to the ‘Event Type Schema’ tab
4. Here you’ll find a bunch of useful information for developers, for example, the endpoint you can POST events to, as well as the schema to use when posting events

Here’s a visual walk through of how to get this:

![](https://lh5.googleusercontent.com/ldfV0Ubn4OAcKi9XxajcmRMx9ai8tmi1wHvbzUAeL0u0-fnQrj3udOHjOQi3qZtApH4zVpV9dSMN8AqXMKxJZfbxqF24SGp__h9sYxdextKhFmoU-HTLp0uWigt_pBG0_qBpDmj_XQqc_Fe_9g)

![Click 'Event Type Schema' to get Schema and POST request](https://lh5.googleusercontent.com/90-qaWWLCvSYAk_QUAwnLQs3q2yprFhoU2_hbEOH-mgIMJQiW28gfrlOfdJMaktJkbmR4HFjiEF-xcOLL8DYlgHHUvyXWp54h4riJhnGYFndDrsbGDYmGr5Av_dPtDWjhbAHAdQFf6zs41CYXA)

Now we’re ready to make some calls and push events via API:

#### **Creating Event - Flying Person Detected in Central Park**

```
POST api.skyledge.com/event-types/{eventTypeIdentifier}/events

{  
   "dynamicAttributes":{  
      "location":"Central Park"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9752",
         "40.7687"
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types/EVENT_TYPE_ID/events' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "dynamicAttributes":{  
      "location":"Central Park"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9752",
         "40.7687"
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventRequest, EventsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<EventRequest> = {
  dynamicAttributes: {
    location: 'Central Park',
  } as any,
  location: {
    type: 'Point',
    coordinates: [[-73.9752, 40.7687]],
  },
};

const eventTypeIdentifier = EVENT_TYPE_IDENTIFIER;
const eventsApi = new EventsApi(configuration);

const createEvent = await eventsApi.createEvent(eventTypeIdentifier, data);

console.log(createEvent.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types/EVENT_TYPE_ID/events"

payload = json.dumps({
  "dynamicAttributes": {
    "location": "Central Park"
  },
  "location": {
    "type": "Point",
    "coordinates": [
      "-73.9752",
      "40.7687"
    ]
  }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

The output within the Sky Ledge control room should look like this:

![Event Alert in Event Stream appearing in Control Room](https://lh5.googleusercontent.com/Oy_6Zk8l9dHjtigfnT5JTgdQQP4uZ-KfA987-jP_XUF7E6ghiI-_5xErAndR_CNuJapPDwVgzrbducOafO-7b0o1AwC0Iy9SxYAQ3_Zht0ldP0uqyH5QB0IkGS4mxx3JlzJMuZ6I)

When creating an event, it’s expected that an empty response is returned. If you consider situations such as streaming real-time data from an ioT device, it’s doesn’t make much sense to wait for the device to respond before setting up the event in our account

#### **Creating Event - Customer Flying in Garment District**

```
POST api.skyledge.com/event-types/{eventTypeIdentifier}/events

{  
   "dynamicAttributes":{
      "customerFirstName":"Harry",
      "location":"Garment District"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9951",
         "40.7541"
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types/EVENT_TYPE_ID/events' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "dynamicAttributes":{
      "customerFirstName":"Harry",
      "location":"Garment District"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9951",
         "40.7541"
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventRequest, EventsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<EventRequest> = {
  dynamicAttributes: {
    customerFirstName: 'Harry',
    location: 'Garment District',
  } as any,
  location: {
    type: 'Point',
    coordinates: [[-73.9951, 40.7541]],
  },
};

const eventTypeIdentifier = EVENT_TYPE_IDENTIFIER;
const eventsApi = new EventsApi(configuration);

const createEvent = await eventsApi.createEvent(eventTypeIdentifier, data);

console.log(createEvent.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types/EVENT_TYPE_ID/events"

payload = json.dumps({  
   "dynamicAttributes":{
      "customerFirstName":"Harry",
      "location":"Garment District"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9951",
         "40.7541"
      ]
   }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

Your output on the platform in the control room, should look like the following:

![](https://lh4.googleusercontent.com/IJVeyyaZJPJ0Lznh8YwFWTPEh6vGz9BV_tGjSpA5pNgkmVkjN4e7dfAOPBBp7NjywGJhbdAqp0SNzKGq93BIU5MPQxTP1jdITo6y6fEzvPLSGhkjRyogzXfhEqV8mgaM4lskigXK)

#### **Creating Event - Potion Ineffective on customer in Hell’s Kitchen**

```
POST api.skyledge.com/event-types/{eventTypeIdentifier}/events

{  
   "dynamicAttributes":{  
      "location":"Garment District"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9951",
         "40.7541"
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types/EVENT_TYPE_ID/events' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "dynamicAttributes":{  
      "location":"Garment District"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9951",
         "40.7541"
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventRequest, EventsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<EventRequest> = {
  dynamicAttributes: {
    location: 'Garment District',
  } as any,
  location: {
    type: 'Point',
    coordinates: [[-73.9951, 40.7541]],
  },
};

const eventTypeIdentifier = EVENT_TYPE_IDENTIFIER;
const eventsApi = new EventsApi(configuration);

const createEvent = await eventsApi.createEvent(eventTypeIdentifier, data);

console.log(createEvent.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types/EVENT_TYPE_ID/events"

payload = json.dumps({  
   "dynamicAttributes":{  
      "location":"Garment District"
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         "-73.9951",
         "40.7541"
      ]
   }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}
{% endtabs %}

And last but not least, the potion ineffective event will look like this on our platform:

![](https://lh6.googleusercontent.com/p125YVG3CynUzTgqpyMZZBALzigE-v0TuCjgtMZIQApfp-pnSkjpi_o1xyV1p5iwUdFDlEg6wp8JQeBQviTMSEqcZFpTpyNJUAgNb0TblvZC7QcBk7QCG8XbHqb9jlQ5FbuhD1pb)

### **Special Powers - Creating Geofences**

Here’s a little secret, developers have a lot more flexibility with the types of events they can generate. Instead of a simple marker, you could create Events that specify a geofence using simple GeoJSON, check this out:

#### **Creating Event - Flying Limit Exceeded**

```
POST api.skyledge.com/event-types/{eventTypeIdentifier}/events

{  
   "dynamicAttributes":{  
      "location":"Times Square"
   },
   "location":{  
      "type":"Polygon",
      "coordinates":[  
         [  
            [-73.9872, 40.7611],
            [-73.9923, 40.7543],
            [-73.9862, 40.7516],
            [-73.9811, 40.7586],
            [-73.9872, 40.7611]
         ]
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/event-types/EVENT_TYPE_ID/events' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "dynamicAttributes":{  
      "location":"Times Square"
   },
   "location":{  
      "type":"Polygon",
      "coordinates":[  
         [  
            [-73.9872, 40.7611],
            [-73.9923, 40.7543],
            [-73.9862, 40.7516],
            [-73.9811, 40.7586],
            [-73.9872, 40.7611]
         ]
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, EventRequest, EventsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<EventRequest> = {
  dynamicAttributes: {
    location: 'Times Square',
  } as any,
  location: {
    type: 'Polygon',
    coordinates: [
      [
        [-73.9872, 40.7611],
        [-73.9923, 40.7543],
        [-73.9862, 40.7516],
        [-73.9811, 40.7586],
        [-73.9872, 40.7611],
      ],
    ],
  },
};

const eventTypeIdentifier = EVENT_TYPE_IDENTIFIER;
const eventsApi = new EventsApi(configuration);

const createEvent = await eventsApi.createEvent(eventTypeIdentifier, data);

console.log(createEvent.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/event-types/EVENT_TYPE_ID/events"

payload = json.dumps({  
   "dynamicAttributes":{  
      "location":"Times Square"
   },
   "location":{  
      "type":"Polygon",
      "coordinates":[  
         [  
            [-73.9872, 40.7611],
            [-73.9923, 40.7543],
            [-73.9862, 40.7516],
            [-73.9811, 40.7586],
            [-73.9872, 40.7611]
         ]
      ]
   }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

{% endtab %}
{% endtabs %}

There you have it! A geofence that helps us detect our flying person entering the prohibited airspace of Times Square!

![Flying Person detected in Times Square!](https://lh3.googleusercontent.com/BBRir1O9gUTxE0ZNdqgqpVR99fLoCJcKeuISn86S6YKpkte54UT9kJldI_3_tf5PXOeQTwKt9G6jPkXZXO6UhbxRHKc6X1P42_GjNcAjpwBbWVFRKEl2wRBkdQqL1e-0vR--JrGZ)


# Creating Asset Types

Not everyone needs Event Types and Events.

You could go straight to creating Assets and managing these as first class entities in Sky Ledge. Sky Ledge offers an out of the box Asset Management solution that’s fully API driven.

Asset Management is easy to understand, there are two concepts:

1. Asset Types (Classes of Asset, e.g. Cars, Phones)&#x20;
2. Assets (Specific Assets, e.g. Ferrari Spider or iPhone X)

### Creating an Asset Type

Creating Asset Types is easy:

#### **Creating Asset Type - Hero**

```
POST api.skyledge.com/asset-types

{  
   "identifier":"hero",
   "name":"Hero",
   "description":"A HP Inc consumer"
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/asset-types' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "identifier":"hero",
   "name":"Hero",
   "description":"A HP Inc consumer"
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetTypeRequest, AssetTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: Partial<AssetTypeRequest> = {  
   "identifier":"hero",
   "name":"Hero",
   "description":"A HP Inc consumer"
};

const assetTypeApi = new AssetTypesApi(configuration);

const newAssetType = await assetTypeApi.createAssetType(data);

console.log(newAssetType.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/asset-types"

payload = json.dumps({
  "identifier": "hero",
  "name": "Hero",
  "description": "A HP Inc consumer"
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}


# Linking Asset Types to a Control Room

You may want to display certain types of assets in different Control Rooms. For example, Hero Potions may want to display their delivery trucks inside of their Logistics Control Rooms. They may want to display their customers in another type of Control Room.

### Link Asset Type to Control Room

Let’s go ahead and pair our Hero Asset Type to the Control Room we’ve created previously:

#### **Assigning Hero Asset Type to our Control Room**

```
PUT api.skyledge.com/controlrooms/{controlRoomId}/asset-types/{assetTypeId}

{}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request PUT 'https://api.skyledge.com/controlrooms/CONTROL_ROOM_ID/asset_types/ASSET_TYPE_ID' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetTypesApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const assetTypeApi = new AssetTypesApi(configuration);

const controlRoomId = CONTROL_ROOM_ID;
const assetTypeId = ASSET_TYPE_ID;

const addAssetType2ControlRoom =
  await assetTypeApi.assignsAssetTypeToControlRoom(controlRoomId, assetTypeId);

console.log(addAssetType2ControlRoom.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/controlrooms/CONTROL_ROOM_ID/asset_types/ASSET_TYPE_ID"

payload = json.dumps({})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("PUT", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}


# Creating Assets

Now that we’ve created an Asset Type (The ‘Hero’ Asset Type), it’s time to create our first actual Asset (‘A Hero’).

### Asset Creation

Notice that Assets are incredibly flexible, they can refer to physical objects or people, as in this example (we’ll unpack this right after):

#### **Creating Asset - A Hero**

```
POST api.skyledge.com/asset-types/{assetTypeId}/assets

{  
   "assetIdentifier":"hero_001",
   "name":"High Flyer",
   "description":"A high-flying superhero.",
   "attributes":{  
      "icon":"superhero",
      "powers":[  
         "Flight"
      ]
   },
   "metrics":{  
      "remainingPower":100
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         -73.9848,
         40.7586
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "assetIdentifier":"hero_001",
   "name":"High Flyer",
   "description":"A high-flying superhero.",
   "attributes":{  
      "icon":"superhero",
      "powers":[  
         "Flight"
      ]
   },
   "metrics":{  
      "remainingPower":100
   },
   "location":{  
      "type":"Point",
      "coordinates":[  
         -73.9848,
         40.7586
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetRequest, AssetsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: AssetRequest = {
  assetIdentifier: 'hero_001',
  name: 'High Flyer',
  description: 'A high-flying superhero.',
  attributes: {
    icon: 'superhero',
    powers: ['Flight'],
  },
  metrics: {
    remainingPower: 100,
  },
  location: {
    type: 'Point',
    coordinates: [[-73.9848, 40.7586]],
  },
} as any;

const assetTypeId = ASSET_TYPE_ID;

const assetApi = new AssetsApi(configuration);

const createAsset = await assetApi.createAsset(assetTypeId, data);

console.log(createAsset.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets"

payload = json.dumps({
  "assetIdentifier": "hero_001",
  "name": "High Flyer",
  "description": "A high-flying superhero.",
  "attributes": {
    "icon": "superhero",
    "powers": [
      "Flight"
    ]
  },
  "metrics": {
    "remainingPower": 100
  },
  "location": {
    "type": "Point",
    "coordinates": [
      -73.9848,
      40.7586
    ]
  }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)var axios = require('axios');
var data = JSON.stringify({
  "assetIdentifier": "hero_001",
  "name": "High Flyer",
  "description": "A high-flying superhero.",
  "attributes": {
    "icon": "superhero",
    "powers": [
      "Flight"
    ]
  },
  "metrics": {
    "remainingPower": 100
  },
  "location": {
    "type": "Point",
    "coordinates": [
      -73.9848,
      40.7586
    ]
  }
});

var config = {
  method: 'post',
  url: 'https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets',
  headers: { 
    'X-Authorization': 'API_KEY', 
    'Content-Type': 'application/json'
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});


```

{% endtab %}
{% endtabs %}

You can see the asset in the control room now:

![](https://lh5.googleusercontent.com/g6kt2n-mkBDJHV9fOpNnpbXiskHH-31AyrQPUtZHueeSqimGrC5XRA-UhWh0LDTzYCvefJxsnKgp-FYOE7_QhKu4zIQfgYKFV3MSVdyRaDgit8N0zMsUmjYtQpLfVjfHnNBR50AY)

We can specify a few things as part of creating a new asset:

| **assetIdentifier** | Unique identifier of your own choosing                                                                                                                                                        |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **name**            | Meaningful name for your asset                                                                                                                                                                |
| **description**     | Describe your asset                                                                                                                                                                           |
| **attributes**      | Descriptive properties of your asset                                                                                                                                                          |
| **icon**            | Leaving this unspecified will create a default asset icon for you. If you have a custom icon, email <assets@skyledge.com> with the icon you’d like and it’ll be generated within a few hours. |

You’ll be able to see some/all of these attributes in a modal when you click on the asset. Pops up like this in the control room:

![Asset modal](https://lh3.googleusercontent.com/6XC6IBzk84o1RfCoc689rgvHjheHvMUMSQ1NkyyMk4g2_9efThzJSQi4U_Eemv136aE6IKDm4P9P05ua-C_ZkmyS1k2SEEjg_4PNASTzwPdb3ebuAQMNHtxV9Hkv3_40epkEPP9X)


# Creating and Tracking a Metric

We’d like to see how much potion our Heroes have left, we can easily specify a gauge indicator alongside our assets.

### Create and Track a Metric

#### **Add Gauge to Hero Asset**

```
PUT api.skyledge.com/controlrooms/{controlRoomId}/asset-types/{assetTypeId}

{  
   "displaySettings":{  
      "MAP":[  
         {  
            "tagName":"slc-gauge",
            "options":{  
               "metric":"remainingPower",
               "unhealthy":"remainingPower <= 10"
            }
         }
      ]
   }
}

```

{% tabs %}
{% tab title="cURL" %}

```
curl --location --request POST 'https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets' \
--header 'X-Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{  
   "displaySettings":{  
      "MAP":[  
         {  
            "tagName":"slc-gauge",
            "options":{  
               "metric":"remainingPower",
               "unhealthy":"remainingPower <= 10"
            }
         }
      ]
   }
}'
```

{% endtab %}

{% tab title="NodeJs" %}

```
import { Configuration, AssetRequest, AssetsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com',
});

const data: AssetRequest = {
  displaySettings: {
    MAP: [
      {
        tagName: 'slc-gauge',
        options: {
          metric: 'remainingPower',
          unhealthy: 'remainingPower <= 10',
        },
      },
    ],
  },
} as any;

const assetIdentifier = ASSET_IDENTIFIER;

const assetApi = new AssetsApi(configuration);

const addMetric2Asset = await assetApi.updateAssetUsingAssetIdentifier(
  assetIdentifier,
  data,
);

console.log(addMetric2Asset.status);

```

{% endtab %}

{% tab title="Python" %}

```
import requests
import json

url = "https://api.skyledge.com/asset-types/ASSET_TYPE_ID/assets"

payload = json.dumps({
  "displaySettings": {
    "MAP": [
      {
        "tagName": "slc-gauge",
        "options": {
          "metric": "remainingPower",
          "unhealthy": "remainingPower <= 10"
        }
      }
    ]
  }
})
headers = {
  'X-Authorization': 'API_KEY',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

```

{% endtab %}
{% endtabs %}

Notice that remainingPower refers to the metric we specified in Step 5. We can also create rules to indicate when the gauge indicator should enter an “unhealthy” warning state.


# Future Updates

This Getting Started guide for developers will continuously be updated to accommodate new features and additions to the platform.

You can always reach out to us at <support@skyledge.com> if you get stuck or have any feedback. We’re always open to taking your suggestions on board. You can also get in touch by joining our [Slack Community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA).


# Launchpad

Defining the Launchpad and its functionality

## Getting to know your Launchpad

Ok great, so you've created an account and signed in! Here's what you'll see once you've signed in, your Launchpad:

![Empty Launchpad](/files/PfQCO1wTlVziWxeqpKLz)

The Launchpad is where you can easily see Control Rooms that have been shared with you as well as those you've created. Let's take a closer look at what's available on the Launchpad.

### Launchpad Navigation

1. **Control Rooms**: Displays all Control Rooms you own and shared with you.
2. **People & Assets**: Manage your people and assets including utilisation and other performance metrics.
3. **Places**: A list of places and geofences that are important to your team so you can harness the power of location to get geospatial insights.
4. **Pulse**: A way for you to capture information through forms (e.g. customers submitting support requests or work orders or even from Alexa/Google Home type devices)
5. **Rules & Actions**: See and manage business rules that trigger different behaviours with respect to your people, assets or places.
6. **Help**: Brings you right here to learn more!
7. **Manage your Organisation**: View and invite users to your organisation as well as **API keys for developers** integrate external systems, sensors and assets with your Control Rooms.
8. **Users & Permissions**: Invite users for them to collaborate with you.

#### Header Navigation

1. **Notifications**: Receive updates on changes and new features.
2. **Profile**: Access your profile information and update billing details.
3. **Suggestions**: Tips and tricks to help you get started and find inspiration to get the most out of Sky Ledge.

#### First Time Launchpad

1. **Create a new Control Room**: Create your very own Control Room. Psst, most people will prefer to get an invitation to an existing Control Room.
2. **Action Button**: Quickly create a control room or take other actions exposed via Apps or Sky Ledge modules.

### Populated Launchpad

![Populated Launchpad](/files/MAQ4P0i9ZWyFA5YuWbwP)

Once you have either created Control Rooms of your own, or someone has invited you to their Control Rooms, your Launchpad will be populated with Control Rooms. You can easily explore Control Rooms and access a few convenient shortcuts:

1. **Suggestions** : Tips and tricks to help you navigate Sky Ledge and ideas to get inspiration from.
2. **View as Cards or Table**: You can choose to display your Control Rooms as a set of cards (as in the screenshot above) or as a table. Tables are useful when you have a dozen or more Control Rooms.
3. **Control Room**: A short title and sometimes a description of what the Control Room does. Click the card to open up your Control Room and explore the insights it provides.
4. **Control Room Shortcuts**: Hovering over a Control Room panel displays these three dots. Clicking on these dots will give you some quick shortcuts to invite and modify your Control Room.
5. **Invite Users**: Easily invite others to access the Control Room.
6. **Manage Event Types**: Manage the types of events that are displayed in this specific Control Room.
7. **Delete this Control Room**: Delete a control room. Be careful, make sure this is what you want to do!

Great, so you're now comfortable with the Launchpad. Time to get you across where all the action happens, [Control Rooms](/fundamentals/control-rooms)!


# Control Rooms

Defining the Control Room and its functionality

## A Fresh Control Room

You've signed in, seen the Launchpad and ready to start exploring Control Rooms.

Let's go ahead and create a brand new Control Room to see how it looks.

Simply:

1. Go your launchpad. You can learn more about launchpads [here](/fundamentals/launchpad)
2. Create Control Room.
3. Give it a name,
4. Create Control Room.

And here's what you get, a brand new Control Room:

![New Control Room](/files/igOHCMLWDxGHMLYELxhH)

Let's dig in and see what's inside:

#### Header Navigation

1. **Name of your Control Room**: Clicking this will take you back to your main screen.
2. **Sky Ledge Shortcuts**: Shortcuts to go back to your Launchpad, Manage Users or Update Control Room settings.
3. **Profile**: Access your profile information, update billing information or simply sign out.

#### Side Navigation

1. **Control Room**: View your live event stream and take action.
2. **People & Assets**: Explore assets linked to your Control Room.
3. **Places**: Create and manage places and geofences relevant to this Control Room.
4. **Reports**: Access reports about information in your Control Room.
5. **Invite Users**: Invite others to the Control Room.
6. **Collapse Sidebar**: Tuck the navigation panel to the side, you can always expand this navigation menu once it's been collapsed.
7. **Learn more**: Learn about viewing and managing Control Rooms. This will bring you to this page.

***

## Populated Control Rooms

Once events begin flowing into your Control Room, it will look something like this. Everything remains the same, but we've got a few extra capabilities:

![Event Stream displayed in populated control room](/files/AIU9zypSdCLlyNdPeUBs)

#### The Event Stream

1. **An event**: The simplest building block of a Control Room. Events contain information, insights and actions. At minimum, events have a signifiance level (the coloured dot) as well as a title and description.
2. **An expanded Event**: You can expand an event by clicking it. This will provide additional information about an event as well as actions you can take.
3. **Event Actions**: Actions let you respond to an event
4. **Collapse**: Easily restore an expanded event to its simple view by clicking the collapse bar.
5. **Zoom Controls**: Zoom in or out!
6. **View All**: Sometimes you want to get a sense of where all events are. Simply click this button to fit all events on the map.

Great, you should now be comfortable navigating a Control Room. Time to look at [Assets](/fundamentals/assets).


# Assets

Defining Assets, Asset Types and how to differentiate between them

## Assets and Asset Types

### Understanding Assets vs. Asset Types

The distinction between Assets and Asset Types are important in Sky Ledge. They provide you with the understanding you need to describe your asset structure within Sky Ledge effectively.

### What you'll learn

* What is an Asset
* What is an Asset Type
* What it means for your organization

### What *is* the difference between an Asset and an Asset Type?

An asset refers to something that exists. It could be a particular person, a specific machine, sensor or a given record (e.g. an online transaction).

For example, your car is an Asset. It exists. It is also identifiable in some way, perhaps by its registration number, let's assume XYZ-123.

On the other hand, an Asset Type describes the type or class of a given asset. Your car with registration number XYZ-123 belongs to a 'Car' Asset Type.

In Sky Ledge, any Asset within an Asset Type will have the same metadata fields associated with them. For example, all assets within the 'Car Asset Type' might have the following metadata:

* Registration Number,
* Manufacture Date and
* Car Model

On the other hand, an 'Employee' Asset Type might have the following metadata associated with them:

* First Name
* Last Name
* Date of Birth

It is impossible (and strange) for a given car Asset to be part of the Employee Asset Type because it has different metadata associated with it. Similarly, an employee (e.g. Eva Williams) would never be considered to be part of the Car Asset Type.

If in doubt, remember that Asset Type asks the question: "what *type* of asset is this".

![Difference between Asset & Asset Type and how they're linked](/files/EDE8BJw4CUmQZ2dWk5T2)

### How can my organization use Assets and Asset Types?

Asset Types are a fundamental building block within Sky Ledge. Asset Types help you model an organization's entire Asset Portfolio. For example, HP Inc has a diverse assert estate, to name a few:

* 4 Ships that transport potion ingredients from Hogwarts to their factory in New York
* 1,000 Delivery Trucks that transport potions to their pharmacy customers
* 3 Potion product lines (Flight, Memory and Speed).
* Dozens of manufacturing equipment
* HP Customers: 100k+ pharmacies whose stock levels need to be tracked to trigger automatic refill requests

HP Inc represents each of these as a separate Asset Types. Some of these can even be broken out further into multiple Asset Types.

### How do I decide whether I need one or more Asset Types for a class of assets?

Start with listing out the metadata you need to capture about any given asset. Once you've done this, group assets that share metadata under an Asset Type where it makes sense to do so. Let's take a look at an example:

#### Modelling Asset Types Example

For example, HP Inc decided on their structure by asking "what information do we need to store and analyse about each of these assets?" This question led to an interesting discovery:

**HP Ships** :ship:

HP needs to capture the following metadata about each of their ships:

* Ship ID
* Captain
* Departure Date
* Arrival Date

So HP has decided to group all four of their ships under a single 'Ship' asset type in Sky Ledge.

**Delivery Trucks** :truck:

HP need to capture the following metadata about each Delivery Truck vehicle:

* Driver Name
* Model
* Odometer Reading

Similar to ships, HP has decided to group all one thousand of their trucks under the one 'Delivery Truck' asset type.

**Potions** :woman\_mage:

Even though they all seem to be the same 'asset type' on the surface, it turns out HP require different metadata for different potion products. Let's take a look:

**Flying Potion:**

* Max Flight Duration
* Manufacture Date
* Use by date

**Speed Potion:**

* Max Speed Duration
* Manufacture Date

**Memory Potion:**

* Potion memory quality
* Manufacture date

In this case, HP chose to model each product line as a different asset type. Breaking potions out into three different asset types makes sense as they require specific metadata to be captured depending on the potion type.

### Key takeaways

As a rule of thumb, assets within an Asset Type share common metadata. Sometimes you will have good reason to create separate asset types even though assets share the same metadata on the surface.

Looking at HP Inc, they later realized that although the 1,000 trucks have common metadata, 300 of these trucks are leased from a fleet rental company. To make reporting easier, and to also allow for future flexibility, HP decided to create a new 'Rental Truck' asset type and store 300 of the delivery trucks in that category, and have the other 700 trucks inside of the 'HP Delivery Truck' asset type.&#x20;

This way it's easier to distinguish rental trucks from HP-owned ones, and it would open possibilities to store additional metadata against rental fleets down the track (e.g. lease expiration date).

How you organize Asset Types very much depends on the outcomes you expect. If in doubt, you can always join our Slack [community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA) and ask all the questions your heart desires. You also get the opportunity to ask other Sky Ledge users how they went about assigning Asset Types.

## Asset Metrics and Attributes

In the previous article, we agreed that Assets within an Asset Type share the same metadata. But what do we mean by metadata?

Metadata is a set of fields or labels that gives more information about any given or asset type.

What you'll learn:

* Default asset metadata
* What asset metrics are
* What asset attributes mean

### Asset Type Metadata

Asset Types describe the type of asset stored in a collection. They include the following metadata by default:

* Name
* Description
* Identifier

Suppose HP Inc need to create an Asset Type to store our "Invisibility Machines", we could describe it using the following metadata:

| Asset Type Property | Example                                   |
| ------------------- | ----------------------------------------- |
| Name                | Invisibility Machine                      |
| Description         | HP Inc's top secret invisibility machines |
| Identifier          | hp-invisibility-machine                   |

### Asset Metadata

Quick recap: Assets refer to specific things. Specific machines, people or entities that fall under a given 'Asset Type'.

By default, Assets can contain the following metadata:

| Asset Property   | Description                                                                                           | Example                              |
| ---------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------ |
| ID               | Automatically generated by Sky Ledge to identify this asset                                           | aa5b5c5a-6ee8-48d3-832b-a95862bd82e5 |
| Asset Identifier | An optional way for you to reference this asset without having to remember or use Sky Ledge's ID      | xyz-123                              |
| Name             | An optional user friendly name for your asset.                                                        | Invisibility Machine                 |
| Description      | An optional description for your asset.                                                               | Super secret invisibility machine    |
| Location         | A set of coordinates. Sky Ledge can translate these into an address.                                  | 58.35,-1.40                          |
| Created          | A valid date.                                                                                         | Today's date                         |
| External URLs    | Any links you would like to include (e.g. to a manual, intranet or external device or control system) | <http://link.to/anywhere/>           |
| Attributes       | Attributes related to your asset.                                                                     | More on attributes next.             |
| Metrics          | Metrics related to your asset.                                                                        | More on metrics below.               |

### Summary

An Asset can include both attributes and metrics.

Attributes are properties of an Asset that change infrequently or not at all. Examples include name, model number and age.

Metrics are numeric values that change over time — metrics store historical information which you can query historically. Examples of metrics include speed, temperature or rotations per minute.

Note: Enterprise customers can store non-numerical information as well. Reach out to your Customer Success Manager for further details.

Tags:\[satellite]


# Events

Detailed breakdown of Events coming soon. Stay tuned!


# Places

Detailed breakdown of Places coming soon. Stay tuned!


# Cycles

Detailed breakdown of Cycles coming soon. Stay tuned!


# Widgets

Detailed breakdown of Widgets coming soon. Stay tuned!


# API Docs

Sky Ledge API Documentation

Access Sky Ledge's API Documentation here: [API Docs](https://platform.skyledge.com/apidocs/index.html)


# NodeJs

How to install and get started with Sky Ledge's NodeJs SDK

## Installation

The Sky Ledge SDK provides convenient access to the Sky Ledge API from applications written in both server-side and client-side JavaScript/Typescript.

### NPM

```
npm install @skyledge/sdk --save
```

### YARN

```
yarn add @skyledge/sdk
```

## Getting Started

The package needs to be configured with your account's API key, which is available from the Management section of your Sky Ledge account. Checkout [Sky Ledge API - Quick start](/getting-started/sky-ledge-api-quick-start#getting-your-sky-ledge-api-key)for more detail

```
import { Configuration } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com'
});

```

Once you have your configuration object, you can instantiate the different Sky Ledge APIs. Here's an example of instantiating the Asset API:

```
import { Configuration, AssetsApi } from '@skyledge/sdk';

const configuration = new Configuration({
  apiKey: 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX',
  basePath: 'https://api.skyledge.com'
});

const assetsApi = new AssetsApi(configuration);

const assets = await assetsApi.listAssets();
```

You can always reach out to us on <support@skyledge.com> if you get stuck or have any feedback. We’re always open to taking your suggestions on board. You can also get in touch by joining our [Slack Community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA).


# Where to find us

All the places you can engage with us

### Slack

Find us on Slack: [Slack Community](https://join.slack.com/t/skyledge-community/shared_invite/zt-18caefdqu-NCMJhg78jKasLESaLw_5wA)

### Social Media

Linkedin: [Sky Ledge](https://www.linkedin.com/company/skyledge)

Twitter: [sky\_ledge](https://twitter.com/sky_ledge)

Medium: [Sky Ledge](https://medium.com/sky-ledge)

### Website

To learn more, check out our website: [Sky Ledge Website](https://www.skyledge.com/)

Or contact us directly: [Contact Us](https://www.skyledge.com/contact)


# Articles

We greatly appreciate your presence and engagement with our platform. As we strive to deliver the best possible experience, your feedback becomes an invaluable tool in shaping what we do. Your opinions, suggestions, and insights are the driving force that enables us to improve and excel.

Please feel free to share your feedback with us through the provided channels below. Your insights will be carefully considered and deeply valued.


# What is a LaunchPad

The Launchpad is your starting point into the Sky Ledge Platform, it's your eyes and ears to your assets and vehicles. Upon signing in, you'll see your own individually designed space where you can seamlessly navigate through all the different control rooms of your business.  Having all your information in a single storage unit provides you the gateway into your business operation that provides a holistic and multifaceted approach to monitoring, and decision-making, and helps businesses stay agile, responsive, and competitive in today's dynamic environments.

The benefits of having the Sky Ledge Platform with business or asset-type defined control rooms are:

1. **Enhanced Situational Awareness:** With the click of a mouse you can visually assess the state of your operations while having a stream of events to provide the auditory information you require. This combination allows you to have a more complete and accurate understanding of what's happening within your business.
2. **Timely Decision-Making:** Having access to both visual and auditory data enables quicker and more informed decision-making. You can respond promptly to emerging situations, whether they are opportunities or challenges.
3. **Improved Safety:** In certain industries, having event streaming means monitoring for sounds or alarms that could indicate safety hazards. Combined with the platform this provides a robust safety net for identifying and addressing potential risks.
4. **Efficient Resource Allocation:** By having a complete view of your business operations through "eyes and ears," you can allocate resources more efficiently. This ensures that you have the right people and assets in the right place at the right time.
5. **Effective Troubleshooting:** When issues arise, having both visual and auditory data helps with troubleshooting. You can identify problems more accurately, leading to faster resolutions.
6. **Continuous Improvement:** Access to comprehensive information helps in analyzing processes and identifying areas for improvement. This data-driven approach is essential for continuous optimization.
7. **Competitive Advantage:** Utilizing LaunchPad and Control rooms, effectively can give you a competitive advantage. It allows you to stay ahead of industry trends, respond to market changes, and outmaneuver competitors.
8. **Compliance and Accountability:** Visual and auditory records can be critical for regulatory compliance and accountability. It provides evidence of adherence to industry standards and practices.
9. **Optimized Communication:** Having both visual and auditory communication channels improves communication within your organization. It ensures that information flows efficiently, reducing misunderstandings.

<figure><img src="/files/FQbRQM32IumOYWcoPbeW" alt=""><figcaption></figcaption></figure>

Inside the LaunchPad you can explore the following:&#x20;

* [Control rooms](/knowledge-base/articles/what-is-a-control-room) you have created or have been invited to
* Help & Learning, so you can explore all that's possible
* Your [profile](/knowledge-base/articles/navigating-your-profile), including how to reset or update your password

<br>

<details>

<summary>Tags</summary>

The Launchpad is your starting point into the Sky Ledge Platform, it's your eyes and ears to your assets and vehicles. Upon signing in, you'll see your own individually designed space where you can seamlessly navigate through all the different control rooms of your business.  Having all your information in a single storage unit provides you the gateway into your business operation that provides a holistic and multifaceted approach to monitoring, and decision-making, and helps businesses stay agile, responsive, and competitive in today's dynamic environments.

The benefits of having the Sky Ledge Platform with business or asset-type defined control rooms are:

Labels: control panel, invite, permission

</details>


# What is a Control Room

A control room serves as your window into the performance and behaviour of all your assets and vehicles. Within the Sky Ledge platform, this single room enables the following tasks to be accomplished seamlessly:

1. **Monitoring and Management**: Operators or controllers can efficiently monitor and manage various groups of assets, all from a single view.
2. **Comprehensive Insights**: Managers gain a holistic view of all actions, events, tasks, and dashboards, providing comprehensive insights into operations.
3. **Detailed Investigation**: Problem managers can delve into the detailed heartbeat of a single asset or multiple assets, allowing for a deeper understanding and informed decision-making, as well as necessary actions for compliance and continuous operational improvement.
4. **Workflow Efficiency**: Workflows and processes can be scheduled, completed, and reported within a single view, streamlining operations.
5. **Collaboration**: Employees can be invited into a single control room, ensuring that everyone has access to the same operational data feeds, particularly in remote working environments.
6. **Geo Boundaries**: Defined geographical boundaries can be established, enabling operational awareness regarding the location and safety of personnel and assets.

In summary, a control room within the Sky Ledge platform consolidates operations and data, providing a central hub for monitoring, decision-making, and collaboration, ultimately enhancing efficiency and safety in various operational contexts.

<br>

<figure><img src="/files/z7a1s3u3TPK8OLrTittL" alt=""><figcaption></figcaption></figure>

<details>

<summary>Tags</summary>

A control room serves as your window into the performance and behaviour of all your assets and vehicles. Within the Sky Ledge platform, this single room enables the following tasks to be accomplished seamlessly

Labels: map, traffic, satellite, invite, permissions

</details>


# How to use the maps controls and layers options

## Summary

Sky Ledges map interface offers a variety of controls that allow you to navigate, zoom, and interact with the map. Here's a guide on how to use the basic map controls:

1. **Zoom In and Out:**
   * **Zoom In**: To zoom in on the map, you can either use the "+" button located in the lower-right corner of the map, or you can use the scroll wheel on your mouse. You can also double-click on the map to zoom in on that specific location.
   * **Zoom Out**: To zoom out, you can use the "-" button in the lower-right corner of the map or use the scroll wheel in the opposite direction.
2. **Navigation:**
   * **Pan**: Click and hold the left mouse button on the map and drag it in the direction you want to move to pan the map.
   * **Arrow Controls**: Use the arrow keys on your keyboard to pan the map in different directions.
3. **Map Types:**
   * **Map Type Selector**: Click the "Map" button in the top-right corner of the map to open the map type selector. You can choose from different map views, such as "Map," "Aerial," "Terrain," and "Traffic".
4. **View all:**
   * **View all button**: Use the 'View All" button at the bottom of the map to zoom out to view all the assets on the map, no matter how far away they are.

<br>

<details>

<summary>Tags</summary>

Sky Ledges map interface offers a variety of controls that allow you to navigate, zoom, and interact with the map. Here's a guide on how to use the basic map controls:

labels: traffic, satellite

</details>

labels: traffic, satellite


# Map marker explained

We’ve updated the asset map markers to make it easier for you to see what your vehicles are doing at a glance. These colour-coded markers show the current status of each vehicle on the map, so you can quickly spot who’s on the move, idling, parked, or offline.

&#x20;Here’s a quick rundown of what each colour means:

### &#x20;MOVING: Green ![](/files/pikCUNs70VDD5qX2nMWo)

The vehicle is turned on and is moving.  In this state, you will also get a direction marker indicating which direction the vehicle is travelling in. This will assist you in understanding if the vehicle is going up or down a highway.

&#x20;![](/files/Z80NM7A1eGXUCS85UIj3)

### IDLING: Orange ![](/files/ew2yq9p9kTzqRRXctfvn)

The vehicle’s engine is turned on and is currently idling. When idling, the vehicle is NOT moving

![](/files/LNjCsaUp9UU6rEq1NJlw)

### STATIONARY: White ![](/files/ddW926SISL1OQZQ075SL)

The vehicle’s engine is off and is not moving

&#x20;![](/files/DZxvYVMIEfxP0h8eZ9Hr)

### INACTIVE: Red ![](/files/aCn39fcSONxrCx1YcJbL)

The vehicle hasn’t communicated with the platform for over 48 hours

&#x20;![](/files/pDYJc71uLBKam9WpqQaZ)


# Navigating your profile

Navigating your profile on the Sky Ledge platform involves accessing and managing your account information, preferences, and settings. Here are some common steps for navigating your profile:

Getting started

1. **Log In:** Start by logging into your account using your username and password.&#x20;
2. **Access Your Profile:** Once you're logged in, look for a "Profile" option in the top right-hand side of the navigation menu. Click on this option to access your profile page.
3. **Edit Profile Information:** Within your profile, you may have the option to edit and update your personal information, such as your name, email address, password, and profile picture. Look for an "Edit" or "Update Profile" button or link.

![](/files/jfZNSQgkGMY8Ve6JfMl0)

4. **Profile Information:** In your profile, you will find two (2) sections accessible from the left-hand side panel. The available options include:

   a.) Personal Info Updates: This section allows you to update your personal information.

   b.) Password & Security Resets and Updates: In this section, you can manage password changes and security updates.

<img src="/files/CNwxmSQirbVGqTRDmrsE" alt="" data-size="original">

5. **Profile Information:** In the "Update My Profile" section, you have the ability to modify your personal details using the provided form. Please note that you cannot change the base email address with which you were initially invited.

![](/files/okmxsVooMUUGu3gpt34i)

6. **Security:** The "Password & Security" section enables you to reset your password by using a secure email link to the email address to which you were initially invited.

![](/files/FWahul4jg8l1JhUfNuow)

<details>

<summary>Tags</summary>

Navigating your profile on the Sky Ledge platform involves accessing and managing your account information, preferences, and settings. Here are some common steps for navigating your profile:

Getting started

Labels: account, password, reset

</details>


# What is an Event

Events are real-time data points captured as a result of asset or vehicle usage. Their primary purpose is to notify the business of situations necessitating either logging for auditing purposes or triggering alerts for compliance and maintenance needs. All published events are associated with a parent template [event-type](/knowledge-base/articles/what-is-an-event-type) class, which includes relevant metadata fields for streamlined event reporting.

Examples of asset-related events include:

* On and off triggers
* Threshold triggers (e.g., RPM, speed)
* Usage amounts (in minutes or distance)
* Alarms

It's important to note:&#x20;

* All events are asset-driven and can not be created manually via the platform console
* All events are linked to a parent event-type template that contains relevant metadata fields for comprehensive asset, business unit or organization reporting.&#x20;

<details>

<summary>Tags</summary>

Events are real-time data points captured as a result of asset or vehicle usage. Their primary purpose is to notify the business of situations necessitating either logging for auditing purposes or triggering alerts for compliance and maintenance needs. All published events are associated with a parent template [event-type](/knowledge-base/articles/what-is-an-event-type) class, which includes relevant metadata fields for streamlined event reporting.

label: event stream, fuel, speed, brake, alert

</details>


# What is an Event Type

Event types are containers for like-minded events to be associated with and reported on.  The main difference between events and event types is&#x20;

* An event is a single occurrence data point and&#x20;
* An event type is a collection of events that in turn enables the events to be grouped for reporting or investigated.
* An event can contain common event attributes for summary information if needed.

<details>

<summary>Tags</summary>

event, collection, speed, fuel

</details>


# Exploring the event stream

The event stream is a collection of focused events in chronological order, each event represents either informational or alerting capsulated data points. Within each event, you can do the following:

* Copy Link: Share the event with others with the unique event link, delivering the recipient all the details including the locating with a single click.
* Locate on Map: Locate the exact location where the single event occurred, additional information regarding the event will appear in an informational modal

![](https://lh5.googleusercontent.com/1IdMkqT1Xwro3YfBNsFjcwbSJPwF0fhAjETyxeLDApZai_2xtIX_p67YsCbjd8r4sz3ucrytrvgKZzwQVP9hwVG0DqwVJchDgUz1REQ7WNMqY1j4Kbqr3tlGckGk3emrAB3BL7MmO49YprC09johqfc)

<br>

<details>

<summary>Tags</summary>

The event stream is a collection of focused events in chronological order, each event represents either informational or alerting capsulated data points. Within each event, you can do the following

Label: event, fuel, speed, brake, event type

</details>


# Event Stream Filtering

The event stream filtering feature, helps you manage information and extract meaningful insights from the event data packets in various assets, event types or different importance statuses. It involves the use of rules and conditions to sort, prioritize, or manipulate information to achieve specific goals or meet particular requirements

With a few clicks of the mouse, you can

* Select between live and cleared events.
* Displaying selected importance levels
* Filter the events by time or date
* Filter the events by event type
* Drill further into the event attributes and filter on a subset data point

![](https://lh6.googleusercontent.com/ZCca4_r4Mz1W3EbjNIVUcF-hTAFaRq2d-aNrn_PYsYHp7PCnUQMSa4pSw2HX6fz76v2jUTXsZtUadxWsi240K8bDGqOCLZ5wY6tD6Tkmr_j8um3qLfK8kBZ9HIWPw7grZVf6Mrj4pt6zlYl1DskWWdA)

{% embed url="<https://youtu.be/_FFEKB5reY8>" %}

<details>

<summary>Tags</summary>

The event stream filtering feature, helps you manage information and extract meaningful insights from the event data packets in various assets, event types or different importance statuses. It involves the use of rules and conditions to sort, prioritize, or manipulate information to achieve specific goals or meet particular requirements

time, date, importance, events, attribute

</details>


# What is an Asset

An asset refers to something that exists; it could be a particular person, a specific machine, a sensor, or a given record. Examples of assets include but are not limited to, logistic vehicles, employees, pumps, and sensors on remote equipment.

Within each individual asset record, we can store an unlimited amount of unique sub-records regarding that specific asset, encompassing document and compliance records, key asset metrics, and attributes about that individual device.

All assets are associated with a parent template[ asset-type](/knowledge-base/articles/what-are-asset-types) class, which includes relevant metadata fields for streamlined reporting and insights

<details>

<summary>Tags</summary>

An asset refers to something that exists; it could be a particular person, a specific machine, a sensor, or a given record. Examples of assets include but are not limited to, logistic vehicles, employees, pumps, and sensors on remote equipment.

Within each individual asset record, we can store an unlimited amount of unique sub-records regarding that specific asset, encompassing document and compliance records, key asset metrics, and attributes about that individual device.

All assets are associated with a parent template asset-type class, which includes relevant metadata fields for streamlined reporting and insights

label:type

</details>


# What are asset types

Asset types represent a categorisation of similar [assets](/knowledge-base/articles/what-is-an-asset), such as trucks, sedans, or buses, that exhibit shared characteristics and reporting requirements. This classification facilitates the platform's capacity to recognise, process, and present data or entities in a manner that streamlines, condenses, or structures information to enhance manageability and extract valuable insights or discern patterns from intricate data. When asset types align, similar configuration settings, including metrics and visual aids, can be applied.

<br>

<details>

<summary>Tags</summary>

</details>


# Understanding Focus Mode

Focus Mode is a feature designed to help you concentrate on the essentials within the platform. By activating Focus Mode, distractions are minimised, leaving only the critical elements on your screen – the map and the control room assets.

![](https://lh7-us.googleusercontent.com/cW8gH4W1FEtOgEPsXirCwwM9WiWLJFdvBM9Hl_dYjxTx8cNsI6Qtt6M_GrSxv2uYnoQHIg-o87Z9FRunsPL1Wlaq6R8RgNd_UMqugaRnK_Y1PvrZiJKOdMlvQnBpbwtavOrkFTeZg90yGF_2ze82CLo)

How to Activate Focus Mode:

Follow these steps to activate Focus Mode:

**Step 1: Navigate to the Asset Module:**

Ensure you are in the Asset Module before you begin.

**Step 2: Access the Map Switcher:**

Locate the map switcher within the Asset Module.

![](https://lh7-us.googleusercontent.com/HimhQUE504eQO7RCdifaFm3_LsiM9NTBVHuxBi7f8ATNWqc_296kkDjs8UKuZ8GA-5Z2Ng0PRDMlV1meokbNR1cf_klznaFrOHwqrfuw_CKLBbqaoH1wBKnQl5McSTvuG69ukuHVOp8bC8zcHubUDow)

**Step 3: Click on the "Eye" Icon:**

Find and click on the "eye" icon within the map switcher.

![](https://lh7-us.googleusercontent.com/0iUrq4Xn0CqBeA71Q2erq_OjhKYiVuQlqerx8d6xia4yvzFZGAtqoN2vrSoObgHlm1pYu61Mpp1VUSknuUvXPNdJgqWkH665jzxn5VXKSfdYXJ135qrM6xRRUUU-ZtaZGgEX9LPoGRyONH4PA_Nxwao)

You’ve now unlocked an enhanced view of the map without sacrificing any essential details, streamlining your workflow.

{% embed url="<https://youtu.be/6xCaV2VDDJ0>" %}

<br>


# Navigating Asset List Mode

**What is Asset List Mode?**

Asset List Mode is a feature designed to simplify your control room experience. It provides a condensed, yet comprehensive list of your assets, presenting all essential information in one accessible location.

In this mode, you'll find an organised view that includes:

**Asset Type:**

Quickly identify the type of asset.

**Asset Name:**

* Easily locate the name of the asset for quick reference.

**Driver's Name:**

* Access information about the assigned driver.

**Fuel Tank Details**:

* Stay informed about the fuel tank capacity and current fuel level.

**Recent Events:**

* View the last five events associated with the asset.

{% embed url="<https://youtu.be/pcsiwh2jq0s>" %}

**Upcoming Features:**

In the next release, we plan to introduce the movement status. This enhancement will allow you to monitor your asset’s current activity, whether in motion, idling, or stationary with the engine off.

<br>


# Table column selection

Inside the Control Room, things are organized in tables, but sometimes it can look crowded. Don't worry—there's an easy way to tidy them up.

First, figure out which columns you need and which ones you don't. Then, turn off the ones you don't need. Let's go through it together.

1. Scroll to the right of a table to find three dots – also known as vertical ellipsis (⋮).
2. Click on the top ellipsis to open a menu with column titles.
3. Toggle off the columns you don't need.

And there you have it! A tidier table tailored to your needs.

<figure><img src="https://lh7-us.googleusercontent.com/iTbZHT7ReAgx0LRJ8Jqo8TMmLMGb5XF5zruwx3q3UrD1rHDVVjmnPRYeLC7C6HYo7RBPzHzw_NiYgBdwvpLGU7jlTwzx6zt_eg0AiDM5_k1iTLgoO1VQchO45fZ1gqSJqpBHeck-Sqv_meD1V65ilts" alt=""><figcaption></figcaption></figure>

<br>

<details>

<summary>Tags</summary>

asset, places

</details>


# Asset metrics

<details>

<summary>Tags</summary>

model. rego, fuel consumed, fuel percentage, distance, trips

</details>


# What is a place

A "place" refers to a specifically defined geographical location within your organisation that you aim to monitor for asset activities. Places often include areas like delivery zones, storage yards, office buildings where employees work, or distinct Points of Interest (POIs). These locations serve as key asset monitoring and management points within your organisation's operational landscape.

Using the [gatehouse](/knowledge-base/articles/places-and-how-to-use-the-gatehouse-report) report, you can:

* monitor assets entering or exiting a yard
* the time an employee is in a section of the building
* observe instances where someone enters another individual's designated delivery zone&#x20;
* keep tabs on visits to gas stations for refueling purposes


# Searching and Creating a Place

{% embed url="<https://youtu.be/afJprefyc2A>" %}

1. From the map toolbar on the right-hand side of the screen, click on the magnifying glass ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeEGKnIv6OCdgDlowdl_2Eidq6sFQ6X-khpkKlzlnYcskNOOFDQ_yBxGO7rMGsIu01anIKgQ9QR0YQz5Ah98NOYnDuttbkg_9lxSInHix0EvQfmjyH475y11C6p7kJj7hE_QpQ3sU3xoW5tQB4cf2JwxqEB?key=NBaLQlc9OVfYSnNfO2C8kA), option item to open the global search feature.
2. Within the global search bar, type in the address location or the name of the place you want to locate.<br>

   <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcZa-qDLGck8jcwkSs2lasqq2XyFnGVQbgjeUzO1XGetbxG_hpxxHGkzTWsAxaDd52Jx95Z1wzpGWJa9tvKzZSDXJiKAv5FKE5bZEBM6GW4QyS6YTo0GiojunW4Mx6nnMfmekfJ2fphUISt5QUtd10vYe-3?key=NBaLQlc9OVfYSnNfO2C8kA" alt=""><figcaption></figcaption></figure>
3. Select and click on the best option that meets your requirements<br>

   <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdMU0ZdXwyx_4Eqd1ieE8W1q-AmbIiin4n4mC0bXyRXYeE4iGzLPvEyoA8JitJqGtBRCi_hV6WS9RisL9q9xwtmnvE3b7u4ygK27UykgVUYoqaM-jKMr1Wn5QHf-SKEGtETc5sSskCaTw2UrKVW6UrW8xka?key=NBaLQlc9OVfYSnNfO2C8kA" alt=""><figcaption></figcaption></figure>
4. To create a Place, click on the “create a place” icon ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcPPzekM92VNg2kjRvoF6sOliyUYeoqorp5zhyEDg9ONEq7QZqzINc_0QtmywzG979daY1v8KCEeKmvwFevjrK2wN3pCw30kmunQhgSYgTVCWaM-ul7lXZpOsY3NodX6qNd4IBrhtOcFSXLua8xhKgOQFD5?key=NBaLQlc9OVfYSnNfO2C8kA) on the location bar to open the "create a place" side draw

   <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe1-GW6vOqS3DiDlVbb5vQ1XHEkGhJuIsN8EbTCgG2sdsn6cf4oYxzFV_t3NAu34KL2q-Po2qdItGocqAX1ERuhavsU2UYMFzkLh1AtuyQVmFlC-uTtSet2Y0L3d9zM_YxuCwKkgLH_fpyD23l90RiQ7-JV?key=NBaLQlc9OVfYSnNfO2C8kA" alt=""><figcaption></figcaption></figure>
5. Enter the details of the location so you can remember it for the future, remember to use the drawing tools to create the geofence around the new place and don’t forget to select the “type of place” it is.<br>

   <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdFiuNqYlJz0frll6OCNAA2W13mgeggLZt-Dtrx90qLDIfhnVMEbPYxa4JH1bxnWhT2LuSZPdpYmCUlwCaAZZHHBkm6zzb5KBU-hJD03i7g7vgyIuGsjugr4eNYTfFF1yJL1d2tuDEXY4Mn_Mnss6TD-puV?key=NBaLQlc9OVfYSnNfO2C8kA" alt=""><figcaption></figcaption></figure>
6. After creating the Place, you can always monitor it via the gatehouse report (In Detail)  or the Place’s Insights module (High-Level Reporting).

a. To monitor if via the gatehouse select the place from the table within the Place’s module and click on the “View Activity” option and the gatehouse report will open\
![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfa5_YKKkXc-pUzkTHatwaAMlP8fJ3fuXjw6U9MA-vQrMIY2HxCaBnyW7twti2CtZowS9UwvmKvFQzTCpAUuBLCrOG0CafAg0nCqRtJK-AoaKPT3HbbWcyAPG9trSYDhpXv5Sb4k5-2bVSPnGxS_H6gYMuG?key=NBaLQlc9OVfYSnNfO2C8kA)\
![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd3t4BzfgM9Nk3Rnvqx6IdRxubVX6Y5wMwGsFd4gRDHq4BEbd6PPVy3H34IvOljiCQ_gK5dWzg-ZfAUM4yt0fCMeENs4rUDcxfIf0GsPGqaE23qO-ANfTI_8RJC_1O6SIsHR_vSqucanHlkt2AZHRGzeELN?key=NBaLQlc9OVfYSnNfO2C8kA)

b. To see it via the High-Level place Insights, navigate to the menu bar on the left and select the “Place Insight” option from the Reports menu\
![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfUofyqDLqmQ7sPwkzKTzfiS4tgZU7rgd7E6G2YAkPNtGUtTHlOXOOKSn2SzoNYKLY3YBvKgtmPD2eFeSmrs7-O3J62ZvcnqtEfx93qxtlUzTYUl7x4KjHueAZ8OonL2YZBI9T1d8GU9o3_ZQtBoU0MIfk?key=NBaLQlc9OVfYSnNfO2C8kA)

<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdhe84h1RqAa-2BX5vO3f0gQKCl9sPmN0utweeXNeBmrbkQf_iUxQAyQZXj6SZiBL2XpS8tNfn7ckTP_jthTVPfGb5KPf7J4be0vGvVh4If5pHY8Kc25EI3Wp3pw3jr7j9M5gW6thLTKc6OX3lBgm2iLnnY?key=NBaLQlc9OVfYSnNfO2C8kA" alt=""><figcaption></figcaption></figure>

<br>


# Getting Started with Place Notifications

Introduction to Place Alerts&#x20;

Place Alerts lets you set up email notifications when a vehicle enters or exits specific locations. This article will guide you through the creation of a Place notification, helping you maximise efficiency and reduce manual monitoring.

#### Getting Started with Place Notifications

**Step 1: Access the Places Feature**

1. Log in to the Platform:
   * Start by logging into your Sky Ledge account.
2. Navigate to Places:
   * Go to the "Places" tab from the map bar at the top of the screen.

**Step 2: Create a New Rule**

1. Select a Place:

   * Find and click on the place you want to monitor. This will open the place details action bar at the bottom of the screen.

   <figure><img src="/files/DDabKZWq7V4IH5uWCrIy" alt="" width="446"><figcaption></figcaption></figure>
2. Create a Rule:

   * In the place details action icon select the "Create Rule" option.
   * Choose the vehicle you want to monitor for this place.

   <figure><img src="/files/kfb4DqZoKWMqcnMRLNj2" alt="" width="217"><figcaption></figcaption></figure>

   * Save the rule to activate it.

   <figure><img src="/files/1rRa8fn8xRA6etWLwFmd" alt="" width="216"><figcaption></figcaption></figure>

#### Understanding Rule Notifications

* **Email Alerts**:
  * Once a rule is set, you will receive an email alert when the selected vehicle enters or exits the specified place.
* **Rule Archiving**:
  * After the rule is triggered and the alert is sent, the rule will be `archived` automatically. This ensures your alert system remains clutter-free and efficient.

#### FAQs

**Q1**: Can I create multiple rules for the same place?&#x20;

*A1*: Yes, you can create multiple rules for the same place, but each rule can only monitor one vehicle in the first iteration.

**Q2**: How do I know if a rule has been triggered?&#x20;

*A2*: You will receive an email alert when the rule is triggered, and it will be archived immediately after.

**Q3**: Can I edit a rule after creating it?&#x20;

*A3*: Currently, rules cannot be edited once created. You will need to create a new rule if changes are needed.

**Q4**: What if I need alerts for more than one vehicle?&#x20;

*A4*: At this stage, each rule can monitor only one vehicle. We plan to add multi-vehicle support in future updates.

<br>


# Places and how to use the gatehouse report

Overview: Typically a gatehouse report refers to a document or record that provides detailed information about the movement of assets or individuals in and out of a specific location, often monitored by a virtual geo-referenced gate or entry/exit point.  The report includes data such as the time of entry and exit, identification details of the asset or individual (such as vehicle ID, driver details, etc.), and the purpose of entry or exit. Gatehouse reports are commonly used in industries like logistics, transportation, security, and facility management to track and manage the flow of assets or people in a controlled area.

#### How to use:

1. Within the platform, navigate to the PLACES module via the left-hand draw.  Once the module is opened you will see a list of places and a summary of the movements for each geo-referenced area.

<figure><img src="https://lh7-us.googleusercontent.com/M0raXSJrrx9owJaozy7H9X-1hY7r_1_zYPpZI4bKpbhJP_hCa1RDoOqQLHe31TT9Fnq3lcCOngj8RTELlPZEAp3h4AT9ydZ5aU9vhhTtwCu75jOHwewhYSDygGml65emnWjgm6G0UFTqM1EYdzCDkuo" alt=""><figcaption></figcaption></figure>

2. If you are interested or need to investigate the movements of an asset, click anywhere on the Place line item and the Gatehouse report will open on the right-hand side of the screen via a side draw.
3. The gatehouse report is broken down into 2 sections, the top section provides information about the geo-referenced area and the bottom section shows the asset movement, each line of the report displays the asset that has been in the area and has:
4. 1. The time and date it entered the area
   2. The time and date when it left
   3. The duration in days, hours and minutes
5. Clicking on the asset will automatically send you to the asset's current location and display the asset overview screen

<mark style="color:purple;">Notes</mark>:&#x20;

A single asset may have multiple line items for example, if you are tracking location cards the card could be used multiple times in a day to come and leave a building in a single day.<br>

<table data-card-size="large" data-column-title-hidden data-view="cards" data-full-width="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td></td><td><img src="/files/f0fJQ3OcS7SoKKbRi9Xb" alt="" data-size="original"></td><td></td></tr><tr><td></td><td></td><td><img src="/files/kRTVwDPqkApX0U0HMoNv" alt="" data-size="original"></td></tr></tbody></table>


# How to use the Event Report (Top-down Investigations Module)

Top-down Investigations Module

#### **Introduction:**

This revolutionary tool takes a big-picture approach to investigations, giving you an aerial view of all your data before drilling down into granular details. Whether you're tracking events or seeking comprehensive data spanning months, this module offers a centralised hub for all your information needs.  With this powerful new capability, you can now conduct investigations faster and more efficiently than ever before.

**Prerequisites/Requirements:**

* Module/license access as part of your subscription
* A configured control room with assets

#### **How to start:**

***Step 1:*** Navigate to the report section on the lefthand navigation frame and select the “Event Report” to open the Top-down Investigations Module.

![](https://lh7-us.googleusercontent.com/2f-nGHSEAjHkRhsvfWZGaV9OEmdFovqaN67D0Dk8kgEXXOPZ3zebnaMU-__Bb3qbDG67YJg0ZFz81yxTEiBK7N7X8qS94ggav0CGg5hMJknOqPXqDjojAWR4Qjl0RZ3usJ3Hy1mM1hsK2rMfEmWAhyg)

***Step 2:*** When the reporting module opens, you will be able to see the base module loaded and illustrating the event-type with the most records associated with it.

![](https://lh7-us.googleusercontent.com/NO8fqDP3trxoQDNFFTK8cdzkAhGnAlJlvPF7sVHx0blPL2tyJs1DFQnMRoPfaNH3fwebdaOCnov5mRhEN3TWjY9059BQDiI2MCJo8JOSbBloBlwISJHwMnca_8y3OHI-zJgYI5-owguCmnI22sf0d3c)

#### **How to jump to different event types:**

***Step 1:*** On the top section of the reporting console, you will see tabs that will be labelled with the different types of events you have programmed in your system, to jump to another tab it will reload the asset list, update the asset to event count and list the events individual events where needed.  The tab that has been selected will be highlighted with a teal line beneath the selected tab.

![](https://lh7-us.googleusercontent.com/f1pfwWFKNW1Lq8NfNXJNS0GZygoMGg8Yn2fUBFloOumIcqxTM4HXHiavDKNC73eOE8qPwnRx_nXfIXb4zO-IPa3TXxQ0orbh9u4pjeNOhYbtcgNzDZjKImvQQL9aLU6s-CqKn_4XLNHuj0LQCMN1tj8)

#### **How to search for a particular asset:**

***Step 1:*** Beneath the event type tabs, you will notice an asset search box, once you type the initial 3 characters the Sky Ledge platform will begin the process of searching the asset list.

![](https://lh7-us.googleusercontent.com/07q3Xe7d4TTLSyonsPifPK1I4X76eMa8dFVyNxNE7cTK4U0YnVJg8ZkyOIjIq82YNCjoSW8oWP7dQiFVxbxJs-zEdtcRBpamNPJU7dSR6JGjeRDe5wQw9qgxl87yKExANUqgL-C-GTzRyUMchMcC6wg)

#### **How to explore and understand what’s happening for that event to be created (Open Asset Insights) :**

***Step 1:*** If you find an event that you would like to explore further, you can click on the “Asset Insights” link located to the right of the particular event and this will open the event in question in a new tab so you can explore the assets location, fuel usage and other metrics.

![](https://lh7-us.googleusercontent.com/zc_Qct_rMeIb0a_h4f7JCyfAkO4UijXmLFd56M6TM5a67Mo3XOMlXQ7axFfcjn-4FBeni2zIBcXg76vS86TIe4Zcq9hweCVPBDWz768WSvRieEly6yGclgkGKTHj0dBIQAH7URnQP_QBi5dWKz8dKZM)

#### **How to increase the reporting range:**

***Step 1:*** On the far right-hand side of the reporting console, you will see in blue text the current data range, if you click on the down arrow to the right of the text you will see the data range drop-down list appear.  By clicking on the item, the tabs, assets, events and chart will automatically update.

\
Note: If you have a lot of assets in your environment and select the “last 90 days”, it may take a while to load due to the quantity of data that is needed.

![](https://lh7-us.googleusercontent.com/18dLw0A8YJJt7WkJYPs11MhV7mGtGWZafZ4i2wV0kjcnH3wIthKpcscLsuBg2CtymOjPBz8Cl8EoVX3injjbq4QbOL5061D3QKFqppBcSaAGXUPjhwxUi_0a9MWK0nA1g19PG9vnDQKo4ns-tTQ9new)

#### **How to change the chart's x-axis format :**

***Step 1:*** To change the chart count from daily to weekly or monthly, all you need to do is navigate to the far right-hand side of the console and click on either the “Day, Week or Month” item and the chart will automatically update

![](https://lh7-us.googleusercontent.com/1BUWB0_KCXPTDxPR3pVz3OUr4lQBxOe5J2akJ4R_FVAAaNyfaAX8DJ3vGdu_0CYpdr-XeG6juB09lDX3EDq3YXIUK9YRHVNMWwvD9OVXuzF1mKRuEc6-xVF1rMwaQ_X5VZCiFRmGi5fIFRp89fw1MkA)

<br>


# What is a Task

<details>

<summary>Tags</summary>

</details>


# How to process a task

<details>

<summary>Tags</summary>

document, rego, insurance, DVLA, service, km, hr

</details>


# Task Notifications

Managers and operators of the Sky Ledge platform will have the option of receiving email notifications whenever a new task is assigned to them. These emails will list multiple tasks, each with an individual link, making it easy to view and action them directly from the email.

**How Does This Help?**&#x20;

This feature streamlines your workflow by eliminating the need to log into the platform constantly to check for new tasks. You can manage your day more efficiently with all the necessary information delivered straight to your inbox.

**How to Activate Notifications?**&#x20;

Activating task notifications is quick and easy:

1. Navigate to the "My Task" module. ![](/files/TtyeA7CfRCWJmysCrcLL)
2. Go to either Document Renewals or Service Maintenance Tasks. ![](/files/AMVwKdK5nu6QkuQkrkP5)
3. Click on the toggle labelled Task Notifications.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXegyRlZLziY_YSJUGEzOVdG32Fxl4r2zI8xg2mfa3SSlYr12Ov76RBQssqC5MS8suq4nLQNvlVZuFH9H4voxT0zHtFQcwLlBUNLIJy7aYhbPncPPId1giKDZbvu5x4KbXBst0PBew?key=y6_fbsLedBT79I_gS4NXCSRI)

Stay on top of your tasks effortlessly with our new notification system!

<br>


# How to invite a work colleague

<details>

<summary>Tags</summary>

admin, operator

</details>


# How to submit an awesome ticket

Please submit only one issue per ticket for effective resolution.

To Access Sky Ledge Ticket Submission:

1. [Sign in to the Sky Ledge platform](https://platform.skyledge.com).
2. At the top of the screen, click **Help**.
3. Within the Help & Learning modal, click on "Contact Support"![](/files/Fh6NXNhxAr7vuixkMVBL)
4. Select your request type (Support or Information request) from the dropdown menu![](/files/VJfznHwOYCOiO5sBWnFV)
5. Complete the request form as applicable.
6. Click **Send**.

**CRITICAL INFORMATION TO ADD TO YOUR TICKET:**

* **Subject Line**: Provide a clear, brief, summary in your subject line.
* **Ticket Description**: Provide a detailed description of the issue including when it started, which users are affected, and wherein the product it is occurring.
* **Troubleshooting Steps**: Outline the troubleshooting steps performed prior to contacting support, and include screenshots or screen recordings if possible.
* **Urency**: Provide the impact level of the challenge you are experiencing.<br>
  * **High**: Main services are not functioning, causing mission-critical business operations to be non-operational. No workaround is available.
  * **Med**: Issue in the platform, causing impairment. No workaround is available.
  * **Low**: Just a small issue, or bug


# Understanding Your Weekly Email Reports

### What is the Overall Objective of the Weekly Email?

The primary goal of the weekly email digest is to provide recipients with a comprehensive overview of crucial operational metrics. These metrics include asset utilisation, distance travelled, and speed analysis. The email also highlights the top three best-performing assets alongside the ones utilised least. Additionally, concise summaries of significant event data are included, allowing for quick and easy comprehension with the option to delve deeper into specifics when needed.

### Are There Different Types of Reports?

Absolutely! Currently, there are two distinct reports, each designed to cater to specific user roles:

#### 1. Admin (Manager) Report

The manager report focuses on utilisation and usage insights. This allows recipients, especially managers, to quickly identify any outliers or areas that require attention.

#### 2. Operator Report

Tailored for operators, this report is designed around events, summarising the previous week’s occurrences and highlighting anything that needs to be actioned. This ensures that operators can efficiently manage their tasks based on event-related insights.

### Can I Opt Out of Receiving the Emails?

Currently, during the beta stage, the development of the notification centre hasn't started. However, we want to assure you that it's on our roadmap, and we are actively working on it. Once released, we will promptly update everyone, providing an option to opt out or customise your email preferences through the notification centre.

Stay tuned for updates and future enhancements!

<br>


# Understanding Fuel Consumption in Sky Ledge

Fuel is one of the largest operational costs for any fleet. With the fuel consumption reporting module in Sky Ledge, fleet managers now have a data-driven way to measure efficiency and identify opportunities for cost savings.

This article explains what fuel consumption is, why it matters, how it is calculated on the platform, and what to keep in mind when interpreting the results.

**What is Fuel Consumption?**

Fuel consumption refers to how much fuel a vehicle uses over a given distance. In Sky Ledge, fuel consumption is expressed as litres per 100 kilometres (L/100km)—a standard measurement that allows for consistent comparison across vehicles, regardless of their size or type.

**Why is Fuel Consumption Important?**

Managing fuel consumption effectively is critical for several reasons:

* Cost control: Fuel is often the largest variable expense in fleet operations.
* Operational insight: Poor consumption figures can highlight maintenance issues or inefficient driving behaviour.
* Performance benchmarking: Fleet managers can compare vehicles and drivers to identify best and worst performers.
* Sustainability goals: Reducing fuel use directly contributes to lower emissions and improved environmental performance.
* Risk identification: Abnormal consumption patterns may indicate fuel theft or misuse.

Accurate fuel tracking enables more informed decision-making and better long-term planning.

**How is Fuel Consumption Calculated?**

Sky Ledge has made significant investments in technology and data science to develop its own proprietary algorithm, purpose-built to deliver high-quality fuel consumption insights using real-time telemetry and asset configuration data. This capability is not static; it will continue to evolve as we gather more data, industry feedback, and operational insights across a wide range of vehicles and conditions over the coming weeks, months, and years.

The calculation process involves the following steps:

1. Collect vehicle data - For each asset, the system gathers odometer readings, speed values, fuel level percentages, and tank capacity.
2. Identify stationary periods - A vehicle is considered stationary if it maintains a speed of less than 1.5 km/h for longer than two minutes.
3. Isolate moving segments - All time periods outside stationary segments are classified as moving.
4. Measure fuel usage during movement - For each moving segment, the system calculates the drop in fuel level (as a percentage).
5. Estimate litres of fuel consumed - The percentage drop is multiplied by the tank capacity to estimate the volume of fuel used (in litres).
6. Calculate fuel consumption rate - The final value is calculated using the formula:
7. (Litres used ÷ Kilometres driven) × 100 = Litres per 100 km

This method provides a normalised, comparable view of consumption across different vehicles and use cases.

**Limitations to Be Aware Of**

While the reporting engine is designed to deliver reliable insights, some factors may impact accuracy:

* Incorrect or missing tank capacity: Tank size must be configured correctly to ensure accurate litre estimates.
* Fuel theft or mid-trip refuelling: These can cause unexpected variations in fuel level data.
* Sensor source variation: Data quality may vary depending on whether fuel data is collected via digital fuel sensors, CAN bus integration, or external pumps.
* Idle time complexity: Calculations currently include idle periods; improvements to idle time granularity and accuracy are in progress.
* Special use cases: Vehicles with auxiliary systems (e.g., power take-off units) or non-standard driving patterns may report consumption that doesn’t fully reflect driving efficiency.

**Summary**

Sky Ledge’s fuel consumption module gives fleet managers a centralised, data-backed view of how fuel is used across their vehicles. It enables comparisons, highlights inefficiencies, and supports proactive operational decisions.

To ensure accurate reporting:

* Confirm that each asset has the correct tank capacity set.
* Review sensor integrations and check for data gaps.
* Use the module to track trends over time, rather than relying on single data points.


# Uploading Files to an Asset

### Overview

Sky Ledge’s Asset Overview (Electronic Filing Cabinet) allows you to upload and store documents, images, and files directly against each asset, providing one central place to manage compliance records, service documents, visual evidence, and more.

This tutorial shows you how to upload files to an asset’s profile using four simple methods.

### Step-by-Step Guide

**1. Access the Asset Overview**

* Start by selecting the asset from the map.
* In the asset sidebar, click the book icon to open the Electronic Filing Cabinet (also known as the Asset Overview).

**2. Navigate to the Files Tab**

* Inside the Asset Overview, you’ll see five tabs:
* Overview
* Events
* Places
* Tasks
* Files
* Click on the Files tab.

#### Four Ways to Upload Files

**Method 1: Drag and Drop**

* Simply drag a file from your desktop or folder.
* Drop it into the upload section.
* The file will upload automatically.
* Once it appears in the file list, click Done.

**Method 2: Upload from Your Device**

* Click From Device.
* Browse your computer or mobile device to find the file you want.
* Select the file and click Open to upload.

**Method 3: Use Your Camera (Mobile Only)**

* If you’re on a mobile device, click Camera.
* Take a photo directly through your device.
* The image will upload immediately to the asset’s file section.

**Method 4: Upload via Link**

* Select From Link.
* Enter the file URL using the standard upload fields.
* This is ideal for cloud-hosted documents or reference files.

#### Viewing Uploaded Files

* All uploaded files will appear in the list within the Files tab.
* To view a file:
* Locate the file you want.
* Click the eye icon on the right.
* The file will open in a new browser tab.

#### File Types Supported

Sky Ledge supports the upload of:

* Images (e.g., JPG, PNG)
* Videos
* PDFs
* Documents (e.g., DOCX, XLSX)
* Other file formats

This allows for complete, centralised documentation for every asset, ensuring nothing gets lost across shared drives or inboxes.

#### Best Practice Tip

Use file uploads to store:

* Registration papers
* Service history photos
* Inspection videos
* Compliance certificates
* Photos of damage or defects
* Warranty documents

<br>


# Knowledge Base Template

> Summary of what this page will help you with

## Quick how-to video

{coming soon}

## Tips on how to use it

* \-
* \-

***

#### Further Reading

####

<details>

<summary>Tags</summary>

template

</details>


# What's New

##

<figure><img src="/files/CtAApLjnNdPBnPaUKkqI" alt=""><figcaption></figcaption></figure>

## May 2026

**See where fuel is really being used on every trip**

You have already been able to see how much fuel was consumed during a trip in Asset Insights. Now we have taken this one step further.

When you hover over fuel consumption on a trip, you can now see how much fuel was used while the vehicle was moving and how much was used while idling.  This gives you a clearer picture of where fuel is actually going. Instead of just seeing a total number, you can now identify trips where fuel is being wasted while the vehicle is not moving.

For fleet managers, this makes it much easier to spot inefficient behaviour, reduce unnecessary idling, and take action to control fuel costs across the fleet.

It is a simple change, but one that can have a real impact on operational efficiency and spending.

<p align="center"><img src="/files/RyJOqS6RHk4c5Dq1SNL1" alt=""><br></p>

**A clearer, faster way to work through your events**

We’ve redesigned the event stream to make it faster and easier to work through. You can now filter straight to critical or warning events, see clearer icons, and read simpler descriptions so you know exactly what happened at a glance.  You can now filter events at the top of the stream to focus on critical or warning alerts, making it easier to prioritise your time. We have also introduced clearer icons and simplified descriptions so you can immediately see what has happened without needing to dig into each item.

When you select an event, you will be taken straight to its location on the map, with the option to open the event drawer for full context and detail.

This update is all about helping you move faster, reduce noise, and stay focused on the events that matter most.

<figure><img src="/files/66CcocXAQh7qzmcO63Tn" alt=""><figcaption></figcaption></figure>

<br>

## April 2026

**Stay on top of tyre health in real time**

We know how critical tyres are to keeping your fleet moving safely and efficiently. That is why we have introduced additional tyre pressure monitoring directly into the platform. You will now be alerted when tyre pressure moves outside a healthy range, as well as when serious events occur, such as a tyre blowout while the vehicle is in motion.

This gives you the ability to act immediately, rather than finding out after the fact. Whether your fleet is operating across long distances or in high-demand environments, having this level of visibility helps reduce risk, protect drivers, and avoid further damage.

All tyre-related events are captured and stored in the platform, so you always have a clear record of what happened and when. Notifications ensure the right people are informed as soon as something needs attention.

**Know exactly what happened when it matters most**

We have now integrated crash detection directly into the Sky Ledge platform, giving you greater visibility and confidence when incidents occur.

Using data from your tracking devices, the platform can detect sudden changes in movement across multiple directions to identify anything from a minor impact to a serious collision. When a crash event is detected, the system captures the key details before, during, and after the incident.

This gives you a clear, reliable record of what actually happened, helping support compliance, incident reviews, and any follow-up required with drivers, insurers, or third parties.

For organisations managing vehicles on the road every day, this provides an added layer of protection and peace of mind. You are no longer relying on assumptions or incomplete information. You have the data to back it up.

All crash events are stored within the platform, so you can review them at any time and respond quickly when it matters most.

<br>

## February 2026

**Need a Bit More Context? Now You’ve Got It.**

When you’re investigating an asset, one day often isn’t enough. Maybe it stopped late in the evening and restarted the next morning. Maybe it travelled overnight, and you need to understand the full sequence. Until now, that meant jumping between dates and losing the visualisation of what happened.

You can now extend your view by 24 hours before or after the selected date directly within Asset Insights. Journeys and metrics flow across the additional day, and a clear divider on the chart shows where one day ends and the next begins.

<figure><img src="/files/E2Y0BI92s1Wq8RjZfOir" alt="" width="375"><figcaption></figcaption></figure>

It’s a small change, but it makes investigations far smoother and gives you the full picture without extra clicks.

<figure><img src="/files/RKOOUdqyOlkeB018nOF0" alt=""><figcaption></figcaption></figure>

**See What Actually Happened in One Click**

When a serious event happens like fuel theft, harsh braking, or a late-night move, you don’t have time to chase context.

Now, when you open an event in the platform, you’ll see:

* Dash cam footage from both front and in-cabin views
* Exact location and time of the incident
* Speed, fuel level, and braking data
* What happened just before and after the event

It’s all in one place. No jumping between tabs. No guesswork. Just a fast, clear way to review incidents and explain them to your team, insurers, or management.

Want dash cam insights switched on for your fleet?

Let us know, and we’ll help you get set up.

<figure><img src="/files/elCTb7ToFvn5wx0qMQvf" alt=""><figcaption></figcaption></figure>

**Where Smarter Decisions Begin**

The new operational dashboard gives decision-makers and fleet managers a clear, immediate read on operational performance. Instead of jumping between reports or stitching together metrics, you now get a single, smart summary of how your assets are running,  all filterable by date, asset type, or control room.

Here’s what you’ll see at a glance:

* Total fuel consumed, with breakdowns for moving and idle
* Average fuel consumption per kilometre (when available)
* Total distance travelled and time spent moving or idling
* Asset-level comparisons in a table view
* An executive summary that surfaces what’s working — and what’s not

It’s built for action, not complexity.

Use it to get a pulse check in seconds,  then drill into reports only when you need to.

<figure><img src="/files/neJnhDMit59R7YxTVK2x" alt=""><figcaption></figcaption></figure>

## January 2026

**See Fuel Usage, Trip by Trip**

We’ve introduced a new way to understand fuel consumption,  directly within the Asset Insights module.

Instead of viewing fuel as a daily total or disconnected reading, you can now see how much fuel was used on each trip. Every journey now tells a clearer story,  not just where the asset went, but how efficiently it ran.

**What you’ll see:**

* Fuel used on each trip, shown right in the timeline
* Confidence range, so you know how accurate the data is
* A new “view” button to focus on a single trip with synced map + chart

*And coming very soon*

* Hover to see the trip route and fuel used,  no clicks needed
* Clear breakdowns: how much while moving, how much while idling

Whether you’re investigating anomalies, comparing trip efficiency, or trying to understand fuel cost drivers, this update makes it faster and clearer, right where you need it.

This isn’t just fuel data,  it’s fuel in context.

<figure><img src="/files/xybkjObV42ZzO6Obzxtk" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/isVED2tomZ1JZsi4n6Qi" alt=""><figcaption></figcaption></figure>


# Archived - What's News

## September 2025

**A Smarter Way to See Your Day**

We’ve launched the first phase of a new timeline view that helps you understand how each day unfolds, trip by trip, stop by stop.  Instead of digging through event logs or clicking around the map, you’ll now see your asset’s activity broken into clear segments:

* Trips
* Place Visits
* Stationary Periods

Each segment includes key metrics like time, distance, and any critical or warning events, giving you a clean, high-level view of asset behaviour without needing to run calculations or dig through raw data.

This feature is currently available in the Asset Insights module. We’re exploring how this same approach could be introduced into the Asset Overview experience in the future, and we’ll be shaping that development based on customer feedback.

You can expand any segment for more detail, or keep it collapsed for a quick summary. It’s a clearer, faster way to review operations and spot patterns like long stationary times, late arrivals, or overnight parking.

And this is just the start. Future iterations will support notes, attachments, and rich context per segment to build a complete operational narrative.

<p align="center"><img src="/files/Ho9WgWXi0Hb31duZ9dlk" alt=""><br></p>

## August 2025

**Smarter Structures. Sharper Tables. Easier Decisions.**

We’ve made two major upgrades to help you manage complex operations more efficiently, no matter how many asset types or active tasks you’re working with.

As organisations scale, managing a few asset types no longer cuts it. That’s why we’ve introduced a new hierarchical asset model, allowing you to group related asset types under a parent category. This structure gives you clearer asset relationships, standardised reporting, and unified performance metrics across even the most diverse fleets.

At the same time, the asset and task tables have been redesigned from the ground up. The new layout is cleaner, faster, and more intuitive, helping you zero in on what matters, whether it’s understanding current fuel levels or prioritising tasks by urgency.

You’ll also notice:

* Quick filters in the task table: instantly surface overdue insurance tasks or anything needing your attention, no manual filtering required
* Custom tabs in the asset table: you decide how you want to group assets, view everything as one fleet or drill down into specific types like forklifts or trailers

These enhancements make it easier to make informed, data-driven decisions, with less time spent searching, clicking, or guessing.

{% embed url="<https://youtu.be/fuszhmoDQpk>" %}

**You Can Now Add Images to Your Assets**

Managing a fleet or assets is easier when you can see what you’re working with. In this initial release, you can now upload images, documents, and PDFs directly to an asset,  helping you verify and identify vehicles faster.

Whether it’s a photo of a VIN plate, a registration sticker, or a compliance doc, everything can now be stored right where it’s needed,  in the asset drawer.

This is just the beginning. In future updates, you’ll be able to:

* Hover over an asset on the map and instantly see a visual preview
* Upload receipts and reports into tasks
* Attach damage photos and evidence from driver checklists

It’s a big step toward giving you a clearer, more visual, and more efficient asset experience.

For more information: <https://bit.ly/3J7vNOL>

<p align="center"><img src="/files/LzJ5plEjvOS8K6dnmM8n" alt=""></p>

## July 2025

**Event Details Now Come With Context**

Until now, events inside the platform were presented as isolated moments, a speeding alert, a harsh brake, a fuel drop, with little context around what happened before or after. That’s changed.

The new event detail experience gives you a much clearer picture of what really happened. When you click on an event, you’ll now see:

* Metrics over time (such as speed or fuel levels)
* A map snapshot showing the lead-up and aftermath of the event
* A 5-minute window before and after the event
* A summary of other events that occurred on that day

This redesigned view helps you understand the narrative around each incident, not just the trigger point. It’s a more powerful, visual way to investigate operational issues without guesswork.

Whether you’re looking into an isolated alert or reviewing patterns across a shift, you now have the tools to make smarter, faster decisions.

<figure><img src="/files/8owFk6b6WSA1r8PHuf40" alt="" width="188"><figcaption></figcaption></figure>

**Event Insights**

Finding problem events in a sea of your data has felt like searching for a needle in a haystack, until now. With Event Insights, you can instantly visualise where key events like fuel theft or harsh driving are happening across your fleet, all on a single map. It’s a smarter, faster way to uncover issues and take action.

**New Fuel Consumption Reporting Is Here**

Fuel is one of the biggest costs for any fleet,  and we’ve invested heavily in building the tools to help you manage it better.  With this release, you’ll now see a dedicated fuel consumption reporting module designed to deliver accurate insights into how fuel is used during vehicle movement. It builds on previous features like Shell fuel card integration and private pump tracking, bringing your data into one powerful view.

You can now compare performance across assets, track trends over time, and identify opportunities to improve efficiency and reduce fuel-related costs.

This new capability is powered by Sky Ledge’s proprietary algorithm,  built through significant investment in technology and data science,  and will continue to evolve over the coming weeks, months, and years as we learn from vehicle behaviour, user feedback, and real-world performance.

**Note**: This version focuses on fuel consumption during movement only. Enhancements to incorporate idle time into future dashboards are already in development.

Learn more [here](https://docs.skyledge.com/knowledge-base/articles/understanding-fuel-consumption-in-sky-ledge)

<figure><img src="/files/7HK2FpuSBpLe30mYMwEs" alt=""><figcaption></figcaption></figure>

## June 2025

**Your Map, Your Way**\
We’ve made the map experience more focused and easier to use by introducing a new display toggle. You can now choose whether to show or hide place and event icons.

If you’re monitoring day-to-day operations, you’ll love how much cleaner the map looks when it’s focused on just your operations, no clutter, just clarity. And if you ever want to dive into past events, you can switch them back on with a single click.

This change helps you stay focused on what matters most: where your assets are and what they’re doing right now.

{% embed url="<https://youtu.be/LA3iIpFe5qo>" %}

## May 2025

### Creating Places Just Got Easier

The workflow for creating Places and Geofences has been redesigned from the ground up. It’s now faster, more intuitive, and helps prevent errors. Whether you’re new to the platform or managing your fleet every day, you’ll find it quicker to set up Places and get the insights you need.

Additionally, when creating a brand-new Place type, like yards or customer sites, you can now choose custom icons to make it easier to spot these locations at a glance.

This update means you’ll be able to identify operational issues more easily via the place insights module and take proactive action, and get even more value out of the platform.

## April 2025

### Introducing Your New Fleet Operations Dashboard

Managing a fleet across diverse regions is complex, but getting the insights you need shouldn’t be. Our new dashboard gives you a real-time, high-level view of fleet and asset health so you can make faster, more confident decisions.

Key benefits:

* Instant Insights: Get a snapshot of fleet performance without manual data gathering.
* Early Issue Detection: Spot and resolve problems before they escalate.
* Smarter Operations: Use data-backed analytics to optimise asset utilisation and reduce costs.

Designed with busy fleet managers in mind, this tool integrates seamlessly with your existing platform and starts delivering value immediately.

Check it out today and take the first step towards more efficient, stress-free operations.

### New map markers = less guesswork, faster decisions

We’ve updated the asset map markers to make it easier for you to see what your vehicles are doing at a glance. These colour-coded markers show the current status of each vehicle on the map, so you can quickly spot who’s on the move, idling, parked, or offline.

Here’s a quick rundown of what each colour means:

🟢 **Moving (Green)**

This means the vehicle is on and currently driving.  You’ll also see an arrow showing which direction it’s going—handy when you’re checking if it’s heading up or down a highway or on its way to the next stop.

🟠 **Idling (Orange)**

The engine’s on, but the vehicle isn’t moving.  This could be a driver waiting at a site, stuck in traffic, or just letting the engine run. Keeping an eye on idle time can help with fuel management and spotting delays.

⚪ **Stationary (White)**

The vehicle’s engine is off and not going anywhere.  It’s most likely parked—maybe at a yard, warehouse, or rest stop.

**🔴 Inactive (Red)**

This one’s important—it means the vehicle hasn’t checked in for more than 48 hours. That could be because it’s off the road in a parking garage, the tracking device has an issue, or it’s out of signal. Worth following up if you see red.

See what each vehicle’s doing at a glance — no clicks, no confusion.

👉[ Learn more](https://docs.skyledge.com/knowledge-base/articles/map-marker-explained)

## March 2025

### Smarter Place Tables for Faster Navigation

We’ve made key improvements to the Place Table, enhancing its functionality to help you find and manage locations more efficiently.

With the introduction of category-based tabs, you can now quickly filter and organize places by type, making it easier to identify key locations and apply operational rules.

**How It Works:**

* Tabs group related places together, allowing for faster navigation and better organization.
* For example, if you’re managing a control room with hundreds of locations, simply click the Customer tab to view only customer places—eliminating the need to sift through unrelated entries.
* The search function continues to work across all tabs as before.
* Need to search everything at once? The All Places tab is still available.

This update streamlines workflows, improves visibility, and makes managing places more intuitive.

### Real-Time Speeding Notifications

Ever wanted to know the moment one of your drivers is speeding? Now you can!

We’re excited to introduce Speeding Notifications, a new feature that lets you receive real-time alerts whenever a speeding event occurs.

**How to Enable Speeding Notifications:**

&#x20;                 1\.             Navigate to the Report/Event Report on the left-hand menu.

&#x20;                 2\.             Click on the Speeding Limit tab. ![](/files/xSzQVY7twbafEIjnrK2x)

&#x20;                 3\.             On the right-hand side, toggle notifications ON. ![](/files/dTGRNayCGa4mcvMkz2Qa)

That’s it! Once enabled, you’ll receive instant alerts on your phone whenever a speeding event is recorded.

Stay informed, improve safety, and take action in real time.

### Protect Sensitive Data with Task Agent Role

We are pleased to introduce the latest update to our platform, driven by your valuable feedback! The new Task Agent role is now live, delivering enhanced security and more precise access control for your operations.

Enhanced Security & Privacy: The Task Agent role restricts user access to the Task Module, preventing visibility of sensitive real-time or historical asset location data. This reduces security risks and helps safeguard your organisation’s critical information.

Simplified Role Management: Admins can now assign, update, or invite users as Task Agents directly through the control room UI, making it easy to manage access permissions without disrupting workflows.

Compliance-Ready Access Controls: This update helps your organisation meet security and privacy requirements by enforcing strict, module-specific access restrictions, giving you confidence that sensitive data remains protected.

These enhancements are designed to give you greater control, improve security, and make managing access more flexible.&#x20;

Thank you for your continued feedback and support!

## February 2025

### Stay connected with your fleet like never before!&#x20;

You can now receive real-time **push notifications** directly on your mobile device. Get instant updates on asset movements and key events—anytime, anywhere.

* Choose email, push notification, or both
* Make faster, informed decisions on the go
* Stay flexible and unleashed from your desk

### Personalised User Preferences!&#x20;

Based on your valuable feedback, we’ve enhanced the platform to remember your personal preference settings. For example, if you switch the map view to satellite and navigate to the Places module, your settings will stay the same — even after logging out and back in. This update makes it easier to pick up right where you left off! Let us know if you have any questions or additional feedback.

### Exciting enhancements to the map experience!

&#x20;We've made some updates to the Sky Ledge platform to make navigation easier and asset tracking more intuitive. Starting today, you'll notice:

* A cleaner, decluttered map for better visibility.
* Fewer points of interest (businesses) to reduce distractions.

This is just the beginning! Over the next few weeks, we'll continue rolling out enhancements to help you quickly identify assets, track their movement, and see their direction more clearly.

## January 2025

### **Mobile**

We’re thrilled to announce the launch of our first-ever mobile application, designed to empower busy Fleet and Operations managers like you to take control of your assets—anytime, anywhere.

**What’s New?**

With this mobile release, managing your fleet has never been easier or more flexible. Key features include:

* Real-Time Monitoring: Track asset locations, fuel levels, and movement status in the palm of your hand.
* Activity Visibility: See where your assets are and what they’re doing at a glance.
* Detailed Insights: Access asset overviews, including tasks, triggered events, and visitation history.
* Enhanced Navigation: Quickly jump between control rooms for seamless fleet management.

**Why This Matters**

This release is designed to make you more productive and mobile. You can stay connected to your operations while on the go, freeing you from being tied to your desk and giving you greater flexibility in your day.

**What’s Next?**

In future updates, we’ll bring rule notifications directly to your mobile device, enabling alerts on asset movements, speeding incidents, and other fleet-related updates—keeping you informed without the need to check your screen constantly.

For [Andriod](https://play.google.com/store/apps/details?id=com.skyledge.controlrooms\&pcampaignid=web_share)

For [Apple](https://apps.apple.com/au/app/sky-ledge/id6670488392)

### **Re-Center Button for Easier Navigation**

We’ve made it easier than ever to stay on track with our new Re-Center Button!

**What does it do?**

* Lost on the map? With a single click, you can snap back to your asset’s location.
* Real-time tracking made simple: Keep the map aligned with the asset’s current movement in real-time.

**How to use it:**

1. Select the asset you want to track.
2. Click the Re-Center icon on the asset bar to refocus the map on its location.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc65GMoXCVSBp6FKlHptqKskVq5UKqu6drF1Lp1YsxKH9NDU3VQ656QKa4udRzSg4CXjvpRTnVTa0B2lH1Pc04arrcz2WSKYwwaqZRygQ6JIE0MVgvKLdX85N8IGDy-PPjhUsBS6Q?key=BnMB9_6KvBcL3EeSyO68X77V)

Enjoy a smoother navigation experience today!

## December 2024

### **Task Notifications for Fleet Managers**

We are excited to introduce our platform's new feature: Task Notifications for Managers and Operators of the platform

**What's New?** With a simple toggle, you will now have the option of receiving email notifications whenever a new task is assigned to you. These emails will list multiple tasks, each with an individual link, making it easy to view and action them directly from the email.

**How Does This Help?** This feature streamlines your workflow by eliminating the need to log into the platform constantly to check for new tasks. You can manage your day more efficiently with all the necessary information delivered straight to your inbox.

**How to Activate Notifications?** Activating task notifications is quick and easy:

1. Navigate to the My Task module.
2. Go to either Document Renewals or Service Maintenance Tasks.
3. Click on the toggle labelled Task Notifications.

Stay on top of your tasks effortlessly with our new notification system!

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeVGap5ESmacrpfWe6qQ9JCLviHb_b58uN1Z20igWJHIXwAV2tBs_DUpp8uDzLDVpCEkEAwdeH6XbYu-K1zX9kHd7Gf1SL8J812rSNFa5h4B-3HMDx4THDNDzgly_sBpOekkkccMA?key=y6_fbsLedBT79I_gS4NXCSRI)

## October 2024

### Place Notifications:

No more constant map monitoring! We’re excited to introduce a powerful feature that lets you step away from the monitor and get notified when assets enter or exit specific locations.

With just a few clicks, you'll stay on top of your fleet's movements, freeing you up to focus on more important tasks.\
\
To prevent spamming your email, each alert is set up for single-use only and archived after it is triggered.

Key Features:

* Quick Setup: Easily create and manage rules for specific places.
* Instant Alerts: Get email notifications for asset movements.

Stay Focused: Stay on top of your asset movements without constantly staring at a monitor.

{% content-ref url="/pages/LO55jsQhBfJstoes7oUj" %}
[Getting Started with Place Notifications](/knowledge-base/articles/getting-started-with-place-notifications)
{% endcontent-ref %}

## September 2024

### Introducing Place Insights: Streamlining Place Creation for Better Fleet Management

**Why We're Making This Change**

Feedback from you highlighted significant friction in creating a place via the Sky Ledge platform, which resulted in the underutilisation of the feature. Many users expressed that the process of finding a location, such as a remote service station, to create a place was cumbersome and time-consuming. With the introduction of the Place Insights module, you can easily create and start monitoring places for asset movement within.

**Key Features**

1. Effortlessly Search: Finding and creating new places is now as simple as a few clicks—no more hassle with manually zooming into maps.
2. Streamlined Place Creation: Our point-and-click interface allows you to quickly and easily create places with minimal effort.
3. Enhanced Efficiency: We've reduced the time it takes to find existing places, ensuring that your fleet operations are smoother and more efficient.
4. Start Monitoring Immediately: Once a place is created, you can begin monitoring it right away. This real-time functionality helps you stay on top of your fleet's movements and activities.

**Get Started Today**

Thank you for being a valued user of Sky Ledge. We continually strive to improve our platform based on your feedback. Stay tuned for more updates and features designed to help you get the most out of your fleet management experience.

{% embed url="<https://youtu.be/afJprefyc2A?si=xfWrFJMA5wwOfjzI>" %}

## August 2024

### Place Insights

We are pleased to introduce the all-new **Place Insights**!

\
Place Insights is a heatmap that shows you:

* Where your assets have been
* How long they’ve stayed
* Which locations are the busiest
* Precise insights using filters

With Place Insights, you can:

* Understand your assets better and spot trends
* Make informed decisions and improve efficiency
* Pick a new Place to monitor based on the insights provided

Try it out and see the difference it makes in your operations.

### Asset selection and information within Asset Insights

We are pleased to introduce the latest update to our Asset Insights module, driven by your valuable feedback! The two most requested features are now live:

* **Seamless Asset Investigation**: You can now change and investigate different assets within the module without closing windows or reloading, saving you time and keeping you focused on addressing the most pressing issues.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfE4h3HMLjZQuqvkOUXOuSrZRzwnMdXXP73I9xMNw48vhTmufXBeqFdFTNE6cDWvSs7WknybzYj1m3LC6xNzjYoeqb6diWxGR_LPgb7nvA2OpWs2CnEohXZbHXjAQHv1gpO5SZvX5qgwrAgfS-uu5HSKJUN?key=vWF6K0NTAA0HTjqlIyVFpw)

* **Enhanced Asset Snapshot**: Instantly view critical asset details, including type, make, model, and even the driver’s name, directly within the module. This enhancement ensures you have all the information you need at a glance.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeP4F7XRC1AuujrnFx7f4xW68_89zKR_eb1BV6MQqQoJ6C6ybLbnb3_0aR4EjakuwotviXZpC5PdAf0sGtVFmmRvwTksJvlfRAgEdjO0k7PaKIGIMVYTmjR_RGNcrPYlHuKFkipnVquo0IMpGy0mT7MnEE?key=vWF6K0NTAA0HTjqlIyVFpw)

These improvements are designed to streamline your workflow and enhance your efficiency. Thank you for your continued feedback and support!

### Dual Fuel Tank Insights

We are pleased to introduce new functionality to the Sky Ledge platform designed, to enhance fuel management. This update allows the platform to receive and analyse fuel sensor data from assets with multiple fuel tanks. Fleet and operations managers can now visualise fuel levels as a combined total or by individual tank, providing greater flexibility and insight. Additionally, the Sky Ledge fuel theft algorithm precisely analyses this data to detect even the smallest fuel theft events, ensuring enhanced security and operational efficiency.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcI4ZqxBUrLCk7fndWRFWivzjSX8_TbUPsB8bQGy5r-ZD3o8yyybFlmgo_794jVu2kjxf7rwa59naTY5G5T9afiZ9gc4T7fuMdYEb39SxG0yIipplH2I7a-HZefRE85hTEUEM9WszNXFXCJRH4HJqKEHKQI?key=vWF6K0NTAA0HTjqlIyVFpw)

## July 2024

### New Look asset overview with movement status

We are excited to announce an enhancement to the asset overview modal. We have transformed it into a sleek bar object, significantly simplifying the experience. Now, you can see the complete map with all the information needed at your fingertips, allowing for more streamlined and efficient interactions. The new bar provides the same valuable information in a compact and accessible format, improving functionality and aesthetics. Additionally, we have enhanced the ignition status feature to display the asset's speed when moving, idling, and when the engine is off, all within the new-look asset overview ribbon. You can always use the more options function to open the old asset overview screen if you need any additional information.

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcB6_oD-87D3AB-tY6QE-n_3vw9MU0lHoXmqnzZk3QjZnnk6-VPy4EM8m4K9OsCpp9mJLHj2FuhdIGBDWsk3L10jzFj-sNQJMYQjg26S2XKhZUxO-DMYbb6HudHAUs4PgWzbe5wqfV289UCc1sJJImujco?key=vWF6K0NTAA0HTjqlIyVFpw)

## June 2024

### Creating Places in Asset Insights

Based on customer feedback, we've added the ability to create a place directly within the Asset Insights module. Now, when you identify a common location where a vehicle frequently arrives or departs, you can make a place with a few clicks. Once a place is created, you can easily access the gatehouse report to track movements and durations, enhancing your asset management capabilities.  Remember if you want to keep the places you create secure so no one else sees them, please make a “new place type” first

![](https://lh7-us.googleusercontent.com/docsz/AD_4nXfiTDAfvrqZHqJWZnhMb4hzrT7w9jz8YBoJTIHGDGuAA8ESK0Bv2GdEJ8upBXelvjXdOhtm2taqJN4t4lXKjzm-dwe2Wvodm5S32vg5P1X01c8ZCOv16Trd6M1eI4wUzlymm-h1n_4-_whJT21yCmQjGKPZ?key=vWF6K0NTAA0HTjqlIyVFpw)

### Task Notifications

***Task Menu Notifications***

We understand fleet and operation managers are always busy and don’t have time to frequently check modules for updates. In our latest update, we've enhanced the task notification experience. Now, while you’re working, you can easily see what needs your attention via the menu icon.

![](https://lh7-us.googleusercontent.com/docsz/AD_4nXcyDqk1rHFyB2JqTXIkMBUrRbBkwR0L6dmA4gibdoS63sYwRlGVqUHxeZgeHfT6tVZd2I_WD92FWRZyc6_bD0I8WkX5R2Ygn4AZe9r2pYqDEUVHjHfBjIwnZ5NXxWnTJNeeigrs8RQ530dnJgj6EF0PIPt5?key=vWF6K0NTAA0HTjqlIyVFpw)

***Task Tab Count***

In the “My Task” module, we've improved your ability to manage tasks with a simple tab count feature. This will show you how many open tasks need attention in the control room.

### ![](https://lh7-us.googleusercontent.com/docsz/AD_4nXd-4-v9sOkV15FGk0qX65lL19T0wAWZcSFB7o4X73OrQza_embyfX0nR9wQXDhJmROF3yovOo5GMdEkXRJt0IAUHWcOPMFF69yP3DOEu8RnUZc-P3pgmXl61gDsYud6A1-yYuPRB1sd71wQz6j66JvFlGof?key=vWF6K0NTAA0HTjqlIyVFpw)

## May 2024

### Map Toolbar

Following our recent updates to the events, assets and places module layout, we are excited to announce the next phase of our design overhaul, focusing on the map toolbar. In this update, we've consolidated the map features into a single, streamlined location. Now, you can easily change the map layers, view places, and quickly see all your assets with just one click. Stay tuned for more exciting new map features coming soon!

### ![](https://lh7-us.googleusercontent.com/NLYnyGilbjiivkOtdusTfzD1MF_cJtOjZ1uWYqZdoHtcOxeGV1dDbN3Y4KW1GMM3Cgb7ujOIYmKaO0oHE7C4XjuEO5UvkWAm3AQf5yx5LLiq0h7afw-CLiYSK-qQYTWVe3A1rN6HOYOXRR8BsT2DKwo)

### Ignition Status

You can now monitor the ignition status of your assets within Sky Ledge. Currently, it lets you know if a vehicle’s engine is on or off, marking the first step toward comprehensive movement tracking. Head to 'Asset List' mode to view the ignition status and other asset details all in one place.

![](https://lh7-us.googleusercontent.com/E1SJErBNj9ZKFZ8w8FeTu2E0_U84LuGxWBQP6RiktpEMN7Qmaj3CX3bagi1tWDvEGxqAgvpF2lPNnmt8P7iJI_oPkAVv00ZsMbw77-KqsO_nexvkdHDqT89YhnZclLChCymZ_8X-O7ki2lo-vGoZwgM)

### Asset Lists “More options”

Introducing the eagerly awaited expansion of options in our new asset list view. Now, accessing features like 'Locate on Map' and 'Open in Asset Insights' is just a click away. Simply tap the ellipsis icon within the asset card for instant access.<br>

![](https://lh7-us.googleusercontent.com/xv5VhH8EVolzBlN6owk89xQAVTnlp8A549kUUSAEw6CfZ14ZcpdQkvkknCUL4tytWGuX76UI7KUvJkrcmeZFHQUfdUb7sIf__42h3KScDLT2PzHPlqpRxmrbpIYE2eU4q6Othlvo2vkLz7CNv0UkxBI)

## April 2024

### Control Rooms Revamped!

The Events, Assets, and Places modules are now unified inside your Control Rooms. This means you can switch between the modules seamlessly without interruption and without resetting your map! Head to a control room to see it in action.

![](https://lh7-us.googleusercontent.com/Z44zbBsKTWIDEYkuZntFf91cwpcvRYJIqOITkvQ7-NrPR9UxX5r8JFXtJFOD3jDrB6ejSuQV5cLy0ltQ_Cldu8RDGhTgKusDdEpp1dlUWwLZGI5zv2-jFkO-kTwoZRSmB56gHe0rnE7fiFOMZovPxKU)<br>

### Major fuel monitoring enhancements

We are delighted to unveil major enhancements to our fuel monitoring capabilities with an upgraded Fuel Alerts algorithm. The new feature accurately detects fuel loss incidents and refilling activities, while providing a robust confidence scoring system to streamline regulatory compliance processes. These fuel event data are seamlessly integrated across Sky Ledge's Asset, Control Room, and Insights modules, offering comprehensive visibility and actionable intelligence from a single platform. Fleet managers can now experience optimised operations through Sky Ledge's cutting-edge fuel monitoring solutions.

![](https://lh7-us.googleusercontent.com/0GRhnzHt-qffBMJDGWnUlzOvp5S6ecm-RoNaIu8hl2DsGkizQGsMIa5eCVpYci1DkSYnrxdBBgbkz7hfI-QGx8tg8aWKENjT6bK22AP8NdP4o4pyGxUj8zqCLsR2M5dLAttXqsNPdyxn7Lha6BK83gU)

## March 2024

### LaunchPad Tiles

Introducing the initial phase of LaunchPad: Your go-to for real-time updates on your priority events. This foundational iteration prioritises what matters most to you and focuses you on the problems that need to be solved. Future iterations will incorporate metrics like cost savings, asset health, and actionable insights, making LaunchPad an indispensable tool for optimising your day-to-day business.

![](https://lh7-us.googleusercontent.com/sXY8pFXhh8uVBPJO1rcTdVlrYcJQj4TKNng2Ou3F6g1owlo9q2RJ_xTPeGjZsPqh5C-x003WdjSeSjfKkmwbAKdc2SWc9cPGqPa8sXVAptmL14u9JrUbfePmM8BWFJia9L4iFNyyDyeYsQJd6kYilkg)

### Asset List sorting

Building upon the recent introduction of the asset list feature, we're excited to announce further enhancements. Users can now conveniently sort their lists by asset or driver name, as well as fuel tank capacity or level. These additions aim to streamline navigation and improve usability, providing users with greater flexibility and efficiency in managing their assets.

![](https://lh7-us.googleusercontent.com/ZoxHWPnswT49s86tDZ8C_sPSbBjRfNPoEHIqw-4kVTPQFT84dg8iHV86pk1PaKMeDHOYFznXxwJ9EA4PcCvc9RlzODyoAyZoGWRjdwhG5TXgtscgLrh3lbwF-OedoK5HJagWoeQY28r6xnGIu09VB7I)

### Introducing two game-changing features based on your feedback!

🔍 **Focus Mode: Sharpen Your View**

With the new Focus Mode, you can now clear your screen to give you more space to view the map and focus on the information you need!

{% embed url="<https://youtu.be/6xCaV2VDDJ0>" %}

{% content-ref url="/pages/qbZt8dsFdBYNP2UzGH9M" %}
[Understanding Focus Mode](/knowledge-base/articles/understanding-focus-mode)
{% endcontent-ref %}

📊 **Asset List Mode: Your Assets, Organised.**

Unlock additional screen space without sacrificing the essential details by moving your assets into an organised list with Asset List Mode.

{% embed url="<https://youtu.be/pcsiwh2jq0s>" %}

{% content-ref url="/pages/sBWU0C1eRaU2JiNnuNPC" %}
[Navigating Asset List Mode](/knowledge-base/articles/navigating-asset-list-mode)
{% endcontent-ref %}

**What's Coming Later**:

🔍 Filter and Sort: Enhancing your user experience with further customisation.

🚦 Asset Movement Status: Keep an eye on your assets when the engine is off, idling, or moving

## February  2024

### Email Digest

Kickstart your Mondays with confidence – introducing the Sky Ledge Weekly Email Digest!

We're pleased to provide you with a quick but comprehensive overview of your asset's performance from the previous week, including asset utilisation, distance travelled, and speed analysis. Additionally, it highlights the top three best-performing assets and identifies those utilised the least. But that's not all – we’ll soon be incorporating even more metrics into the report.\
\
Simplifying how you stay informed is our goal and we’re confident our Weekly Email Digest will do just that. Keep an eye out for it in your inbox!

For more information, take a look at our Help Article

{% content-ref url="/pages/JzQrrepaeP1wZRpDoHnY" %}
[Understanding Your Weekly Email Reports](/knowledge-base/articles/understanding-your-weekly-email-reports)
{% endcontent-ref %}

\
January 2024
------------

### Jumping between control rooms

Say Goodbye to Jumping Between Control Rooms

No more hassle switching control rooms - we've introduced a new seamless control room selection tool so you can be more productive. Now you can easily jump between control rooms right from any page, without having to go back to the Launch Pad each time. We've removed that friction so you can focus on what matters. With this new dropdown selector, you'll save time and effort as you move between control rooms in your busy day. We're excited to roll out this feature that makes traversing the Sky Ledge platform smoother and simplifies your busy day.

### Top-down Investigations Module

We're thrilled to unveil our newest feature - the top-down investigations module. This revolutionary tool takes a big-picture approach to investigations, giving you an aerial view of all your data before drilling down into granular details. Whether you're conducting long-term tracking or analysing specific events, the investigations module connects seamlessly with our asset insights to provide a comprehensive overview in one convenient console. With this powerful new capability, you can now conduct investigations faster and more efficiently than ever before, whether you're tracking events or seeking comprehensive data spanning months, this module offers a centralised hub for all your information needs. We can't wait for you to experience the simplicity and power of our latest innovation!&#x20;

{% content-ref url="/pages/1495r1DoDVThAMOo8YER" %}
[How to use the Event Report (Top-down Investigations Module)](/knowledge-base/articles/how-to-use-the-event-report-top-down-investigations-module)
{% endcontent-ref %}

### Asset Table Refresh

We're excited to announce a major update to our asset table for improved daily usability!

The new asset table now includes:

* A full table search function that lets you search across all cells, not just asset names. For example, search by location to see assets in a specific region.
* Search returns appear conveniently organised in the asset type tabs, with a count of results per tab.
* Tab sorting by asset number makes scanning and finding assets easier.
* Responsive table layout ensures you always see the first and last columns, regardless of screen size.

With these enhancements, the asset table is now more powerful and user-friendly than ever before. Searching, sorting, and managing your assets just got a whole lot easier.

Experience the improvements for yourself today! This update makes everyday use of the asset table smooth and seamless. We can't wait for you to explore the new functionality. Let us know if you have any other questions!

## December 2023

### Places and movement reporting

We’re thrilled to introduce the latest enhancement to our platform—the refreshed Place Module!  This update brings an exciting new feature: the ability to seamlessly visualise movement in and out of geo-referenced places. Get ready to experience a whole new dimension of tracking and monitoring with our enhanced Place Module.  This enhancement empowers platform operators to meticulously monitor security events within a yard, track asset movements in a region, and oversee adherences with precision.  For more information on how to use the movement report please click on the [link](https://app.gitbook.com/o/bvtR7ibKVLMyElfrH7vL/s/wO7lqI7ldNl4mfD8FCC1/~/changes/128/knowledge-base/articles/places-and-how-to-use-the-gatehouse-report)

{% content-ref url="/pages/keRvorZ0sNnvVeVIeES1" %}
[Places and how to use the gatehouse report](/knowledge-base/articles/places-and-how-to-use-the-gatehouse-report)
{% endcontent-ref %}

Stay tuned as the place module is going places in the future.

### Map scaling

Within the next week or two, we're set to unveil an upgraded Places module. This enhancement will give operators the capability to track current occupants within a location, along with a comprehensive gatehouse report detailing all asset movements within that specified area. As part of this revamp, we've integrated a feature allowing users to visualise the map scale, enabling the real-life distance measurement between two points, whether they're 100 meters apart or separated by 5 kilometres.

If you like talking in the imperial system we haven’t forgotten you, you only need to click on the scale and it will switch between the 2 formats.

![](/files/CpyI3uAUrLDTw8wJJkFJ)

## November 2023

### Introduction of Ignition Status

In this latest update, tracking the movements of your assets just got easier! Now, within the Asset Insights Module, you can pinpoint moments when a vehicle remains stationary but with the engine running. Our latest addition introduces charting capabilities, enabling you to visually map instances when the asset has its ignition turned on. Stay informed and track asset behaviour with greater precision!

![](/files/0GwEotisbfyHXwWEa6WC)

### How to see what assets are in a place

We're excited to introduce an enhanced feature to our places module! With this update, effortlessly locating assets within your yard or workshop is now a seamless experience. Simply click on any designated area, and instantly access a comprehensive view of all assets present, along with their detailed information. Stay tuned for our upcoming update, which will empower you to track and report on all movements within the defined space

{% embed url="<https://youtu.be/gfiYIrHMXxI>" %}

### What control room am I in?

Keeping track of your current room can be challenging if you've received invitations to multiple control rooms. Starting today, this is no longer a concern – you can now easily identify the control room name displayed at the top left corner.

### Fleet data processing

In our latest update, we've dedicated efforts to enhance the platform's ability to manage vehicle messages efficiently. This update significantly reduces delays in vehicle location, fuel usage, and performance data, aiming to achieve near real-time accuracy.

## October 2023

### How to submit an awesome support request

Please get in touch with our super friend support team when you need help or information regarding the Sky Ledge platform, additional information on how to submit an awesome support ticket can be found here:

{% content-ref url="/pages/eMiVrNvXP1MT5sQudoS4" %}
[How to submit an awesome ticket](/knowledge-base/articles/how-to-submit-an-awesome-ticket)
{% endcontent-ref %}

{% embed url="<https://youtu.be/ApdaSmi28Ns>" %}

### Adding a driver's name to a vehicle

Adding a driver's name to a vehicle is as easy as 1, 2 & 3. 1. Find the vehicle, 2. edit the asset details and add or remove a driver's name and 3. submit the change.  It is as easy as 1, 2 & 3

{% embed url="<https://youtu.be/9-hm8XVb56k>" %}

### Filtering the "My Tasks" list

Finding that one task now is much easier with the all-new "My Task" filtering enhancements.  Now you can filter on Task Type and/or the date it is due, no more scrolling is needed.

{% embed url="<https://youtu.be/XR95Zg4LYdY>" %}

### Jump to the next date

Within the Asset Insight module, you no longer have to go to the date picker to jump to either the previous or the next day, now to can you the arrows to easily navigate while you are investigating the asset

<figure><img src="/files/WYKcdZ9u7WjYCIDzBwsd" alt="" width="338"><figcaption></figcaption></figure>

### New Asset Attributes are available

The asset modal has become your first place to find information about your assets, it's now your single point of truth, no more folders and loose paper any more, we have your back covered.

<figure><img src="/files/20NnD2fUpjBckUVxC8JY" alt=""><figcaption></figcaption></figure>

## September 2023

### Open in Google Maps

Need directions to your asset, we have you covered, it's as easy as 2 clicks, find your asset in the table click the tools section and open your asset in Google Maps

<figure><img src="/files/45yUbjql7n3cdWc0Z09V" alt=""><figcaption></figcaption></figure>


