Ce document explique comment configurer le système Ivanti v1.1.0 avec le module Ticket Orchestrator de la plateforme Netskope Cloud Exchange. Ce plugin est utilisé pour créer, mettre à jour, synchroniser les incidents/tickets sur la plateforme Ivanti.
Conditions préalables
Pour compléter cette configuration, vous avez besoin de :
- Un locataire Netskope (ou plusieurs, par exemple des instances de production et de développement/test).
- Un locataire Netskope Cloud Exchange avec le plugin Tenant et le plugin Ticket Orchestrator déjà configurés.
- Connectivity to Ivanti platform (https://<ivanti URL>)
Support du plugin Ivanti
| Description | Types pris en charge |
|---|---|
| Alertes pour les contraventions/incidents | Anomalie, Compromised Credentials, policy, Legal Hold, malsite, Malware, DLP (Prévention des pertes de données), Security Assessment, watchlist, quarantine, Remediation, UBA, CTEP |
Mises en correspondance
Mises en file d'attente
| Champs cibles (champs API Ivanti) | Champs Ivanti (Plate-forme Ivanti) |
|---|---|
| subject | Summary |
| symptom | Description |
| status | Statut |
| newnotes | Historique des activités |
Mappages d'état
| Statut de Cloud Exchange | Statut d'Ivanti |
|---|---|
| Nouveau | Logged |
| En cours | Actif |
| En attente | En attente d'un client |
| En attente | Dans l'attente d'une résolution |
| En attente | En attendant le troisième parti |
| Autres | Resolved |
| Closed | Closed |
| Autres | Cancelled |
Permissions
Ces autorisations sont nécessaires pour le plugin :
| Nom de l'objet | Permission |
|---|---|
| Attachment | Ajouter, voir, modifier, supprimer |
| CI | Ajouter, voir, modifier, supprimer |
| CI.CloudServiceAsset | Ajouter, voir, modifier, supprimer |
| CI.Computer | Voir, Modifier |
| CI.Service | Ajouter, voir, modifier, supprimer |
| Catégorie | Ajouter, voir, modifier, supprimer |
| CurrencyCode | Ajouter, voir, modifier, supprimer |
| Employee | Ajouter, voir, modifier, supprimer |
| FRS_MyItem | Ajouter, voir, modifier, supprimer |
| FRS_MyItemParentObjType | Ajouter, voir, modifier, supprimer |
| FRS_MyItemStatus | Ajouter, voir, modifier, supprimer |
| Frs_CompositeContract_Email | Ajouter, voir, modifier, supprimer |
| Frs_data_escalation_watch | Ajouter, voir, modifier, supprimer |
| Frs_def_hours_of_operation | Ajouter, voir, modifier, supprimer |
| Impact | Ajouter, voir, modifier, supprimer |
| ImpactHRAnouncment | Ajouter, voir, modifier, supprimer |
| Incident | Ajouter, voir, modifier, supprimer |
| IncidentBreachReasonCo | Ajouter, voir, modifier, supprimer |
| IncidentBreachResponsibility | Ajouter, voir, modifier, supprimer |
| IncidentCauseCode | Ajouter, voir, modifier, supprimer |
| IncidentDetails | Ajouter, voir, modifier, supprimer |
| IncidentDetailAccountLo | Ajouter, voir, modifier, supprimer |
| IncidentDetail.Employee | Ajouter, voir, modifier, supprimer |
| IncidentDetail.WebsiteFai | Ajouter, voir, modifier, supprimer |
| IncidentDetail.ActionNeeded | Ajouter, voir, modifier, supprimer |
| IncidentPriority | Ajouter, voir, modifier, supprimer |
| IncidentSource | Ajouter, voir, modifier, supprimer |
| IncidentStatus | Ajouter, voir, modifier, supprimer |
| IncidentType | Ajouter, voir, modifier, supprimer |
| Journal | Ajouter, voir, modifier, supprimer |
| Journal.Email | Ajouter, voir, modifier, supprimer |
| JournalEmailCategory | Ajouter, voir, modifier, supprimer |
| JournalNoteCategory | Ajouter, voir, modifier, supprimer |
| JournalNoteSource | Ajouter, voir, modifier, supprimer |
| JournalType | Ajouter, voir, modifier, supprimer |
| Location | Ajouter, voir, modifier, supprimer |
| OrganizationUnit | Ajouter, voir, modifier, supprimer |
| Profile | Ajouter, voir, modifier, supprimer |
| Profile.BusinessUnit | Ajouter, voir, modifier, supprimer |
| ProfileEmployeeStatus | Ajouter, voir, modifier, supprimer |
| ServiceAggrement | Ajouter, voir, modifier, supprimer |
| StandarduserTeam | Ajouter, voir, modifier, supprimer |
| task | Ajouter, voir, modifier, supprimer |
| Urgency | Ajouter, voir, modifier, supprimer |
Note
L'autorisation mentionnée ici concerne le mappage par défaut ; l'autorisation pour les objets commerciaux peut varier si les champs ont été modifiés ou si des champs personnalisés ont été ajoutés.
Détails de l'API
Liste des API utilisées
| Cas d'utilisation | Méthode | Endpoint |
|---|---|---|
| Obtenir un jeton d'authentification | PUBLIER | api/rest/authentication/login |
| Obtenir des champs pour la mise en correspondance | OBTENIR | /api/odata/incidents/$metadata |
| Créer des incidents sur Ivanti | PUBLIER | /api/odata/businessobject/incidents |
| Mise à jour des incidents | PATCH | /api/odata/businessobject/incidents(<ID du dossier d’incident") |
| État de synchronisation | OBTENIR | /api/odata/businessobject/incidents |
Obtenir le jeton d'authentification
API Endpoint: API/REST/Authentification/Connexion
Method: PUBLICATION
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.0.0-cto-ivanti-v1.1.0 |
| Accept | application/json |
| Content-Type | application/json |
Parameters
| Clé | Value |
|---|---|
| locataire | Tenant domain, netskope.try.com |
| nom d'utilisateur | <Username><Nom d’utilisateur > |
| password | <Password> |
| role | <Internal Role><Rôle interne > |
Sample API Response
"netskope-try.trysaasit.com#2RGH742EKKELQ7LA1BDQUGBUTOEAG9G1#2"
Validation de l'ID de l'enregistrement du salarié
API Endpoint: /api/odata/businessobject/employees(« ID de dossier employé »)
Method: ALLEZ
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.0.0-cto-ivanti-v1.1.0 |
| Accept | application/json |
| Content-Type | application/json |
Sample API Response
{
"@odata.context": "https://netskope-try.trysaasit.com/api/odata/$metadata#employees/$entity",
"InitialNotReadyReasonValue_Valid": null,
"InitialNotReadyReasonValue": null,
"Address1": null,
"Address1City": null,
"Address1Country": null,
"Address1State": null,
"Address1Zip": null,
"Birthdate": null,
"BusinessUnit": null,
"BusinessUnitID": null,
"ContactId": "e9c4fd8f-6fe1-ee11-b717-000d3a19b96f",
"CostCentre": null,
"CreatedBy": "Admin",
"CreatedDateTime": "2024-03-13T19:26:17.76Z",
"CreationMethod_Valid": null,
"CreationMethod": null,
"Department_Valid": null,
"Department": null,
"DepartmentCode": null,
"Department_Sync": null,
"Disabled": false,
"DisplayName": "Gary Jenkins",
"EmployeeInformation": null,
"EmployeeLocation_Valid": null,
"EmployeeLocation": null,
"EmployeePhoto": "",
"EmployeePhotoName": null,
"EmployeePhotoRevision": 10,
"EnableIPCMIntegration": false,
"FirstName": "Gary",
"Floor": null,
"HiredDate": null,
"IPCM_AgentGroup_Valid": null,
"IPCM_AgentGroup": null,
"IPCM_Audited_Valid": "CCAF93D28E8F46BBB2BB83C8B893A9D1",
"IPCM_Audited": "Group Defined",
"IPCM_Description": null,
"IPCM_EnableIPCMUser": false,
"IPCM_InitialAgentStatus_Valid": "B095CE75D44545AFA9A4A5439FA001C7",
"IPCM_InitialAgentStatus": "Group Defined",
"IPCM_InitialNotReadyReason_Valid": "CB9517EAD27A4A81BFB6618221DED1EB",
"IPCM_InitialNotReadyReason": "Group Defined",
"IPCM_NotReadyRequired_Valid": "EEA8091CF845481FA82E79303D9AB87D",
"IPCM_NotReadyRequired": "Group Defined",
"IPCM_OverrideDN": null,
"IPCM_RecordingPct": null,
"IPCM_SearchableByName": false,
"IPCM_UILanguage_Valid": null,
"IPCM_UILanguage": null,
"IPCM_VOIPLink_Category": null,
"IPCM_VOIPLink_RecID": null,
"IPCM_VOIPLink": null,
"IPCM_VoiceAgent": false,
"IPCM_VoiceSupervisor": false,
"IPCM_WrapupSeconds": 0,
"IPCM_WrapupTimeout_Valid": "2324B2F832D541A08D7B35942120B59E",
"IPCM_WrapupTimeout": "Group Defined",
"IVRPinCode": null,
"IdentityId": "eac4fd8f-6fe1-ee11-b717-000d3a19b96f",
"InternalAuthPasswd": "",
"InternalPwdDateTime": "2024-03-13T19:26:17.76Z",
"IsAutoProvisioned": false,
"IsExternalAuth": false,
"IsInternalAuth": true,
"IsNamedUser": false,
"LastExternalLoginId": null,
"LastModBy": "Admin",
"LastModDateTime": "2024-04-08T08:36:56Z",
"LastName": "Jenkins",
"LoginID": "gjenkins@netskope.com",
"ManagerEmail": null,
"ManagerLink_Category": null,
"ManagerLink_RecID": null,
"ManagerLink": null,
"MiddleName": null,
"NetworkUserName": "gjenkins@netskope.com",
"NotificationLink_Category": null,
"NotificationLink_RecID": null,
"NotificationLink": null,
"OrgUnitLink_Category": "OrganizationalUnit",
"OrgUnitLink_RecID": "978ABB09369944C1991468FC458F488E",
"OrgUnitLink": "978ABB09369944C1991468FC458F488E",
"EntityLink_Category": "OrganizationalUnit",
"EntityLink_RecID": "978ABB09369944C1991468FC458F488E",
"EntityLink": "978ABB09369944C1991468FC458F488E",
"OrganizationalUnit": "Default",
"Owner_Valid": "FB884D18F7B746A0992880F2DFFE749C",
"Owner": "Admin",
"ParentLink_Category": null,
"ParentLink_RecID": null,
"ParentLink": null,
"PasswordExpiration": true,
"PrimaryPhone": null,
"Phone1": null,
"Phone2": null,
"Prefix_Valid": null,
"Prefix": null,
"PrimaryEmail": "gjenkins@netskope.com",
"ProfileID": null,
"ReadOnly": false,
"RecId": "F7177FFB09B44D159B1ADE379A5D1BC7",
"RegionLink_Category": null,
"RegionLink_RecID": null,
"RegionLink": null,
"Room": null,
"Status_Valid": "427831F3A1234345A495A1F144C15158",
"Status": "Active",
"Suffix_Valid": null,
"Suffix": null,
"Supervisor": null,
"Team_Valid": "2E4BABD54FB9420D94F836F0D9B80C47",
"Team": "Service Desk",
"TeamEmail": "change@example.com",
"TeamManagerEmail": "change@example.com",
"TempInternalAuthPassword": "",
"TempPwdDatetime": null,
"TerminatedDate": null,
"Title_Valid": null,
"Title": null,
"Title_Sync": null,
"VIP": false,
"ReportedByLink_Category": null,
"ReportedByLink_RecID": null,
"ReportedByLink": null,
"LocationLink_Category": null,
"LocationLink_RecID": null,
"LocationLink": null,
"DefaultChargingAccount_Valid": null,
"DefaultChargingAccount": null,
"DN": null,
"Language_Valid": null,
"Language": null,
"RemoteControlUID": null,
"RemoteControlPwd": null,
"Address1Line2": null,
"NamedLicenseBundle_Valid": null,
"NamedLicenseBundle": null,
"CreationSource": null,
"LockDate": null,
"LoginAttemptCount": 0,
"CustID": null,
"SLAClass_Valid": null,
"SLAClass": null,
"LockType": "",
"Phone1Ext": null,
"Phone2Ext": null,
"WeeklyAvailability": null,
"GlobalId": null,
"LoginId_Name": null,
"ivnt_Director": null,
"ivnt_CurrencyText": null,
"ivnt_Country": null,
"ivnt_HRCaseLink_Category": null,
"ivnt_HRCaseLink_RecID": null,
"ivnt_HRCaseLink": null,
"Emp_LoginId": null,
"ivnt_WorkOrderlink_Category": null,
"ivnt_WorkOrderlink_RecID": null,
"ivnt_WorkOrderlink": null,
"ivnt_BuildingLink_Category": null,
"ivnt_BuildingLink_RecID": null,
"ivnt_BuildingLink": null,
"ivnt_CubicleLink_Category": null,
"ivnt_CubicleLink_RecID": null,
"ivnt_CubicleLink": null,
"ivnt_FloorLink_Category": null,
"ivnt_FloorLink_RecID": null,
"ivnt_FloorLink": null,
"ivnt_BuildingName": null,
"ivnt_FloorName": null,
"ivnt_CubicleNumber": null,
"ivnt_UpdateBuilding_Valid": null,
"ivnt_UpdateBuilding": null,
"ivnt_UpdateFloor_Valid": null,
"ivnt_UpdateFloor": null,
"ivnt_UpdateLocation_Valid": null,
"ivnt_UpdateLocation": null,
"BuildingName": null,
"AccessListOrgUnit": null,
"AzureAD_ID": null,
"ROLE_TO_LINK": null,
"nrn_FullName": null,
"nrn_Gender": null,
"nrn_MaritalStatus_Valid": null,
"nrn_MaritalStatus": null,
"nrn_CitizenshipStatus": null,
"nrn_MilitaryServiceStatus": null,
"nrn_ExemptionStatus": false,
"nrn_PersonalEmail": null,
"nrn_InternationalWorkPhone": null,
"nrn_InternationalMobilePhone": null,
"nrn_MailingAddress": null,
"nrn_MailingAddress2": null,
"nrn_MailingCIty": null,
"nrn_MailingProvinceState": null,
"nrn_MailingPostalCode": null,
"nrn_MailingCountry": null,
"nrn_MailingCountryCode": null,
"nrn_MaritalStatusEffectiveDate": null,
"nrn_PositionID": null,
"nrn_JobProfile": null,
"nrn_WorkerType": null,
"nrn_EffectiveDate": null,
"nrn_PayRateType": null,
"nrn_ScheduledWeeklyHours": null,
"nrn_PositionTimeType": null,
"nrn_JobExempt": null,
"nrn_FirstDateOfWork": null,
"nrn_IsAManager": false,
"nrn_ManagementLevel": null,
"nrn_Terminated": false,
"nrn_Retired": false,
"nrn_RetriementDate": null,
"nrn_EmergencyContact": null,
"nrn_WorkPhone": null,
"nrn_InternationalPhone": null,
"nrn_Address": null,
"nrn_City": null,
"nrn_State": null,
"nrn_PostalCode": null,
"nrn_HomePhone": null,
"nrn_Relationship": null,
"nrn_SecondEmergencyContact": null,
"nrn_ICE_WorkPhone": null,
"nrn_ICE_InternationalPhone": null,
"nrn_ICE_Address": null,
"nrn_ICE_City": null,
"nrn_ICE_State": null,
"nrn_ICE_PostalCode": null,
"nrn_ICE_HomePhone": null,
"nrn_ICE_Relationship": null,
"nrn_ICE2_WorkPhone": null,
"nrn_ICE2_InternationalPhone": null,
"nrn_ICE2_Address": null,
"nrn_ICE2_City": null,
"nrn_ICE2_State": null,
"nrn_ICE2_PostalCode": null,
"nrn_ICE2_HomePhone": null,
"nrn_ICE2_Relationship": null,
"CostCenterLink_RecID_Category": null,
"CostCenterLink_RecID_RecID": null,
"CostCenterLink_RecID": null,
"nrn_DailyHours": null,
"nrn_OperationalPercent": 0.00,
"nrn_AvailableHours": null,
"nrn_RemainingCapacity": null,
"nrn_NumberOfDaysRequested": null,
"nrn_TotalAllocatedHours": null,
"nrn_TaskStartDate": null,
"nrn_TaskEndDate": null,
"nrn_TaskStartDateCTime": 1712565416,
"nrn_TaskEndDateCTime": 1712565416,
"nrn_OperationalHours": null,
"extensionAttributes": null,
"extensionAttribute1": null,
"extensionAttribute2": null,
"extensionAttribute3": null,
"extensionAttribute4": null,
"extensionAttribute5": null,
"extensionAttribute6": null,
"extensionAttribute7": null,
"extensionAttribute8": null,
"extensionAttribute9": null,
"extensionAttribute10": null,
"extensionAttribute11": null,
"extensionAttribute12": null,
"extensionAttribute13": null,
"extensionAttribute14": null,
"extensionAttribute15": null,
"DexClass": null,
"DexScore": 0,
"DexScoreDate": null,
"nrn_AutoCreateTimesheet": false
}
Obtenir des champs pour la cartographie
API Endpoint: /api/odata/incidents/$metadata
Method: GET
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.0.0-cto-ivanti-v1.1.0 |
| Accept | application/json |
| Content-Type | application/json |
| Authorization | <Auth token> => Basic Auth |
| rest_api_key=<API Key> => API Key Auth |
Sample API Response
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:DataServices>
<Schema Namespace="MetaData" xmlns="http://docs.oasis-open.org/odata/ns/edm">
<EntityType Name="incident">
<Key>
<PropertyRef Name="RecId" />
</Key>
<Property Name="ActualCategory_Valid" Type="Edm.String" MaxLength="32" Unicode="false" />
<Property Name="ActualCategory" Type="Edm.String" MaxLength="60" />
<Property Name="CreatedDateTime" Type="Edm.DateTimeOffset" />
<Property Name="Email" Type="Edm.String" MaxLength="255" />
Type="Collection(MetaData.ivnt_chat)">
<OnDelete Action="Cascade" />
</NavigationProperty>
<NavigationProperty Name="IncidentAssocIncidentNeuronIntegration" Type="Collection(MetaData.incident)">
<OnDelete Action="Cascade" />
</NavigationProperty>
<NavigationProperty Name="ivnt_SecurityIncidentAssocIncidentNeuronsIntegration" Type="Collection(MetaData.ivnt_securityincident)">
<OnDelete Action="Cascade" />
</NavigationProperty>
<NavigationProperty Name="MicrosoftTeamsUserDetailsAssocIncident" Type="Collection(MetaData.ivnt_microsoftteamsuserdetails)">
<OnDelete Action="Cascade" />
</NavigationProperty>
<NavigationProperty Name="ivnt_GRCRiskAssocIncident" Type="Collection(MetaData.ivnt_grcrisk)">
<OnDelete Action="Cascade" />
</NavigationProperty>
<NavigationProperty Name="ivnt_GRCAuditAssocIncident" Type="Collection(MetaData.ivnt_grcaudit)">
<OnDelete Action="Cascade" />
</NavigationProperty>
</EntityType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Créer des incidents sur Ivanti
API Endpoint: /api/odata/businessobject/incidents
Method: POST
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.0.0-cto-ivanti-v1.1.0 |
| Accept | application/json |
| Content-Type | application/json |
| Authorization | <Auth token> => Basic Auth |
| rest_api_key=<API Key> => API Key Auth |
Parameters
| Clé | Value |
|---|---|
| ProfileLink | <Employee Record ID><ID du dossier de l’employé > |
| Symptom | Description de l'incident |
| Sujet | Résumé de l'incident |
| Statut | Logged |
Sample API Response
{
"@odata.context": "/api/odata/$metadata#incidents/$entity",
"ActualCategory_Valid": null,
"ActualCategory": null,
"Category_Valid": null,
"Category": null,
"CauseCode_Valid": null,
"CauseCode": null,
"ClosedBy": null,
"ClosedDateTime": null,
"ClosedDuration": null,
"CreatedBy": "test@gmail.com",
"CreatedDateTime": "2024-04-09T06:21:22Z",
"Email": "gjenkins@netskope.com",
"FirstCallResolution": false,
"Impact_Valid": null,
"Impact": null,
"IncidentNumber": 78986,
"IsNotification": true,
"IsVIP": false,
"IsWorkAround": false,
"LastModBy": "InternalServices",
"LastModDateTime": "2024-04-09T06:21:25Z",
"Phone": null,
"Priority_Valid": "29CD5D78E16F4D82916C3E933A600096",
"Priority": "3",
"ProfileFullName": "Gary Jenkins",
"ProfileLink_Category": "Employee",
"ProfileLink_RecID": "F7177FFB09B44D159B1ADE379A5D1BC7",
"ProfileLink": "F7177FFB09B44D159B1ADE379A5D1BC7",
"RecId": "C9DF0BC0489447FEAC558BA55AEF17B9",
"Resolution": null,
"Service_Valid": "A912E98E55844765934A787FF3586F34",
"Service": "Service Desk",
"SLA": "",
"SLALink_Category": null,
"SLALink_RecID": null,
"SLALink": null,
"Source_Valid": "EF789CE160E742F99623DBB4D29C045C",
"Source": "Phone",
"Status_Valid": "AB3D0090B6D8471FB0D2720D301A22AF",
"Status": "Logged",
"Subject": "Create Incident test",
"Symptom": "I would like to create an incident",
"Urgency_Valid": null,
"Urgency": null,
"LoginId": "gjenkins@netskope.com",
"Owner_Valid": null,
"Owner": null,
"OwnerTeam_Valid": "F2E66A400FF24786878B4ECC2B181220",
"OwnerTeam": "Security",
"OwnerType": "Employee",
"IsNewRecord": false,
"AlternateContactLink_Category": null,
"AlternateContactLink_RecID": null,
"AlternateContactLink": null,
"ResolvedDateTime": null,
"ResolvedBy": null,
"HoursOfOperation_Valid": "FF57246B2E0047D193C1AEC1011D746B",
"HoursOfOperation": "Weekly HOP",
"OwnerEmail": null,
"OwnerTeamEmail": "Security@demokit.org",
"OwnershipAssignmentEmail": "Security@demokit.org",
"CustomerLocation_Valid": null,
"CustomerLocation": null,
"IsReportedByAlternateContact": false,
"ResolutionEscLink_Category": null,
"ResolutionEscLink_RecID": null,
"ResolutionEscLink": null,
"ResponseEscLink_Category": null,
"ResponseEscLink_RecID": null,
"ResponseEscLink": null,
"WaitingEscLink_Category": "Frs_data_escalation_watch",
"WaitingEscLink_RecID": "074369560CF74DBAA119C72896C43D8D",
"WaitingEscLink": "074369560CF74DBAA119C72896C43D8D",
"ClosingEscLink_Category": null,
"ClosingEscLink_RecID": null,
"ClosingEscLink": null,
"AlternateContactEmail": null,
"OrganizationUnitID": "Default",
"ReportingOrgUnitID_Valid": "978ABB09369944C1991468FC458F488E",
"ReportingOrgUnitID": "Default",
"TypeOfIncident": "Failure",
"AlternateContactPhone": null,
"TeamManagerEmail": "DemoFM.user@ivanticlouddev.com",
"ProblemLink_Category": null,
"ProblemLink_RecID": null,
"ProblemLink": null,
"CustomerDepartment": null,
"ActualService_Valid": "A912E98E55844765934A787FF3586F34",
"ActualService": "Service Desk",
"CostPerMinute_Currency": "USD",
"CostPerMinute_CurrencyValid": null,
"CostPerMinute": "0.8000",
"IsInFinalState": false,
"IsReclassifiedForResolution": false,
"KnowledgeLink_Category": null,
"KnowledgeLink_RecID": null,
"KnowledgeLink": null,
"PreviousState": null,
"ResolvedByIncidentNumber": null,
"TotalTimeSpent": null,
"RespondedBy": null,
"RespondedDateTime": null,
"OrgUnitLink_Category": "OrganizationalUnit",
"OrgUnitLink_RecID": "978ABB09369944C1991468FC458F488E",
"OrgUnitLink": "978ABB09369944C1991468FC458F488E",
"OwningOrgUnitId_Valid": "978ABB09369944C1991468FC458F488E",
"OwningOrgUnitId": "Default",
"ProgressBarPosition": "1",
"ResolvedByType": null,
"ReportedBy": null,
"NewNotes": null,
"CreatedByType": "Web Client",
"SLADisplayText": "",
"ServiceReqLink_Category": null,
"ServiceReqLink_RecID": null,
"ServiceReqLink": null,
"ReadOnly": false,
"Cost_Currency": "USD",
"Cost_CurrencyValid": null,
"Cost": "0.0000",
"IncidentDetailWorkflowTag": null,
"IncidentDetailSummary": null,
"IsApprovalNeeded": false,
"Approver_Valid": null,
"Approver": null,
"IsDSMTaskExisted": false,
"ApprovalStatus": null,
"SocialTextHeader": "Incident 78986: Create Incident test",
"Subcategory_Valid": null,
"Subcategory": null,
"helpdesk_Priority_Valid": null,
"helpdesk_Priority": null,
"ViewType": null,
"IncidentNetworkUserName": "gjenkins@netskope.com",
"SendSurveyNotification": true,
"EntityLink_Category": "OrganizationalUnit",
"EntityLink_RecID": "978ABB09369944C1991468FC458F488E",
"EntityLink": "978ABB09369944C1991468FC458F488E",
"EventCIRecId": null,
"IsMasterIncident": false,
"IsResolvedByMaster": false,
"MasterIncidentLink_Category": null,
"MasterIncidentLink_RecID": null,
"MasterIncidentLink": null,
"ServiceOwnerEmail": "admin@saasitdemo.com",
"IsRelatedIncidentUpdate": false,
"IsRelatedIncidentResolutionUpdate": false,
"IsUnRead": false,
"HRCaseLink_Category": null,
"RecomCategory": null,
"RecomSubCategory": null,
"IsRunTicketClassification": true,
"GRCRiskLink_Category": null,
"GRCRiskLink_RecID": null,
"GRCRiskLink": null,
"TestField": null,
}
Mise à jour des incidents
API Endpoint: /api/odata/businessobject/incidents(<ID d'enregistrement d'incident')
Method: PATCH
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.0.0-cto-ivanti-v1.1.0 |
| Accept | application/json |
| Content-Type | application/json |
| Authorization | <Auth token> => Basic Auth |
| rest_api_key=<API Key> => API Key Auth |
Parameters
| Clé | Value |
|---|---|
| NewNotes | J'ai reçu une New alerte avec l'ID d'alerte : <ID d'alerte> <Alert ID> et le nom d'alerte : <Alert Name> <Nom d'alerte> dans .Cloud Exchange |
Sample API Response
{
"@odata.context": "/api/odata/$metadata#incidents/$entity",
"ActualCategory_Valid": "14348C1FFA044D8AB1E93005B4A0A287",
"ActualCategory": "Missing Item",
"Category_Valid": "14348C1FFA044D8AB1E93005B4A0A287",
"Category": "Missing Item",
"CauseCode_Valid": "E2489F3F7DA34B898CCD9569CA5541F2",
"CauseCode": "Other",
"ClosedBy": "JClerk",
"ClosedDateTime": "2019-10-16T07:09:48Z",
"ClosedDuration": 37843200,
"CreatedBy": "JClerk",
"CreatedDateTime": "2019-10-10T06:42:48Z",
"Email": "KDavidson@saasitdemo.com",
"FirstCallResolution": false,
"Impact_Valid": "1AFFC174C7EA4AB79CCA6B15EB67006D",
"Impact": "Medium",
"IncidentNumber": 10244,
"IsNotification": true,
"IsVIP": false,
"IsWorkAround": false,
"LastModBy": "test@gmail.com",
"LastModDateTime": "2024-04-09T06:31:02Z",
"Phone": "+61.2.8080.3300\r\n",
"Priority_Valid": "29CD5D78E16F4D82916C3E933A600096",
"Priority": "3",
"ProfileFullName": "Karen R Davidson",
"ProfileLink_Category": "Employee",
"ProfileLink_RecID": "E07CFB09AB324E0E8D49993D3F0C3C75",
"ProfileLink": "E07CFB09AB324E0E8D49993D3F0C3C75",
"RecId": "003B58C0B4554E4BAA30DFD88876582A",
"Resolution": "Resolved with user",
"Service_Valid": "1D2C6534C7F247B3A81DF7C205F48DCA",
"Service": "Facilities Management",
"SLA": "",
"SLALink_Category": null,
"SLALink_RecID": null,
"SLALink": null,
"Source_Valid": "FF0467C231124B2FA2DB2156632C8A92",
"Source": "Email",
"Status_Valid": "2905321A3B12477A82E94E289F47786B",
"Status": "Closed",
"Subject": "Remote control for projector in Boardroom is are missing ",
"Symptom": "This is an issue as it is roof mounted and cannot be switched on/off without the remote",
"Urgency_Valid": "44021B6CC6E44E598868C4B3306053AE",
"Urgency": "Medium",
"LoginId": "KDavidson",
"Owner_Valid": "5918944FE08C4F088C5E02E27DB7C6E3",
"Owner": "Jacob.Clerk",
"OwnerTeam_Valid": "2E4BABD54FB9420D94F836F0D9B80C47",
"OwnerTeam": "Service Desk",
"OwnerType": "Profile.Employee",
"IsNewRecord": false,
"AlternateContactLink_Category": null,
"AlternateContactLink_RecID": null,
"AlternateContactLink": null,
"ResolvedDateTime": "2019-10-13T06:42:48Z",
"ResolvedBy": "JClerk",
"HoursOfOperation_Valid": null,
"HoursOfOperation": "Weekly HOP",
"OwnerEmail": "jacob.Clerk@saasitdemo.com",
"OwnerTeamEmail": "change@example.com",
"OwnershipAssignmentEmail": "change@example.com",
"CustomerLocation_Valid": null,
"CustomerLocation": "Western Europe",
"IsReportedByAlternateContact": false,
"AlternateContactEmail": null,
"OrganizationUnitID": null,
"ReportingOrgUnitID_Valid": null,
"ReportingOrgUnitID": null,
"TypeOfIncident": "Failure",
"AlternateContactPhone": null,
"TeamManagerEmail": "change@example.com",
"ProblemLink_Category": null,
"ProblemLink_RecID": null,
"ProblemLink": null,
"CustomerDepartment": "Accounting",
"ActualService_Valid": "1D2C6534C7F247B3A81DF7C205F48DCA",
"ActualService": "Facilities Management",
"CostPerMinute_Currency": "USD",
"CostPerMinute_CurrencyValid": null,
"CostPerMinute": "0.4000",
"IsInFinalState": false,
"IsReclassifiedForResolution": false,
"KnowledgeLink_Category": null,
"KnowledgeLink_RecID": null,
"KnowledgeLink": null,
"PreviousState": null,
"ResolvedByIncidentNumber": null,
"TotalTimeSpent": 170.00,
"RespondedBy": null,
"RespondedDateTime": null,
"OrgUnitLink_Category": "OrganizationalUnit",
"OrgUnitLink_RecID": null,
"OrgUnitLink": null,
"OwningOrgUnitId_Valid": "FA9C9DD75EF9455CBC892F65691A1E7F",
"OwningOrgUnitId": "Corporate IT Operations",
"ProgressBarPosition": "5",
"ResolvedByType": "Agent",
"ReportedBy": null,
"NewNotes": null,
"CreatedByType": "Web Client",
"SLADisplayText": "",
"AddChatconversationtoActivityHistory": false,
"ivnt_TeamsUserDetailsLink_Category": null,
"ivnt_TeamsUserDetailsLink_RecID": null,
"ivnt_TeamsUserDetailsLink": null,
"VirimaAssetID": null,
"RecommendedCategory": null,
"RecommendedService": null,
"RecommendedSubCategory": null,
"Accuracy": null,
"IsRecommended": false,
"RecomService": null,
"RecomCategory": null,
"RecomSubCategory": null,
"IsRunTicketClassification": false,
"GRCRiskLink_Category": null,
"GRCRiskLink_RecID": null,
"GRCRiskLink": null,
"TestField": null,
"testvrunda": ""
}
États de synchronisation
API Endpoint: /api/odata/businessobject/incidents
Method: ALLEZ
Headers
| Clé | Value |
|---|---|
| User-Agent | netskope-ce-6.0.0-cto-ivanti-v1.1.0 |
| Accept | application/json |
| Content-Type | application/json |
| Authorization | <Auth token> => Basic Auth |
| rest_api_key=<API Key> => API Key Auth |
Parameters
| Clé | Value |
|---|---|
| $filtre | IncidentNumber eq 76947 |
Sample API Response
{
"@odata.context": "/api/odata/$metadata#incidents",
"@odata.count": 1,
"value": [
{
"ActualCategory_Valid": "E9EC7ADA85A84F82A30474C6A5425046",
"ActualCategory": "Capacity",
"Category_Valid": "E9EC7ADA85A84F82A30474C6A5425046",
"Category": "Capacity",
"CauseCode_Valid": "D8F223FA930E480883ECA4270B471631",
"CauseCode": "Configuration",
"ClosedBy": null,
"ClosedDateTime": null,
"ClosedDuration": null,
"CreatedBy": "gjenkins@netskope.com",
"CreatedDateTime": "2024-04-05T07:06:51Z",
"Email": "gjenkins@netskope.com",
"FirstCallResolution": false,
"Impact_Valid": null,
"Impact": null,
"IncidentNumber": 76947,
"IsNotification": true,
"IsVIP": false,
"IsWorkAround": false,
"LastModBy": "gjenkins@netskope.com",
"LastModDateTime": "2024-04-05T08:29:52Z",
"Phone": null,
"Priority_Valid": "29CD5D78E16F4D82916C3E933A600096",
"Priority": "3",
"ProfileFullName": "Gary Jenkins",
"ProfileLink_Category": "Employee",
"ProfileLink_RecID": "F7177FFB09B44D159B1ADE379A5D1BC7",
"ProfileLink": "F7177FFB09B44D159B1ADE379A5D1BC7",
"RecId": "1B261B1112714F16A0AC32ADD656E380",
"Resolution": "None",
"Service_Valid": "A912E98E55844765934A787FF3586F34",
"Service": "Service Desk",
"SLA": "",
"SLALink_Category": null,
"SLALink_RecID": null,
"SLALink": null,
"Source_Valid": "EF789CE160E742F99623DBB4D29C045C",
"Source": "Phone",
"Status_Valid": "D562C1C0DF4742CB8D60276059C3B828",
"Status": "Resolved",
"Subject": "Netskope CE alert: CE Log",
"Symptom": "Alert ID: 660f9f3cc7f5d74ff884d87b
App: Cloud Exchange
Alert Name: CE Log
Alert Type: Log
App Category: CE
User: ",
"Urgency_Valid": null,
"Urgency": null,
"LoginId": "gjenkins@netskope.com",
"Owner_Valid": "FB884D18F7B746A0992880F2DFFE749C",
"Owner": "Admin",
"OwnerTeam_Valid": "2E4BABD54FB9420D94F836F0D9B80C47",
"OwnerTeam": "Service Desk",
"OwnerType": "Employee",
"IsNewRecord": false,
"AlternateContactLink_Category": null,
"AlternateContactLink_RecID": null,
"AlternateContactLink": null,
"ResolvedDateTime": "2024-04-05T08:29:07Z",
"ResolvedBy": "gjenkins@netskope.com",
"HoursOfOperation_Valid": "FF57246B2E0047D193C1AEC1011D746B",
"HoursOfOperation": "Weekly HOP",
"OwnerEmail": "admin@saasitdemo.com",
"OwnerTeamEmail": "change@example.com",
"OwnershipAssignmentEmail": "change@example.com",
"CustomerLocation_Valid": null,
"CustomerLocation": null,
"IsReportedByAlternateContact": false,
"ResolutionEscLink_Category": "Frs_data_escalation_watch",
"ResolutionEscLink_RecID": "AE123197807D419CA87020B37249A1B7",
"ResolutionEscLink": "AE123197807D419CA87020B37249A1B7",
"ResponseEscLink_Category": "Frs_data_escalation_watch",
"ResponseEscLink_RecID": "78B7171E0F564057BAED0C074E4996BD",
"ResponseEscLink": "78B7171E0F564057BAED0C074E4996BD",
"WaitingEscLink_Category": "Frs_data_escalation_watch",
"WaitingEscLink_RecID": "EDFE3DABC0324A92845CAA0CD59E7060",
"WaitingEscLink": "EDFE3DABC0324A92845CAA0CD59E7060",
"ClosingEscLink_Category": "Frs_data_escalation_watch",
"ClosingEscLink_RecID": "A735155654E3423A844284B07C362FED",
"ClosingEscLink": "A735155654E3423A844284B07C362FED",
"AlternateContactEmail": null,
"OrganizationUnitID": "Default",
"ReportingOrgUnitID_Valid": "978ABB09369944C1991468FC458F488E",
"ReportingOrgUnitID": "Default",
"TypeOfIncident": "Failure",
"AlternateContactPhone": null,
"TeamManagerEmail": "change@example.com",
"ProblemLink_Category": null,
"ProblemLink_RecID": null,
"ProblemLink": null,
"CustomerDepartment": null,
"ActualService_Valid": "A912E98E55844765934A787FF3586F34",
"ActualService": "Service Desk",
"CostPerMinute_Currency": "USD",
"CostPerMinute_CurrencyValid": null,
"CostPerMinute": "0.4000",
"IsInFinalState": false,
"IsReclassifiedForResolution": false,
"KnowledgeLink_Category": null,
"KnowledgeLink_RecID": null,
"KnowledgeLink": null,
"PreviousState": null,
"ResolvedByIncidentNumber": null,
"TotalTimeSpent": 0.00,
"RespondedBy": "gjenkins@netskope.com",
"RespondedDateTime": "2024-04-05T07:09:45Z",
"OrgUnitLink_Category": "OrganizationalUnit",
"OrgUnitLink_RecID": "978ABB09369944C1991468FC458F488E",
"OrgUnitLink": "978ABB09369944C1991468FC458F488E",
"OwningOrgUnitId_Valid": "4A05123D660F408997A4FEE714DAD111",
"OwningOrgUnitId": "GMI",
"ProgressBarPosition": "4",
"ResolvedByType": "Agent",
"ReportedBy": null,
"NewNotes": null,
"CreatedByType": "Web Client",
"SLADisplayText": "",
"ServiceReqLink_Category": null,
"ServiceReqLink_RecID": null,
"ServiceReqLink": null,
"ReadOnly": false,
"Cost_Currency": "USD",
"Cost_CurrencyValid": null,
"Cost": "0.0000",
"IncidentDetailWorkflowTag": null,
"IncidentDetailSummary": null,
"IsApprovalNeeded": false,
"Approver_Valid": null,
"Approver": null,
"IsDSMTaskExisted": false,
"ApprovalStatus": null,
"SocialTextHeader": "Incident 76947: Netskope CE alert: CE Log",
"Subcategory_Valid": null,
"Subcategory": null,
"helpdesk_Priority_Valid": null,
"helpdesk_Priority": null,
"ViewType": null,
"IncidentNetworkUserName": "gjenkins@netskope.com",
"SendSurveyNotification": true,
"EntityLink_Category": "OrganizationalUnit",
"EntityLink_RecID": "978ABB09369944C1991468FC458F488E",
"EntityLink": "978ABB09369944C1991468FC458F488E",
"EventCIRecId": null,
"IsMasterIncident": false,
"IsResolvedByMaster": false,
"MasterIncidentLink_Category": null,
"MasterIncidentLink_RecID": null,
"MasterIncidentLink": null,
"ServiceOwnerEmail": "admin@saasitdemo.com",
"IsRelatedIncidentUpdate": false,
"ivnt_UpdateRFI": "Chat Incident(s)",
"AddChatconversationtoActivityHistory": false,
"ivnt_TeamsUserDetailsLink_Category": null,
"ivnt_TeamsUserDetailsLink_RecID": null,
"ivnt_TeamsUserDetailsLink": null,
"VirimaAssetID": null,
"RecommendedCategory": null,
"RecommendedService": null,
"RecommendedSubCategory": null,
"Accuracy": null,
"GRCRiskLink_RecID": null,
"GRCRiskLink": null,
"TestField": null,
}
]
}
Matrice de performance
Ces relevés sont collectés sur une grande pile CE avec les spécifications mentionnées ci-dessous en exécutant le plugin pendant quelques heures afin de créer un ticket/incident.
| Description | Specifications |
|---|---|
| Détails de la pile | Taille : Grande RAM : 32 GB CPU : 16 cœurs |
| Ticket/Incidents créés sur Ivanti | ~110 per minute |
Agent utilisateur
netskope-ce-6.0.0-cto-ivanti-v1.1.0
Workflow
- Créer un rôle d'utilisateur sur Ivanti
- Obtenez une clé API.
- Récupérez l'identifiant d'enregistrement d'un salarié (Rec ID).
- Créez un champ personnalisé.
- Configurez le plugin Ivanti.
- Configurez les règles de gestion de Ticket Orchestrator pour le plugin Ivanti.
- Configurez les files d'attente de Ticket Orchestrator pour le plugin Ivanti.
- Validate the Ivanti plugin.
Créer un rôle d'utilisateur sur Ivanti
- Enter a Role and Display Name under Role Details.
Note
Le nom inscrit dans l'onglet Rôle sera utilisé comme nom de rôle interne dans la configuration du plugin.

- Allez à Top Level Tabs, cliquez sur Add new tab, et sélectionnez Object Workspace.
- Entrez un nom comme incident, sélectionnez Incident pour Objet, sélectionnez IncidentLayout.ServiceDesk dans Mise en page.

- Cliquez sur Add this Tab et passez à l'onglet suivant, Autorisations de l'objet. Fournir les autorisations requises.
- Sauvegarder le rôle.
Note
- L'autorisation mentionnée ici concerne le mappage par défaut ; l'autorisation pour les objets commerciaux peut varier si les champs ont été modifiés.
- Vous pouvez utiliser le rôle créé pour créer une clé API ainsi qu'un employé.
Obtenir une clé API
- Cliquez sur Add API Keys et indiquez la description de la clé API. Select l'utilisateur pour lequel la clé doit être créée (sélectionné dans le rôle d'utilisateur créé précédemment), puis cliquez sur Save. Revenez à l'onglet précédent, et la clé API sera créée pour être utilisée dans la configuration du plugin.
Récupérer l'identifiant de l'enregistrement du salarié (Rec ID)
- Filtrez le nom de l'employé sur la base de son nom d'affichage et d'un filtre où l'ID de l'enregistrement n'est pas vide, comme indiqué ci-dessous. Vous verrez la colonne RecID. Copiez le RecID de votre utilisateur pour l'utiliser dans la configuration du plugin.

Créer un champ personnalisé
- Saisissez un nom de champ, un nom d'affichage et des attributs de champ.
- Cliquez sur Add This Field puis sur Save. Le champ sera ajouté.

Note
Le champ personnalisé ajouté sur Ivanti prend quelques heures pour se refléter dans Cloud Exchange. Une fois que le champ est reflété, il peut être vu dans les champs cibles de la configuration de la file d'attente sur Cloud Exchange.
Configurer le plugin Ivanti
- Dans Cloud Exchange, allez sur Settings > Plugin Store. Recherchez et sélectionnez le plugin Ivanti v1.1.0 (CTO).

- Saisissez un nom de configuration et modifiez l'intervalle de synchronisation en fonction de vos besoins.

- Cliquez sur Next et entrez les paramètres de configuration :
- Ivanti Tenant URL: URL de plateforme pour votre Ivanti.
- Authentication Method: Select le type de méthode d'authentification que vous souhaitez utiliser. Basic Authentication en utilisant le nom d'utilisateur et le mot de passe d'Ivanti, et API Key Authentication en utilisant l'API générée par Ivanti (comme indiqué dans les étapes ci-dessus).
- Employee Record ID(RecID): ID d’enregistrement employé de l’utilisateur.

- Si la méthode d'authentification est l'authentification de base, entrez ces paramètres :
- Username: Utilisateur de votre plateforme Ivanti.
- Password: Mot de passe associé à l'utilisateur pour Ivanti.
- Ivanti User Role: Nom du rôle de l'utilisateur interne attribué à l'utilisateur Ivanti.

- Si vous avez sélectionné la méthode d'authentification par clé API, saisissez la clé API :
- API Key: Clé API générée dans les étapes précédentes pour l'utilisateur.

- Cliquez sur Next et saisissez les Mappings pour le Status selon vos besoins.

Pour créer un champ d'état personnalisé, cliquez sur Add New.

Indiquez le nom du champ et cliquez sur Add Field.

Mettez en correspondance le statut créé avec le statut sur Ivanti

Configurer une règle de gestion Ticket Orchestrator pour le plugin Ivanti
Créez une règle de gestion basée sur les filtres dont vous avez besoin pour générer des incidents/tickets dans le plugin Ivanti.
- Dans Ticket Orchestrator, allez à Business Rules et cliquez sur Create New Rule.
- Saisissez un nom de règle et créez la condition de requête de filtre appropriée sur le ou les champs de la règle métier. Vous pouvez également saisir la requête manuellement en cliquant sur Filter Query.
- Cliquez sur Save.

- Pour tester la règle de gestion nouvellement créée, cliquez sur Sync et saisissez la période (en jours), puis cliquez sur Fetch. Vous verrez alors le nombre d'alertes éligibles pour la création d'un incident ou d'un ticket.
Configurer une file d'attente Ticket Orchestrator pour le plugin Ivanti
- Cliquez sur Add Queue Configuration, sélectionnez une règle de gestion, la configuration de votre plugin et la file d'attente dans les menus déroulants.


Note
Si vous souhaitez utiliser un autre champ visible sur Ivanti lors de la création de l'incident, il est nécessaire d'ajouter sa valeur dans le message personnalisé. Veillez à ne fournir que des valeurs supportées pour le champ, sinon la valeur ne sera pas reflétée lors de la création de l'incident.
Validate the Ivanti Plugin
Valider dans Cloud Exchange
Pour valider la création, la mise à jour et la synchronisation de l'incident depuis Cloud Exchange, allez sur Logging et filtrez les logs depuis le plugin CTO Ivanti.



Dans Ticket Orchestrator, allez dans Tickets et vérifiez les tickets créés ainsi que leur statut synchronisé.

Valider dans Ivanti
Pour valider la création, la mise à jour et la synchronisation des tickets sur Ivanti :
- Dans Ivanti, allez dans Incidents. Tous les incidents créés seront répertoriés sur la page Incidents.



Dépannage du plugin Ivanti
Impossible de générer des tickets/incidents sur Ivanti
Les incidents peuvent ne pas être créés sur une plateforme pour l'une de ces raisons :
- Aucune alerte n'est disponible dans Cloud Exchange, ou aucune alerte New n'est tirée.
- La règle de gestion n'a pas d'alertes filtrées.
- Les rôles suffisants ne sont pas ajoutés.
What to do: Identifiez la cause première mentionnée ci-dessus et sélectionnez la solution la mieux adaptée ci-dessous.
Aucune alerte n'est disponible sur Cloud Exchange ou aucune alerte New n'est tirée.
- Vérifiez si les alertes sont tirées de Ticket Orchestrator. Si aucune alerte n'est disponible, l'incident/le ticket ne sera pas créé.
- Si les alertes sont présentes et que la file d'attente a été ajoutée, il est possible que les alertes New ne soient pas disponibles pour créer les incidents, il faut donc synchroniser manuellement la file d'attente pour créer les tickets.

La règle de gestion n'a pas d'alertes filtrées
Vérifiez la règle de gestion et testez-la pour confirmer qu'elle filtre les alertes. If aucune alerte n'est disponible dans le filtrage, mettez à jour la règle de gestion.

Le rôle suffisant n'est pas ajouté
Vérifiez les rôles ajoutés pour le plugin.
Réception d'une erreur lors de la création de l'incident
Si les champs par défaut sont supprimés de la configuration de la file d'attente, et si un champ personnalisé ajouté par l'utilisateur n'est pas ajouté à la file d'attente, vous recevrez cette erreur lorsque vous tenterez de créer l'incident.



What to do:
Identifiez le champ obligatoire ajouté par le client et ajoutez le même champ avec sa valeur attendue dans la configuration de la file d'attente. Si aucun champ obligatoire personnalisé n'est ajouté, vérifiez la valeur par défaut ajoutée dans la file d'attente. Les champs Sujet, Symptôme et Statut doivent être ajoutés à la configuration de la file d'attente.
Note
Les incidents ne seront créés que si leur statut est enregistré.
Réception d'une erreur lors de la suppression d'un champ personnalisé sur Ivanti
Si vous avez ajouté un champ personnalisé pour créer les incidents et que vous le supprimez par la suite, vous risquez de rencontrer l'erreur 500 Internal Server lors de la création des incidents, ou l'erreur 204 No Content lors de la configuration du plugin.

What to do:
Si vous avez récemment supprimé un champ personnalisé, créez à nouveau le même champ ou contactez l'équipe Ivanti pour obtenir de l'aide.
Impossible de voir le champ personnalisé ajouté dans l'incident
Lorsqu’un champ client est créé sur Ivanti et utilisé dans la configuration de la file d’attente pour créer l’incident, le champ sera mappé depuis Cloud Exchange, mais il ne sera pas reflété sur Ivanti lors de la création de l’incident. Cela s’explique par le fait que les champs personnalisés ne sont pas affichés dans le schéma d’incident par défaut sur Ivanti.
What to do: Pour vérifier le champ personnalisé ajouté mappé dans l’incident, utilisez le champ personnalisé dans la configuration de la file d’attente et ajoutez un message ou un champ personnalisé. Une fois terminé, synchronisez la file d’attente pour créer l’incident. Copiez l’identifiant de référence généré à partir de la page Tickets dans Cloud Exchange, et utilisez le point de terminaison API ci-dessous pour trouver la réponse API à l’incident donné. Le champ personnalisé ainsi que sa valeur seront ajoutés lors de l’incident.
API Endpoint: https://<iavnti_base_url>/api/odata/businessobject/incidents(<incident Reference ID> <ID de référence d’incident>)
Limitation
La plateforme Ivanti a une limite de 100 000 appels API pour une durée de 24 heures. Ainsi, si le plugin atteint la limite, il effectuera 3 tentatives avec un temps par défaut de 60 secondes, puis soulèvera une exception à la fin.












