Download OpenAPI specification:Download
Documentation of the API of Mobility Work CMMS (https://www.mobility-work.com/)
The use of the API is subject to the terms of services and fair usage.
Some features are available with a limited usage or only to specific subscription plans. Each endpoint will indicate which subscription plan or which quota is applied to it.
For instance, an endpoint available to all plans:
Starter | Premium | Ultimate |
---|---|---|
✔️ | ✔️ | ✔️ |
For instance, an endpoint limited to some plans:
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
For instance, an endpoint with a quota:
Starter | Premium | Ultimate |
---|---|---|
✔️ 100 tasks/month | ✔️ 500 tasks/month | ✔️ 50.000 tasks/month |
You can subscribe to an higher plan or increase your API quota:
All requests day must be sent using JSON format. To make sure server understand it correctly, add a Content-Type
header to your request with application/json
.
POST /partners/v1/tasks
Content-Type: application/json
{
"description": "Replace motor part"
}
While not mandatory, it's recommended to provide an User-Agent
header which includes your group / network name.
For instance, if your network is named Factory Inc.
and you are using cURL to send request, the user could be :
POST /partners/v1/tasks
User-Agent: curl/1.2.3 Factory Inc.
[...]
The expected request is documented on every endpoints and must be followed. All required parameters must be
provided. Optional parameters can be omitted.
If a request does not follow the expected schema, a 400
response will be returned with every invalid or missing
information.
Request can be sent using a minified format or a pretty/beautify format. The API will treat it regardless the format as long as the expected request is respected. However, it is recommended to use the minified format to reduce bandwidth usage.
It means that the following documented request :
{
"description": "Replace motor part"
}
can also be sent with a minified format :
{"description":"Replace motor part"}
All responses will be sent using JSON format.
If a request is successful, the following status codes can be returned :
200
or 201
when the request is treated immediately202
when the request is accepted and will be processed in backgroundIf a request does not follow the expected format or contains invalid data, a 400
response will be returned. The
responsive will have information about what is missing or invalid.
{
"code": 4000001,
"message": "Invalid input",
"extended_message": {
"global_errors": [],
"property_errors": {
"description": [
"The description should be between 3 and 3000 characters"
],
"equipment": [
"Unknown equipment"
],
"assignees": [
"There should be at least one assignee"
]
}
}
}
⚠️ The documentation will always show JSON using a pretty/beautify format for readability. However, the API will always returns using a minified format to reduce the response size.
It means that the following documented response :
{
"code": 401001,
"message": "Authentication error"
}
will be sent as :
{"code":401001,"message":"Authentication error"}
Some API tools like Postman or Insomnia can show responses in pretty/beautify format by default.
If your request is invalid or cannot be processed, an error will be returned. Errors are documented on every endpoints and follow a similar format providing as much useful information as possible.
For instance, the error when authentication fails is :
{
"code": 401001,
"message": "Authentication error"
}
Every requests must be done with an API Key. Each API Key is associated to a single network providing an access to all features available on the network subscription plan.
For instance :
POST /partners/v1/tasks
Api-Key: 913a8f7cef6ff084f1635511b9c7d07c3bab2816
[...]
To get an API Key, send an email to sales@mobility-work.com or contact your CSM.
The documentation is also available on every endpoints in the security section and the API Key will be prompted when you try the endpoint on this documentation.
Starter | Premium | Ultimate |
---|---|---|
✔️ | ✔️ | ✔️ |
Creation of spare part(s)
⚠️ The request is processed in background. It can takes up to several minutes to see the change if there is a lot of changes.
Unit price amount must be passed as an integer in the lowest unit of the currency. For example, EUR and USD have a cent unit, 10 EUR = 1000 cents, 10 USD = 1000 pennies.
⚠️ A maximum of 10.000 creations can be processed in a single request. You need to split in several requests if you have more.
Request accepted (e.g. all changes will be processed as soon as possible)
Request contains invalid data or does not have all required data
Missing or invalid Api Key (e.g. revoked or non-existent)
Access denied
Multi spare part creation, one with the minimum data and another with all available information
[- {
- "name": "SP min",
- "description": "New spare part with minimum info",
- "externalReference": "my-ref-sp-min",
- "unitPrice": {
- "amount": 42000,
- "currency": "EUR"
}, - "currentStock": {
- "location": "building #1",
- "quantity": 33
}
}, - {
- "name": "SP complete",
- "description": "New spare part with all info",
- "externalReference": "my-ref-sp-all",
- "unitPrice": {
- "amount": 9000,
- "currency": "USD"
}, - "currentStock": {
- "location": "building #1",
- "quantity": 806
}, - "minimumStock": 10,
- "maximumStock": 1000,
- "gtin": "9782070363513",
- "costCenter": "stock"
}
]
null
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ 1000/month | ✔️ |
Update all spare parts stock (e.g. inventory) at once. Stock amount will replaced by the given quantity. If multiple spare parts exists with the same article code, then the stock will be replaced on every spare parts with that article code.
⚠️ The request is processed in background. It can takes up to several minutes to see the change if there is a lot of changes.
The spare part identifier can be provided in two way:
For instance, that format:
[
{
"id": "MW-417304e0-2ff0-410d-a7cd-de20439140c8"
}
]
is equivalent to:
[
{
"id": {
"type": "externalReference",
"value": "MW-417304e0-2ff0-410d-a7cd-de20439140c8"
}
}
]
Article code is automatically generated when a spare part is referenced on the CMMS. You can replace it by your own identifier in the UI or by using the API to update spare parts attributes.
⚠️ A maximum of 10.000 stock changes can be processed in a single request. You need to split in several requests if you have more changes.
Request accepted (e.g. all changes will be processed as soon as possible)
Request contains invalid data or does not have all required data
Missing or invalid Api Key (e.g. revoked or non-existent)
Subscription plan does not allow to use that API
[- {
- "id": "MW-417304e0-2ff0-410d-a7cd-de20439140c8",
- "quantity": 9
}
]
null
Starter | Premium | Ultimate |
---|---|---|
✔️ | ✔️ | ✔️ |
Update all spare part(s) by replacing information with the provided information.
⚠️ The request is processed in background. It can takes up to several minutes to see the change if there is a lot of changes.
Omit the property if you do not want to make any changes to the attribute. For instance, the following request will only update the spare part name:
[
{
"id": {
"type": "externalReference",
"value": "c6d6f829-6c36-30cc-93be-d5202ca28aa4"
},
"name": "Rotor"
}
]
To unset an attribute, set it to null. For instance, the following request will remove the minimum stock:
[
{
"id": {
"type": "externalReference",
"value": "c6d6f829-6c36-30cc-93be-d5202ca28aa4"
},
"minimumStock": null
}
]
Unit price amount must be passed as an integer in the lowest unit of the currency. For example, EUR and USD have a cent unit, 10 EUR = 1000 cents, 10 USD = 1000 pennies.
For instance, if one spare part has a unit price of €35.00 and another has a unit price of $499.99, the request to update unit price should be:
[
{
"id": {
"type": "externalReference",
"value": "c6d6f829-6c36-30cc-93be-d5202ca28aa4"
},
"unitPrice": {
"amount": 3500,
"currency": "EUR"
}
},
{
"id": {
"type": "externalReference",
"value": "d8194f1f-050d-4f74-a592-2d541e6127aa"
},
"unitPrice": {
"amount": 49999,
"currency": "USD"
}
}
]
⚠️ A maximum of 10.000 updates can be processed in a single request. You need to split in several requests if you have more changes.
Request accepted (e.g. all changes will be processed as soon as possible)
Request contains invalid data or does not have all required data
Missing or invalid Api Key (e.g. revoked or non-existent)
Access denied
update on several spare parts with different fields updated and different way to specify the identifier
[- {
- "id": {
- "type": "externalReference",
- "value": "my-ref-sp-min"
}, - "minimumStock": 10,
- "maximumStock": 100,
- "replenishmentLot": 10,
- "gtin": "5654534534545"
}, - {
- "id": "my-ref-sp-all",
- "name": "SIRIUS Innovation 3RT2 3 Pole Contactor - 9 A, 24 V dc Coil, 3NO, 4 kW",
- "customFields": [
- {
- "field": "$manufacturer",
- "value": "Siemens"
}, - {
- "field": "$manufacturer-reference",
- "value": "3RT2016-1BB41"
}, - {
- "field": "valuation-class",
- "value": "P"
}
]
}, - {
- "id": "my-ref-sp-custom",
- "description": "Rotor Mk. I",
- "customFields": [ ]
}, - {
- "id": {
- "type": "externalReference",
- "value": "NCC-1701-E"
}, - "description": "Rotor NCC-1701-E",
- "tags": [ ]
}, - {
- "id": {
- "type": "externalReference",
- "value": "NX-01"
}, - "tags": [
- {
- "operation": "add",
- "values": [
- "transport",
- "heavy"
]
}, - {
- "operation": "remove",
- "values": [
- "rubber"
]
}
]
}, - {
- "id": {
- "type": "externalReference",
- "value": "NCC-2893"
}, - "tags": [
- {
- "operation": "replace",
- "values": [
- "transport",
- "heavy"
]
}
], - "costCenter": "stock"
}
]
null
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Update all equipment(s) by replacing information with the provided information.
⚠️ The request is processed in background. It can takes up to several minutes to see the change if there is a lot of changes.
The equipment identifier can be provided in two way:
For instance, that format:
[
{
"id": 2507
}
]
is equivalent to:
[
{
"id": {
"type": "native",
"value": 2507
}
}
]
Omit the property if you do not want to make any changes to the attribute. To unset an attribute, set it to null.
⚠️ A maximum of 10.000 updates can be processed in a single request. You need to split in several requests if you have more changes.
Request accepted (e.g. all changes will be processed as soon as possible)
Request contains invalid data or does not have all required data
Missing or invalid Api Key (e.g. revoked or non-existent)
Access denied
update all info of an equipment and clear custom fields of another equipment
[- {
- "id": {
- "type": "native",
- "value": 2507
}, - "name": "My equipment all info",
- "description": "my equipment with all info",
- "gtin": "00012345678905",
- "costCenter": "Outpost",
- "tags": [
- "$preventive"
], - "customFields": [
- {
- "field": "custom-field-code",
- "value": "Siemens"
}
]
}, - {
- "id": 2508,
- "description": "remove all existing custom fields",
- "customFields": [ ]
}, - {
- "id": {
- "type": "externalReference",
- "value": "my-item-code"
}, - "description": "My equipment identified by item code"
}, - {
- "id": "my-other-item-code",
- "description": "My equipment identified by item code"
}
]
null
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a spare part is out of stock after consumption or stock update
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "SparePartWasOutOfStock",
- "_date": "2022-06-02T14:31:06+00:00",
- "_metadata": null,
- "stock": {
- "location": {
- "locationId": "78a70e7e-f80c-45e9-863a-cd71f6395c9b",
- "name": "Allée 2 - Rang 3 - Étagère 4"
}
}, - "sparePart": {
- "sparePartId": "e68243dd-cc9c-499c-8556-16c0215b719b",
- "name": "SP all info",
- "articleCode": "SP987678"
}, - "movement": {
- "on": "2022-06-02T14:31:06+00:00"
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when the stock amount of a spare part has gone bellow the minimum stock threshold
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "SparePartStockWasUnderMinThreshold",
- "_date": "2022-06-02T14:31:06+00:00",
- "_metadata": null,
- "stock": {
- "location": {
- "locationId": "78a70e7e-f80c-45e9-863a-cd71f6395c9b",
- "name": "Allée 2 - Rang 3 - Étagère 4"
}, - "threshold": 100,
- "value": 98
}, - "sparePart": {
- "sparePartId": "e68243dd-cc9c-499c-8556-16c0215b719b",
- "name": "SP all info",
- "articleCode": "SP987678"
}, - "movement": {
- "on": "2022-06-02T14:31:06+00:00"
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when the stock of a spare part was manually modified
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_type": "SparePartWasManuallyRecountedWebhook",
- "_event": "SparePartWasManuallyRecounted",
- "_sentAt": "2022-06-02T14:31:06+00:00",
- "emittedAt": "2023-02-08T23:00:00+00:00",
- "_metadata": "",
- "sparePart": {
- "_type": "sparePart",
- "name": "Equipment with spare part # 18",
- "sparePartId": "88b0b0f1-f5d0-4eeb-8b3c-c936b2c8a3b9",
- "articleCode": "whr484zb",
- "stock": 119
}, - "location": {
- "_type": "Location",
- "locationId": "2d6e80f6-3608-3daf-935c-7533536863e8",
- "name": "consequatur"
}, - "initiator": {
- "_type": "User",
- "userId": "e1fff3f1-aabd-4d82-8c3e-2cc75d1f4d7f",
- "firstName": "Monty",
- "lastName": "Watsica"
}, - "recounted": {
- "_type": "StockRecount",
- "quantity": 3,
- "previousStock": 116
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a spare part has been replenished
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_type": "SparePartWasRestockedWebhook",
- "_event": "SparePartWasRestocked",
- "_sentAt": "2022-06-02T14:31:06+00:00",
- "emittedAt": "2023-02-08T23:00:00+00:00",
- "_metadata": "",
- "task": null,
- "sparePart": {
- "_type": "sparePart",
- "name": "Equipment with spare part # 18",
- "sparePartId": "88b0b0f1-f5d0-4eeb-8b3c-c936b2c8a3b9",
- "articleCode": "whr484zb",
- "stock": 119
}, - "location": {
- "_type": "Location",
- "locationId": "2d6e80f6-3608-3daf-935c-7533536863e8",
- "name": "consequatur"
}, - "initiator": {
- "_type": "User",
- "userId": "e1fff3f1-aabd-4d82-8c3e-2cc75d1f4d7f",
- "firstName": "Monty",
- "lastName": "Watsica"
}, - "restocked": {
- "_type": "SparePartRestock",
- "quantity": 3,
- "previousStock": 116
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a spare part is consumed
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_type": "SparePartWasConsumedWebhook",
- "_event": "SparePartWasConsumed",
- "_sentAt": "2022-06-02T14:31:06+00:00",
- "emittedAt": "2023-02-08T23:00:00+00:00",
- "_metadata": "",
- "task": {
- "_type": "Task",
- "taskId": "dfe1da12",
- "equipment": {
- "itemCode": "EQ-0001",
- "costCenter": "Outpost"
}
}, - "sparePart": {
- "_type": "sparePart",
- "name": "Equipment with spare part # 18",
- "sparePartId": "88b0b0f1-f5d0-4eeb-8b3c-c936b2c8a3b9",
- "articleCode": "whr484zb",
- "stock": 119
}, - "location": {
- "_type": "Location",
- "locationId": "2d6e80f6-3608-3daf-935c-7533536863e8",
- "name": "consequatur"
}, - "initiator": {
- "_type": "User",
- "userId": "e1fff3f1-aabd-4d82-8c3e-2cc75d1f4d7f",
- "firstName": "Monty",
- "lastName": "Watsica"
}, - "consumed": {
- "_type": "SparePartConsumption",
- "quantity": 3,
- "previousStock": 116
}
}
Anything related to maintenance operations (e.g. task, activities, maintenance plans, etc.).
Starter | Premium | Ultimate |
---|---|---|
✔️ 100 tasks/month | ✔️ 500 tasks/month | ✔️ 50.000 tasks/month |
Pragmatically schedule a new task to be executed by the given assignees.
For some properties, we support providing several kind of identifiers.
native
are type auto-generated by Mobility Workexternal
are type that you provide from an import or manually through the Web interfaceemail
are e-mails that are associated with your user accountcode
are type auto-generated by Mobility Work or manually through the Web interfaceFor each type, we support type inference, it means that we automatically detect the type from the value.
assignees
you can mix both native
and email
identifiers.tags
you can mix both native
and code
identifiers.equipment
you can mix both native
and external
identifiers.If type cannot be inferred, an error will be generated. You can still force the type by providing a more typed property:
{
"assignees": [
3,
"john.doe@example.com"
]
}
is equivalent to:
{
"assignees": [
{
"type": "native",
"value": 3
},
{
"type": "email",
"value": "john.doe@example.com"
}
]
}
The property metadata
can be used to send any arbitrary data to associate with the task you create. For example,
on task creation, you can define the following metadata:
{
"metadata": {
"internalIdentifier": 1234
}
}
It will be sent back through webhooks. You can set it to set a custom identifier to further correlate a task with any internal value.
Task successfully scheduled
Request contains invalid data or does not have all required data
Missing or invalid Api Key (e.g. revoked or non-existent)
{- "equipment": 9,
- "description": "API Task creation",
- "startDateTime": "2022-01-11T09:00:00+00:00",
- "endDateTime": "2022-01-11T10:00:00+00:00",
- "allDay": false,
- "assignees": [
- 3,
- "john.doe@example.com"
]
}
null
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was marked as completed by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasCompleted",
- "legacyId": "32828f62",
- "id": "32828f62",
- "doneAt": "2021-11-02T16:32:38+00:00",
- "initiator": {
- "id": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was scheduled by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasScheduled",
- "taskId": "32828f62",
- "scheduled": {
- "by": {
- "userId": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "on": "2021-11-02T16:32:38+00:00"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was canceled by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasCanceled",
- "taskId": "32828f62",
- "canceled": {
- "by": {
- "userId": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "on": "2021-11-02T16:32:38+00:00"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was started by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasStarted",
- "taskId": "32828f62",
- "started": {
- "by": {
- "userId": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "on": "2021-11-02T16:32:38+00:00"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when an activity was reported on a task by an user
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "ActivityWasAddedOnTask",
- "_type": "ActivityWasAddedOnTaskWebhook",
- "_sentAt": "2023-06-13T15:23:48+00:00",
- "_metadata": [ ],
- "emittedAt": "2023-06-13T15:23:43+00:00",
- "task": {
- "_type": "Task",
- "taskId": "941c77dc",
- "description": "corrective maintenance of the FREDS machine",
- "metadata": {
- "internalIdentifier": 1234
}
}, - "equipment": {
- "_type": "equipment",
- "type": "equipment",
- "equipmentId": "d1e569da-f996-4554-a335-12278873ae42",
- "itemCode": "mw-ref-poz-01",
- "name": "FREDS"
}, - "activity": {
- "_type": "Activity",
- "activityId": 19823,
- "description": "replacement lamps",
- "timeSpentInMinutes": 120,
- "completedAt": "2023-06-13T14:00:00+00:00",
- "reporter": {
- "_type": "User",
- "userId": "2e9aadc1-8b7a-46f7-bd27-85983d97357d",
- "firstName": "John",
- "lastName": "Doe"
}
}
}
Starter | Premium | Ultimate |
---|---|---|
✔️ | ✔️ | ✔️ |
Get information about the network associated to the API Key.
Network settings
Missing or invalid Api Key (e.g. revoked or non-existent)
Access denied
{- "networkId": "4d4b9269-db6b-4b8f-8577-d01ef451d291",
- "legacyNetworkId": 686,
- "name": "Mobility Work",
- "timezone": "Europe/Paris",
- "currency": "EUR"
}
Webhooks allow you to be notified in real-time of any events occurring in the application.
A webhook must have been configured with that event to receive it. Administrators can configure webhooks here. If you want to test webhooks, you can use a service like RequestBin.com to receive webhooks and inspect it.
If the webhook fails (http code bigger than 399), the call to the webhook is retried twice. If the call is still in error, a email is sent.
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was marked as completed by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasCompleted",
- "legacyId": "32828f62",
- "id": "32828f62",
- "doneAt": "2021-11-02T16:32:38+00:00",
- "initiator": {
- "id": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was scheduled by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasScheduled",
- "taskId": "32828f62",
- "scheduled": {
- "by": {
- "userId": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "on": "2021-11-02T16:32:38+00:00"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was canceled by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasCanceled",
- "taskId": "32828f62",
- "canceled": {
- "by": {
- "userId": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "on": "2021-11-02T16:32:38+00:00"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a task was started by an user.
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "TaskWasStarted",
- "taskId": "32828f62",
- "started": {
- "by": {
- "userId": "ee84d563-da9c-47ee-a79f-7147814509e0",
- "firstName": "John",
- "lastName": "Doe"
}, - "on": "2021-11-02T16:32:38+00:00"
}, - "associatedTo": {
- "_type": "equipment",
- "type": "equipment",
- "id": "ff77ef5b-19d4-4c50-96da-6a16f9c43644",
- "legacyId": 7111,
- "itemCode": "EQ-0001",
- "name": "Machine Tool #1"
}, - "metadata": {
- "internalIdentifier": 1234
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when an activity was reported on a task by an user
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "ActivityWasAddedOnTask",
- "_type": "ActivityWasAddedOnTaskWebhook",
- "_sentAt": "2023-06-13T15:23:48+00:00",
- "_metadata": [ ],
- "emittedAt": "2023-06-13T15:23:43+00:00",
- "task": {
- "_type": "Task",
- "taskId": "941c77dc",
- "description": "corrective maintenance of the FREDS machine",
- "metadata": {
- "internalIdentifier": 1234
}
}, - "equipment": {
- "_type": "equipment",
- "type": "equipment",
- "equipmentId": "d1e569da-f996-4554-a335-12278873ae42",
- "itemCode": "mw-ref-poz-01",
- "name": "FREDS"
}, - "activity": {
- "_type": "Activity",
- "activityId": 19823,
- "description": "replacement lamps",
- "timeSpentInMinutes": 120,
- "completedAt": "2023-06-13T14:00:00+00:00",
- "reporter": {
- "_type": "User",
- "userId": "2e9aadc1-8b7a-46f7-bd27-85983d97357d",
- "firstName": "John",
- "lastName": "Doe"
}
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a spare part is out of stock after consumption or stock update
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "SparePartWasOutOfStock",
- "_date": "2022-06-02T14:31:06+00:00",
- "_metadata": null,
- "stock": {
- "location": {
- "locationId": "78a70e7e-f80c-45e9-863a-cd71f6395c9b",
- "name": "Allée 2 - Rang 3 - Étagère 4"
}
}, - "sparePart": {
- "sparePartId": "e68243dd-cc9c-499c-8556-16c0215b719b",
- "name": "SP all info",
- "articleCode": "SP987678"
}, - "movement": {
- "on": "2022-06-02T14:31:06+00:00"
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when the stock amount of a spare part has gone bellow the minimum stock threshold
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_event": "SparePartStockWasUnderMinThreshold",
- "_date": "2022-06-02T14:31:06+00:00",
- "_metadata": null,
- "stock": {
- "location": {
- "locationId": "78a70e7e-f80c-45e9-863a-cd71f6395c9b",
- "name": "Allée 2 - Rang 3 - Étagère 4"
}, - "threshold": 100,
- "value": 98
}, - "sparePart": {
- "sparePartId": "e68243dd-cc9c-499c-8556-16c0215b719b",
- "name": "SP all info",
- "articleCode": "SP987678"
}, - "movement": {
- "on": "2022-06-02T14:31:06+00:00"
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when the stock of a spare part was manually modified
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_type": "SparePartWasManuallyRecountedWebhook",
- "_event": "SparePartWasManuallyRecounted",
- "_sentAt": "2022-06-02T14:31:06+00:00",
- "emittedAt": "2023-02-08T23:00:00+00:00",
- "_metadata": "",
- "sparePart": {
- "_type": "sparePart",
- "name": "Equipment with spare part # 18",
- "sparePartId": "88b0b0f1-f5d0-4eeb-8b3c-c936b2c8a3b9",
- "articleCode": "whr484zb",
- "stock": 119
}, - "location": {
- "_type": "Location",
- "locationId": "2d6e80f6-3608-3daf-935c-7533536863e8",
- "name": "consequatur"
}, - "initiator": {
- "_type": "User",
- "userId": "e1fff3f1-aabd-4d82-8c3e-2cc75d1f4d7f",
- "firstName": "Monty",
- "lastName": "Watsica"
}, - "recounted": {
- "_type": "StockRecount",
- "quantity": 3,
- "previousStock": 116
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a spare part has been replenished
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_type": "SparePartWasRestockedWebhook",
- "_event": "SparePartWasRestocked",
- "_sentAt": "2022-06-02T14:31:06+00:00",
- "emittedAt": "2023-02-08T23:00:00+00:00",
- "_metadata": "",
- "task": null,
- "sparePart": {
- "_type": "sparePart",
- "name": "Equipment with spare part # 18",
- "sparePartId": "88b0b0f1-f5d0-4eeb-8b3c-c936b2c8a3b9",
- "articleCode": "whr484zb",
- "stock": 119
}, - "location": {
- "_type": "Location",
- "locationId": "2d6e80f6-3608-3daf-935c-7533536863e8",
- "name": "consequatur"
}, - "initiator": {
- "_type": "User",
- "userId": "e1fff3f1-aabd-4d82-8c3e-2cc75d1f4d7f",
- "firstName": "Monty",
- "lastName": "Watsica"
}, - "restocked": {
- "_type": "SparePartRestock",
- "quantity": 3,
- "previousStock": 116
}
}
Starter | Premium | Ultimate |
---|---|---|
❌ | ✔️ | ✔️ |
Triggered when a spare part is consumed
The endpoint should return 200 status to indicate that the data was received successfully.
{- "_type": "SparePartWasConsumedWebhook",
- "_event": "SparePartWasConsumed",
- "_sentAt": "2022-06-02T14:31:06+00:00",
- "emittedAt": "2023-02-08T23:00:00+00:00",
- "_metadata": "",
- "task": {
- "_type": "Task",
- "taskId": "dfe1da12",
- "equipment": {
- "itemCode": "EQ-0001",
- "costCenter": "Outpost"
}
}, - "sparePart": {
- "_type": "sparePart",
- "name": "Equipment with spare part # 18",
- "sparePartId": "88b0b0f1-f5d0-4eeb-8b3c-c936b2c8a3b9",
- "articleCode": "whr484zb",
- "stock": 119
}, - "location": {
- "_type": "Location",
- "locationId": "2d6e80f6-3608-3daf-935c-7533536863e8",
- "name": "consequatur"
}, - "initiator": {
- "_type": "User",
- "userId": "e1fff3f1-aabd-4d82-8c3e-2cc75d1f4d7f",
- "firstName": "Monty",
- "lastName": "Watsica"
}, - "consumed": {
- "_type": "SparePartConsumption",
- "quantity": 3,
- "previousStock": 116
}
}