Skip to content

Product Configurator API and Software Development Kit (SDK)

This Github repository provides examples, code, and instructions on how to use the Product configurator API defined below.

API Entities

Configuration

{
"id": // record ID
"name": // name
"label": // label
"description":
"isTemplate":
"cards": []
"options": []
}

Card

{
"id": // record ID
"name": // name
"label": // label
"order": // 0 or 1-based index. For use in sorting cards.
"configurationId": // reference to parent configuration ID
"enabled": true || false
"productId": // Reference to a Product ID
"options": [] // Array of Option entities
}

Option

{
"id": // record ID
"name": // name
"label": // label
"cardId":
"productId":
"groupName":
"value":
"isDefault": // boolean true/false
"enabled": // boolean true/false
"selected": // boolean true/false
"order": // integer for sorting
"quantity": // double
"listPrice": // double
"unitPrice": // double
"discount": // double
"totalAmount": // double
}

API

All API calls use the same request and response payloads defined below. In some cases, the API response may alter the configuration entity with custom prices, options, etc…

API Request

{
"id": // configuration record ID
"orgId":
"roomId": // null in website context
"itemId":
"memberId":
"crmId": // Lead, Contact, User ID
"event": // CONFIGURATION_START, CONFIGURATION_UPDATE, CONFIGURATION_SUBMIT
// Request for Quote (RFQ) to Lead conversion fields.
"firstName":
"lastName":
"email":
"phone":
"organization":
"postalCode":
"comments":
"configuration": {} // See configuration entity (above)
}

API Response

{
"success": // boolean
"message": // contains error message details if success === false
"id": // configuration record ID
"orgId":
"roomId": // null in website context
"itemId":
"memberId":
"crmId": // Lead, Contact, User ID
"event": // CONFIGURATION_START, CONFIGURATION_UPDATE, CONFIGURATION_SUBMIT
// Request for Quote (RFQ) to Lead conversion fields.
"firstName":
"lastName":
"email":
"phone":
"organization":
"postalCode":
"comments":
"configuration": {} // See configuration entity (above)
}

GET Product Configuration

Endpoint: https://api.i-dialogue.com/v1/orgs/{orgid}/configurations/{id} Method: GET Request: None. RESTful path only. Response: (see payload response above)

POST Product Configuration

Endpoint: https://api.i-dialogue.com/v1/orgs/{orgid}/configurations/{id} Method: POST Request: (See API Request payload above) Response: (See API Response payload above)

Configurator Plugin

When hosting a product configurator in an iDialogue site, room, or portal… then drag and drop a configurator plugin onto the page canvas. Then select a previously uploaded configuration or upload a ZIP file in the format defined by the Github repo SDK.

This will appear if the image fails to load

Platform events

CONFIGURATION_START

Indicates that a user has initiated customizing a template, and that an instance configuration (clone) and Lead should be created.

A POST to the API configuration endpoint with a template ID as the {id} will return a new instance ID in the response.

Subsequent API calls should use the new instance ID when posting updates.

CONFIGURATION_UPDATE

Indicates a modification to an instance configuration. Templates cannot be modified. An error message will be returned if {id} is not an instance record.

CONFIGURATION_SUBMIT

Indicates the Lead or Contact is submitting a web form, has completed all session configurations, and is requesting follow-up.