Intelligent appointments API reference

Use the Intelligent appointments API set to search for relevant advisors and to schedule and manage meetings. The API is based on the Power Platform custom API.

Note

All the commands in this API use POST messages.

Availability and scheduling commands

Command Description
GetSchedulingProperties Retrieves all the information related to meeting types from the Dataverse environment.
GetAvailableMeetingTimeSlots Fetches the relevant advisor’s available time slots based on the requested location, subject, skills, and date range.
CreateMeeting Enables scheduling a meeting with the requested advisor resources.
GetMeeting Fetches a scheduled meeting for a contact.
CancelMeeting Cancels an existing meeting.

GetSchedulingProperties

Description: Retrieves all the information related to meeting types from the Dataverse environment.

Plugin name: GetSchedulingPropertiesPlugin.cs

HTTP request: POST {{url}}/api/data/v9.0/msfsi_GetSchedulingProperties

Request input parameters (in body): Empty

Response output parameters:

Parameter Name Description Type Notes
Locations An array of location objects. These are locations that reside in the MeetingType objects. Array of objects Location objects are filled when the meetings are on-location only.
Topics An array of topic objects. These are topics that reside in the MeetingType objects. Array of objects
MeetingTypes An array of MeetingTypes Array of objects
Location object
Id The Id of the location (OrganizationalUnit entity). String
Name The name of the location (branch entity). String
Address1 The first line in the address of the location (branch entity). String
Address2 The second line in the address of the location (branch entity). String
City The city of the location (branch entity). String
StateOrProvince The state or province of the location (branch entity). String
Country The country of the location (branch entity). String
PostalCode The postal code of the location (branch entity). String
Telephone The telephone number of the location (branch entity). String
Topic object
Id The Id of the topic. String
Name The topic name. String
Description A description of the topic. String
MeetingType object
Id The Id of the MeetingType. String
Name The name of the MeetingType. String
Description A description of the MeetingType. String
Duration The duration of the meeting described by the MeetingType. Int
Notes The notes for the meeting attendee to follow. String
Topics An array of Ids for the topics connected to this MeetingType. String[] A complete detailed list is available in the Topics array.
Locations An array of Ids for the locations connected to this MeetingType. String[] Location objects are filled when the meetings are on-location only. A complete detailed list can be found in the Locations array.
Channel The channel set for this MeetingType. Option Set
  • 104800000: Online only
  • 104800001: Online or On-location
  • 104800002: On-location only

Each option set is represented by an object holding the value and label.

DefaultMethod The default method set for this MeetingType. Option Set
  • 104800000: Online
  • 104800001: On-location

Each option set is represented by an object holding the value and label.

Note

Not all the parameters are returned:

  • Meetings that are on-location only and have no branches are not displayed.

  • Meetings without mandatory fields are not displayed.

  • Entities in an inactive state are not displayed.

  • The following parameters might not return values:

  • The Channel and DefaultMethod parameters are not returned if null.

    • If no locations are connected to the MeetingType, it does not have the Locations array. This is possible only if the channel has a value other than On-location.

    • The Topics parameter might not be shown if no topics are connected to the MeetingType (through the Connection entity).

    • The Id, Name, Description, and Duration parameters are always a part of each element in the response.

    • Topic and Location are arrays that hold entities. Id is the only mandatory parameter for the Topic and Location objects.

Response Example:

{
    "@odata.context": "https://orgc7816042.crm.dynamics.com/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.msfsi_GetSchedulingPropertiesResponse",
    "Locations": [
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "0781fd19-f1a8-ec11-983f-000d3a323337",
            "Name": "Woodgrove Oklahoma City branch",
            "Address1": "91011 East Blue Stone Drive",
            "Address2": "91011 East Blue Stone Drive",
            "City": "Oklahoma City",
            "Country": "USA",
            "PostalCode": "64555",
            "Telephone": "+1(917)145-4533"
        },
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "600ef125-f1a8-ec11-983f-000d3a323337",
            "Name": "Woodgrove Savannah branch",
            "Address1": "678 Van Hoose Drive",
            "Address2": "678 Van Hoose Drive",
            "City": "Savannah",
            "Country": "USA",
            "PostalCode": "48645",
            "Telephone": "+1(403)123-4567"
        }
    ],
    "Topics": [
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "5a007aa3-809f-ec11-b400-0022480b8113",
            "Name": "Everyday banking",
            "Description": "Account opening, credit cards, financial health check ups and general assistance subjects"
        },
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "eb4e85b5-819f-ec11-b400-0022480b8113",
            "Name": "Loans",
            "Description": "Mortgage, Loan consults, follow up and contracting meetings"
        }
    ],
    "MeetingTypes": [
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "5ce28b83-899f-ec11-b400-0022480b8113",
            "Name": "Apply for credit card",
            "Description": "Submitting an application for a credit card program",
            "Duration": 30,
            "Topics@odata.type": "#Collection(String)",
            "Topics": [
                "5a007aa3-809f-ec11-b400-0022480b8113"
            ],
            "Locations@odata.type": "#Collection(String)",
            "Locations": [
                "0781fd19-f1a8-ec11-983f-000d3a323337",
                "600ef125-f1a8-ec11-983f-000d3a323337"
            ],
            "Channel": {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "Value": 104800002,
                "Label": "Online or on location"
            },
            "DefaultMethod": {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "Value": 104800000,
                "Label": "Online"
            }
        },
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "1167906a-8d9f-ec11-b400-0022480b8113",
            "Name": "Mortgage Application phase 1",
            "Description": "Onboarding meeting to submit a loan application for a specific property",
            "Duration": 30,
            "Topics@odata.type": "#Collection(String)",
            "Topics": [
                "eb4e85b5-819f-ec11-b400-0022480b8113"
            ],
            "Locations@odata.type": "#Collection(String)",
            "Channel": {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "Value": 104800002,
                "Label": "Online only"
            },
            "DefaultMethod": {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "Value": 104800000,
                "Label": "Online"
            }
        }
    ]
}

GetAvailableMeetingTimeSlots

Description: Fetches the relevant advisor’s available time slots based on the requested location, subject, skills, and date range.

Plugin name: GetTimeSlotsPlugin.cs

HTTP request: POST {{url}}/api/data/v9.0/msfsi_GetAvailableMeetingTimeSlots

Request input parameters (in body):

Parameter Name Description Type Required Notes
MeetingType The Id of the MeetingType that the user wishes to search. String (msfsi_meetingtype Id) Yes The value of this parameter must be a valid GUID.
StartDateTime The start date and time to search for availability. DateTime Yes The time provided must be in UTC.
EndDateTime The end date and time to search for availability. DateTime Yes The time provided must be in UTC.
RequestedMeetingLocation The Id of the location (OrganizationalUnit) that the user wishes to search. String (msdyn_organizationalunit Id) No Mandatory when IsOnlineMeeting is set to false.

The value of this parameter must be a valid GUID.

IsOnlineMeeting Indicates whether the appointment is an online meeting or not. Boolean Yes
SkillFilter A string array containing all the Ids for skills to be included in the search for an availability request. String[] (characteristic ids) No Adding filters that are already set as default on the resource group template will result in an error.

The value of this parameter must be a valid GUID.

Paging The paging string. If none is provided, fetches the first page; otherwise, returns the corresponding page. String No

Request Example:

{
    "MeetingType": "5ce28b83-899f-ec11-b400-0022480b8113",
    "StartDateTime": "2022-08-21T11:00:00+03:00",
    "EndDateTime": "2022-08-23T12:00:00+03:00",
    "IsOnlineMeeting": false,
    "RequestedMeetingLocation": "cfc7f51f-f1a8-ec11-983f-000d3a323337",
    "SkillFilter": [
        "2953c0d2-d2d9-ec11-a7b6-000d3a3089fb"
    ],
    "Paging": ""
}   

Response output parameters:

Parameter Name Description Type Notes
Timeslots An array of Timeslots objects, representing the available time slots returned for the requested advisors, meeting type, and location. Array of Timeslots objects
NextPaging The paging string used for pagination. If no results are available, this value is null. String For more information, go to URS documentation.
Timeslots object
StartTime The start date and time specified in the search request. DateTime The time is returned in UTC.
EndTime The end date and time specified in the search request. DateTime The time is returned in UTC.
Advisors A list of objects representing the advisors. Each object holds an Id and advisor name. Array of objects These Ids are used when creating the meeting using CreateMeeting and fetching the resource information for display. Only one set of advisors is returned for each time slot. If the requirement for a meeting type is for a single advisor in the meeting, each time slot will hold only one value. If more than one advisor is available, the scheduling engine prioritizes the advisors based on context and capacity.

Response example: Some of the returned time slots were removed, for space purposes.

Note

NextPaging is added when more than 20 time slots are returned.

{
    "@odata.context": "https://demoenvironment.crm.dynamics.com/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.msfsi_GetAvailableMeetingTimeSlotsResponse",
    "NextPaging": "{\"nte\":\"1\",\"nti\":\"2022-08-21T17:30:00.0000000Z\",\"res\":{\"nfr\":20,\"nft\":20,\"rbd\":{\"2022-08-21T08:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T08:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T09:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T09:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T10:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T10:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T11:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T11:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T12:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T12:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T13:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T13:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T14:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T14:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T15:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T15:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T16:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T16:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T17:00:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null},\"2022-08-21T17:30:00.0000000Z\":{\"cpl\":1,\"nfr\":1,\"nft\":1,\"tic\":null,\"tid\":null}}}}",
"Timeslots": [
      {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "StartTime": "2022-08-21T08:15:00Z",
        "EndTime": "2022-08-21T08:45:00Z",
        "Advisors@odata.type": "#Collection(Microsoft.Dynamics.CRM.crmbaseentity)",
        "Advisors": [
          {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "876b4623-5d08-ed11-82e4-000d3a364a5d",
            "Name": "Temp Admin"
          }
        ]
      },
      {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "StartTime": "2022-08-21T08:45:00Z",
        "EndTime": "2022-08-21T09:15:00Z",
        "Advisors@odata.type": "#Collection(Microsoft.Dynamics.CRM.crmbaseentity)",
        "Advisors": [
          {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "876b4623-5d08-ed11-82e4-000d3a364a5d",
            "Name": "Temp Admin"
          }
        ]
      }
    ]
  }

CreateMeeting

Description: Enables scheduling a meeting with the requested advisor resources.

Plugin name: CreateMeetingPlugin.cs

HTTP request: POST {{url}}/api/data/v9.0/msfsi_CreateMeeting

Request input parameters (in body):

Parameter Name Description Type Required Notes
MeetingType The ID of the selected MeetingType. String (msfsi_meetingtype) Yes The value of this parameter must be a valid GUID.
StartDateTime The start date and time for the meeting. DateTime Yes Preparation and summary appointments are added to the advisor's calendar based on the meeting type and the administrator setup.
Contact The contact Id that represents the customer attending the meeting. String (contact Id) Yes The value of this parameter must be a valid GUID.
IsOnlineMeeting Indicates whether the appointment is an online meeting or not. Boolean Yes If this value is False, it is mandatory to provide a meeting location instead.
RequestedMeetingLocation The Id of the location (OrganizationalUnit) where the meeting is to be held. String (OrganizationalUnit(OU) Id) No In case of an online meeting, this field is not required. In case of an online meeting implementation where the online advisors are in a specific OrganizationalUnit(OU), a dedicated OU reference is required.
RequestedAdvisors An array of the required advisor Ids (bookable resource Ids). These Ids are taken from the Advisors array provided in the GetAvailableMeetingTimeSlots response. EntityCollection ((Resources) Yes For the booking to be successful, the resources must have system users associated with them. These users appear in the Required field of the appointment. Strings inside the array must be valid GUIDs.
CustomerAdditionalNotes Notes that the customers want to share about the upcoming meeting. String No This parameter appears in the customer communications and the appointment description in the CRM application.

Request Example:

{
    "MeetingType": "aaafeaad-8c9f-ec11-b400-0022480b8113",
    "StartDateTime": "2022-8-17T12:30:00",
    "Contact": "8788facf-828e-4333-8405-b825b0f29ea0",
    "IsOnlineMeeting": false,
    "RequestedMeetingLocation": "8bcdf8e8-eda8-ec11-983f-000d3a323337",
    "RequestedAdvisors": ["8240fdbc-e20d-ed11-82e5-000d3a593e34"],
    "CustomerAdditionalNotes": "Some test notes"
}

Response output parameters:

Parameter Name Description Type Notes
Id An Id representing the scheduled meeting. String Represents a GUID.
StartTime The start date and time of the meeting. DateTime The time is provided in UTC.
EndTime The end date and time of the meeting. DateTime The time is provided in UTC.
Duration The duration of the scheduled meeting in minutes. Int
IsOnline Indicates whether the appointment is an online meeting or not. Boolean
CustomerAdditionalNotes Notes that the customers want to share about the scheduled meeting. String
MeetingJoinUrl The link to join the scheduled meeting. String
State The state of the scheduled meeting. Option set (object)
  • 0: Open
  • 1: Completed
  • 2: Canceled
  • 3: Scheduled

Each option set is represented by an object holding the value and label.

Location An object of the meeting location for an on-location appointment. Object This parameter is non-empty only for the meetings that are on-location.
Advisors A list of objects representing the advisors in the scheduled meeting. Array of objects
MeetingType An object representing the MeetingType. Object
Location object
Id The Id of the location (OrganizationalUnit entity). String Represents a GUID.
Name The name of the location (branch entity). String
Address1 The first line in the address of the location (branch entity). String
Address2 The first line in the address of the location (branch entity). String
City The city of the location (branch entity). String
StateOrProvince The state or province of the location (branch entity). String
Country The country of the location (branch entity). String
PostalCode The postal code of the location (branch entity). String
Telephone The telephone number of the location (branch entity). String
Advisor object
Id The Id of the advisor (bookable resource entity). String Represents a GUID.
Name The name of the advisor. String
MeetingType object
Id The Id of the MeetingType. String
Name The name of the MeetingType. String
Notes The notes for the meeting attendee to follow. String
Description The description of the MeetingType. String

Response example:

{
    "@odata.context": "https://aa-isdaily.crm.dynamics.com/api/data/v9.0/$metadata#expando/$entity",
    "@odata.type": "#Microsoft.Dynamics.CRM.expando",
    "Id": "4d6d4b05-4e0f-ed11-82e5-00224822509a",
    "StartTime": "2022-08-17T12:30:00Z",
    "EndTime": "2022-08-17T13:15:00Z",
    "Duration": 45,
    "IsOnline": false,
    "CustomerAdditionalNotes": "Some test notes",
    "State": {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "Value": 3,
        "Label": "Scheduled"
    },
    "Location": {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "Id": "8bcdf8e8-eda8-ec11-983f-000d3a323337",
        "Name": "Woodgrove Anchorage branch",
        "Address1": "123 Eastview Lane",
        "City": "Anchorage"
    },
    "Advisors@odata.type": "#Collection(Microsoft.Dynamics.CRM.crmbaseentity)",
    "Advisors": [
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "f35a29b9-02b1-ec11-9840-000d3a9937ed",
            "Name": "IS admin"
        }
    ],
    "MeetingType": {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "Id": "aaafeaad-8c9f-ec11-b400-0022480b8113",
        "Name": "Setting Investment goals",
        "Notes": "If this is your first planning meeting, please bring:\n1. 401(k) and other investment plan statements\n2. Mortgage and other debt statements\n3. Pay stubs for you and/or your spouse\n4. Your most recent tax return\n5. Your monthly budget of income and expenses",
        "Description": "Creating wealth management goals"
    }
}

GetMeeting

Description: Fetches a scheduled meeting for a contact.

Plugin name: GetMeetingPlugin.cs

HTTP request: POST {{url}}/api/data/v9.0/msfsi_GetMeeting

Request input parameters (in body):

Parameter Name Description Type Required Notes
Meeting The Id of the meeting. String Yes The meeting Id is taken from the CreateMeeting response.

The value of this parameter must be a valid GUID.

Contact The Id of the customer for whom the meeting is scheduled. String Yes The value of this parameter must be a valid GUID.

Request example:

{
    "Meeting": "4d6d4b05-4e0f-ed11-82e5-00224822509a",
    "Contact": "8788facf-828e-4333-8405-b825b0f29ea0"
}

Response output parameters:

Parameter Name Description Type Notes
Id An Id representing the scheduled meeting. String Represents a GUID.
StartTime The start date and time of the meeting. DateTime The time is provided in UTC.
EndTime The end date and time of the meeting. DateTime The time is provided in UTC.
Duration The duration of the scheduled meeting in minutes. Int
IsOnline Indicates whether the appointment is an online meeting or not. Boolean
CustomerAdditionalNotes Notes that the customers want to share about the scheduled meeting. String
MeetingJoinUrl The link to join the scheduled meeting. String
State The state of the scheduled meeting. Option set (object)
  • 0: Open
  • 1: Completed
  • 2: Canceled
  • 3: Scheduled

Each option set is represented by an object holding the value and label.

Location An object of the meeting location for an on-location appointment. Object This parameter is non-empty only for the meetings that are on-location.
Advisors A list of objects representing the advisors in the scheduled meeting. Array of objects
MeetingType An object representing the MeetingType. Object
Location object
Id The Id of the location (OrganizationalUnit entity). String Represents a GUID.
Name The name of the location (branch entity). String
Address1 The first line in the address of the location (branch entity). String
Address2 The first line in the address of the location (branch entity). String
City The city of the location (branch entity). String
StateOrProvince The state or province of the location (branch entity). String
Country The country of the location (branch entity). String
PostalCode The postal code of the location (branch entity). String
Telephone The telephone number of the location (branch entity). String
Advisor object
Id The Id of the advisor (bookable resource entity). String Represents a GUID.
Name The name of the advisor. String
MeetingType object
Id The Id of the MeetingType. String
Name The name of the MeetingType. String
Notes The notes for the meeting attendee to follow. String
Description The description of the MeetingType. String

Response example:

{
    "@odata.context": "https://aa-isdaily.crm.dynamics.com/api/data/v9.0/$metadata#expando/$entity",
    "@odata.type": "#Microsoft.Dynamics.CRM.expando",
    "Id": "4d6d4b05-4e0f-ed11-82e5-00224822509a",
    "StartTime": "2022-08-17T12:30:00Z",
    "EndTime": "2022-08-17T13:15:00Z",
    "Duration": 45,
    "IsOnline": false,
    "CustomerAdditionalNotes": "Some test notes",
    "State": {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "Value": 3,
        "Label": "Scheduled"
    },
    "Location": {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "Id": "8bcdf8e8-eda8-ec11-983f-000d3a323337",
        "Name": "Woodgrove Anchorage branch",
        "Address1": "123 Eastview Lane",
        "City": "Anchorage"
    },
    "Advisors@odata.type": "#Collection(Microsoft.Dynamics.CRM.crmbaseentity)",
    "Advisors": [
        {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "Id": "f35a29b9-02b1-ec11-9840-000d3a9937ed",
            "Name": "IS admin"
        }
    ],
    "MeetingType": {
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "Id": "aaafeaad-8c9f-ec11-b400-0022480b8113",
        "Name": "Setting Investment goals",
        "Notes": "If this is your first planning meeting, please bring:\n1. 401(k) and other investment plan statements\n2. Mortgage and other debt statements\n3. Pay stubs for you and/or your spouse\n4. Your most recent tax return\n5. Your monthly budget of income and expenses",
        "Description": "Creating wealth management goals"
    }
}

CancelMeeting

Description: Cancels an existing meeting.

Plugin name: CancelMeetingPlugin.cs

HTTP request: POST {{url}}/api/data/v9.0/msfsi_CancelMeeting

Request input parameters (in body):

Parameter Name Description Type Required Notes
Meeting The Id of the meeting to be canceled. String (appointment Id) Yes The meeting Id is taken from the fetch request of existing appointments for the customer. Only future, active meetings can be canceled.

Preparation and summary appointments linked to the customer meeting are also canceled.

The value of this parameter must be a valid GUID.

Contact The Id of the customer for whom the meeting is scheduled. String (contact Id) Yes The value of this parameter must be a valid GUID.

Request example:

{
    "Meeting": "5d98de42-8c9f-ec11-b400-0022480b81c4",
    "Contact": "ce43d612-4d9d-ec11-b400-0022480b8d8e"
    "Appointment": {
        "activityid": "5d98de42-8c9f-ec11-b400-0022480b81c4"
    },
    "Contact": {
        "contactid": "ce43d612-4d9d-ec11-b400-0022480b8d8e"
    }
}

Response output parameters:

Parameter Name Description Type Notes
IsAppointmentCancelled Indicates whether the meeting is canceled or not. Boolean Only future, active meetings can be canceled.

Response example:

{
    "@odata.context": "https://#####.crm.dynamics.com/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.msfsi_CancelMeetingResponse",
    "IsMeetingCancelled": true
}

Fetch data commands

The set of APIs and apps delivered for Intelligent appointments should provide you with sufficient information. OData fetch commands can be used to retrieve information regarding the underlying entities used for the APIs. Fetching of entities data is done using standard FetchXML queries over Dataverse.
Learn more: Use FetchXML to construct a query.

The following is the recommended list of entities to fetch:

  • MeetingTopics: Retrieves a list of the available meeting topics. A topic is the entity on the basis of which you can group the meetings into different containers. This is an optional value.

  • MeetingTypeTopic: Represents a mapping to identify the link between meeting types and a topic. A certain meeting type can be made available under several topics. If meeting topics are used, make sure to group the meetings into their relevant topic containers.

  • MeetingTypes: Retrieves the list of the available meeting types.

  • MeetingType: Retrieves the details of a specific meeting type, such as:

    • Supported meeting methods (online, in-person, or both)

    • Meeting description

    • List of branches offering this meeting

    • Meeting duration

    • Customer instructions for the meeting when scheduling it.

  • Branches: Retrieves a list of branches supported in the Intelligent appointments solution. This list must be cross-referenced against the meeting type, to verify that only those branches that support the specific meeting service are made available for the customers to select.

  • Branch: Retrieves the details of a specific branch, such as the branch name, branch code, and address.

  • Appointments: Retrieves a list of appointments for the customer.

  • Appointment: Retrieves the details of a specific appointment by contact Id. The details include:

    • Appointment status

    • Link to the online meeting

    • Additional customer notes added to the meeting

    • Meeting location

    • Required advisors attending the meeting

    • Description

  • BookableResources: Retrieves a list of the available resources and their details, such as name and title.

See also