Seismic for Copilot for Sales (Verified Publisher) - new connector added (#3654)
* Seismic for Copilot for Sales Connector for certification * readme.md * readme updated * Readme Update * readme updated * Typo fix * link updated * updated readme * readme udpated * added more openAPI extensions * updated readme
This commit is contained in:
Родитель
d036bc2fb4
Коммит
948ec86889
|
@ -0,0 +1,41 @@
|
|||
# Seismic for Copilot for Sales Connector
|
||||
|
||||
**Seismic for Copilot for Sales Connector** enhances the existing capabilities in Copilot for Sales by bringing data from Seismic into the Copilot experience. It improves the sales team's workflow by seamlessly integrating relevant content from Seismic directly into their Copilot for Sales workflow, helping organizations streamline and optimize their sales process.
|
||||
|
||||
## Publisher: Seismic
|
||||
|
||||
## Prerequisites
|
||||
- You must have a **Premium** or **Business** user account in the Seismic tenant.
|
||||
- The **Seismic Sales Copilot** application must be installed and configured in the Seismic tenant. To install, see https://exchange.seismic.com/apps/seismic/microsoft-copilot-for-sales/
|
||||
- A **Copilot for Sales** license must be purchased from Microsoft, and the Copilot for Sales apps must be installed and set up in Outlook.
|
||||
|
||||
## Background
|
||||
Learn more: [Microsoft Copilot for Sales Introduction](https://learn.microsoft.com/en-us/Viva/sales/introduction)
|
||||
|
||||
**Microsoft Copilot for Sales** is a seller experience application that uses Microsoft 365 and Microsoft Teams to automatically capture data from any CRM system. This eliminates manual data entry and gives sellers more time to focus on selling.
|
||||
|
||||
Out of the box, Seismic for Copilot for Sales connects to customer relationship management (CRM) systems such as Salesforce Sales Cloud and Dynamics 365 Sales.
|
||||
|
||||
However, sales processes extend beyond CRM. Sales teams often rely on specialized applications for account planning, prospecting, revenue intelligence, quoting, eSignature, and more. Customers and makers of sales applications can now bring data and insights from any of their applications into the Copilot for Sales experience.
|
||||
|
||||
**Seismic for Copilot for Sales** integrates with Copilot for Sales to provide recommendations based on contextual information from the seller's workflow in Outlook.
|
||||
|
||||
## Supported Operations
|
||||
|
||||
Currently, Seismic for Copilot for Sales Connector extends the following capabilities of Copilot for Sales (more capabilities coming soon - [Learn more here](https://seismic.com/blog/seismic-and-microsoft-copilot-for-sales-integration/)):
|
||||
|
||||
### Opportunity Summary
|
||||
[Enrich CRM record summaries with insights](https://learn.microsoft.com/en-us/microsoft-sales-copilot/extend-record-summary)
|
||||
|
||||
### Record Details
|
||||
[Enrich CRM record details with insights](https://learn.microsoft.com/en-us/microsoft-sales-copilot/extend-record-details)
|
||||
|
||||
## Obtaining Credentials
|
||||
Seismic for Copilot for Sales Connector uses OAuth 2.0 for authentication.
|
||||
Use your Seismic tenant credentials to create connection.
|
||||
|
||||
## Known Issues and Limitations
|
||||
No known issues or limitations.
|
||||
|
||||
## Deployment Instructions
|
||||
Please follow the instructions in [Create a custom connector from an OpenAPI definition](https://learn.microsoft.com/en-us/connectors/custom-connectors/define-openapi-definition).
|
|
@ -0,0 +1,492 @@
|
|||
{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"title": "Seismic for Copilot for Sales",
|
||||
"description": "Seismic for Copilot for sales connector provides set of actions required to enhance the existing skills of Microsoft Copilot for Sales.",
|
||||
"x-ms-deployment-version": "1.0.0",
|
||||
"x-ms-api-annotation": {
|
||||
"status": "Production"
|
||||
},
|
||||
"x-ms-keywords": [
|
||||
"Seismic for Copilot for Sales"
|
||||
],
|
||||
"x-ms-openai-published-to-copilots": [
|
||||
{
|
||||
"AICopilot-enabled": true,
|
||||
"AICopilotName": "Seismic for Copilot for Sales"
|
||||
}
|
||||
],
|
||||
"version": "1.0",
|
||||
"contact": {
|
||||
"name": "Seismic",
|
||||
"email": "support@seismic.com",
|
||||
"url": "https://seismic.com"
|
||||
},
|
||||
"license": {
|
||||
"name": "seismic"
|
||||
}
|
||||
},
|
||||
"host": "sales-copilot-edge.seismic.com",
|
||||
"basePath": "/api/v1/connector",
|
||||
"schemes": ["https"],
|
||||
"consumes": [],
|
||||
"produces": ["application/json"],
|
||||
"paths": {
|
||||
"/diagnostics/testconnection": {
|
||||
"get": {
|
||||
"tags": ["Diagnostics"],
|
||||
"summary": "Test the connection",
|
||||
"description": "Test the connection.",
|
||||
"operationId": "TestConnection",
|
||||
"produces": ["application/json"],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "The operation was successful.",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/testConnectionResponse"
|
||||
},
|
||||
"x-ms-summary": "The operation was successful"
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
},
|
||||
"x-ms-summary": "Bad Request"
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
},
|
||||
"x-ms-summary": "Unauthorized"
|
||||
}
|
||||
},
|
||||
"x-ms-visibility": "internal",
|
||||
"x-ms-openai-data": {
|
||||
"openai-enabled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"/relatedRecords": {
|
||||
"get": {
|
||||
"tags": ["SalesCopilotExtensibility"],
|
||||
"summary": "Enrich CRM record details",
|
||||
"description": "This action gets records related to a CRM record. The action enhances the existing skills of Copilot for Sales",
|
||||
"operationId": "scp-get-related-records",
|
||||
"produces": ["application/json"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "query",
|
||||
"name": "recordType",
|
||||
"x-ms-summary": "Entity or Object type in CRM for which related records are requested",
|
||||
"default": "Opportunity",
|
||||
"enum": ["Account", "Opportunity"],
|
||||
"description": "This input identifies the record type in CRM for which related records are requested",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "recordId",
|
||||
"x-ms-summary": "Unique identifier of the CRM record",
|
||||
"description": "This input provides the unique identifier of the CRM record for which related records are requested",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "top",
|
||||
"x-ms-summary": "Top",
|
||||
"description": "This input indicates the number of related records to fetch",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "skip",
|
||||
"x-ms-summary": "Skip",
|
||||
"description": "This input indicates the number of records to skip when fetching related records",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "crmType",
|
||||
"x-ms-summary": "Valid values are Dynamics 365 and Salesforce",
|
||||
"description": "This input indicates the type of CRM the related records are fetched from",
|
||||
"type": "string",
|
||||
"default": "Salesforce",
|
||||
"enum": ["Salesforce", "Dynamics365"]
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "crmOrgUrl",
|
||||
"x-ms-summary": "Host name of the CRM organization",
|
||||
"description": "This input indicates the URL of the CRM environment the related records are fetched from",
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Success",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/externalRelatedRecordListResponseEnvelope"
|
||||
},
|
||||
"x-ms-summary": "Success"
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
},
|
||||
"x-ms-summary": "Bad Request"
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
},
|
||||
"x-ms-summary": "Unauthorized"
|
||||
},
|
||||
"429": {
|
||||
"description": "Too Many Requests",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
},
|
||||
"x-ms-summary": "Too Many Requests"
|
||||
},
|
||||
"500": {
|
||||
"description": "Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
},
|
||||
"x-ms-summary": "Server Error"
|
||||
}
|
||||
},
|
||||
"x-ms-visibility": "important",
|
||||
"x-ms-openai-data": {
|
||||
"openai-enabled": true,
|
||||
"operations": [
|
||||
{
|
||||
"operationId": "scp-get-related-records",
|
||||
"x-ms-require-user-confirmation": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"/relatedActivities": {
|
||||
"get": {
|
||||
"tags": ["SalesCopilotExtensibility"],
|
||||
"summary": "Enrich CRM record summary",
|
||||
"description": "This action gets additional sales insights related to a CRM record that will be shown in the C4S record summary card. The action enhances the existing skills of copilot for sales",
|
||||
"operationId": "scp-get-related-activities",
|
||||
"produces": ["application/json"],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "query",
|
||||
"name": "recordType",
|
||||
"x-ms-summary": "Record Type",
|
||||
"description": "This input indicates the entity or object type in CRM for which insights are requested",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"enum": ["account", "opportunity"]
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "recordId",
|
||||
"x-ms-summary": "Record ID",
|
||||
"description": "This input indicates the unique identifier of the CRM record for which insights are requested",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "startDateTime",
|
||||
"x-ms-summary": "Start Date Time",
|
||||
"description": "This input indicates the start date and time for insights requested",
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "endDateTime",
|
||||
"x-ms-summary": "End Date Time",
|
||||
"description": "This input indicates the end date and time for insights requested",
|
||||
"type": "string",
|
||||
"format": "date-time"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "top",
|
||||
"x-ms-summary": "Top",
|
||||
"description": "This input indicates the number of insights to fetch",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "skip",
|
||||
"x-ms-summary": "Skip",
|
||||
"description": "This input indicates the number of insights to skip",
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "crmType",
|
||||
"x-ms-summary": "CRM Type",
|
||||
"description": "This input indicates the type of CRM in which the CRM record exists, for which insights are requested",
|
||||
"type": "string",
|
||||
"enum": ["Salesforce", "Dynamics365"]
|
||||
},
|
||||
{
|
||||
"in": "query",
|
||||
"name": "crmOrgUrl",
|
||||
"x-ms-summary": "CRM Org URL",
|
||||
"description": "This input indicates the URL of the CRM environment in which the CRM record exists, for which insights are requested.",
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "Success",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/activityListResponseEnvelope"
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Bad Request",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
}
|
||||
},
|
||||
"429": {
|
||||
"description": "Too Many Requests",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
}
|
||||
},
|
||||
"500": {
|
||||
"description": "Server Error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/apiError"
|
||||
}
|
||||
}
|
||||
},
|
||||
"x-ms-visibility": "important",
|
||||
"x-ms-openai-data": {
|
||||
"openai-enabled": false,
|
||||
"operations": [
|
||||
{
|
||||
"operationId": "scp-get-related-activities",
|
||||
"x-ms-require-user-confirmation": false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"testConnectionResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"message": {
|
||||
"description": "Test connection response.",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"externalRelatedRecord": {
|
||||
"required": [
|
||||
"recordId",
|
||||
"recordTitle",
|
||||
"recordType",
|
||||
"recordTypeDisplayName",
|
||||
"recordTypePluralDisplayName"
|
||||
],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"recordId": {
|
||||
"x-ms-summary": "Record ID",
|
||||
"description": "This output uniquely identifies each related record returned by the action",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"recordTypeDisplayName": {
|
||||
"x-ms-summary": "Record Type Display Name",
|
||||
"description": "This output indicates the display name of record type of each related record returned by the action",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"recordTitle": {
|
||||
"x-ms-summary": "Record Title",
|
||||
"description": "This output indicates the title of each related record returned by the action",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"recordTypePluralDisplayName": {
|
||||
"x-ms-summary": "Record Type Plural Display Name",
|
||||
"description": "This output indicates the plural display name of the record type of each related record returned by the action",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"recordType": {
|
||||
"x-ms-summary": "Record Type",
|
||||
"description": "This output indicates the type of each related record returned by the action",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"url": {
|
||||
"x-ms-summary": "URL",
|
||||
"description": "This output indicates the URL of each related record returned by the action",
|
||||
"type": "string"
|
||||
},
|
||||
"additionalProperties": {
|
||||
"x-ms-summary": "Additional Properties",
|
||||
"description": "This output indicates additional properties as name-value pairs of each related record returned by the action",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"externalRelatedRecordListResponseEnvelope": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"value": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/externalRelatedRecord"
|
||||
}
|
||||
},
|
||||
"hasMoreResults": {
|
||||
"description": "This indicates whether there are more results to be fetched in subsequent calls",
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"activity": {
|
||||
"required": ["dateTime", "description", "title"],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"x-ms-summary": "Title",
|
||||
"description": "This output indicates the title of the activity in the citation card",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"x-ms-summary": "Description",
|
||||
"description": "This output indicates the description of the insight",
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"dateTime": {
|
||||
"x-ms-summary": "Date Time",
|
||||
"format": "date-time",
|
||||
"description": "This output indicates the time associated with the insight",
|
||||
"type": "string"
|
||||
},
|
||||
"url": {
|
||||
"x-ms-summary": "URL",
|
||||
"description": "This output indicates the URL to open insight",
|
||||
"type": "string"
|
||||
},
|
||||
"additionalProperties": {
|
||||
"x-ms-summary": "Additional Properties",
|
||||
"description": "This output indicates additional properties displayed in the detailed view of the insight",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"activityListResponseEnvelope": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"value": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/activity"
|
||||
}
|
||||
},
|
||||
"hasMoreResults": {
|
||||
"description": "This indicates whether there are more results to be fetched in subsequent calls",
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"apiError": {
|
||||
"required": ["errorCode"],
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"errorCode": {
|
||||
"minLength": 1,
|
||||
"type": "string"
|
||||
},
|
||||
"errorMessage": {
|
||||
"type": "string"
|
||||
},
|
||||
"activityId": {
|
||||
"type": "string"
|
||||
},
|
||||
"details": {
|
||||
"type": "object",
|
||||
"additionalProperties": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"parameters": {},
|
||||
"responses": {},
|
||||
"securityDefinitions": {
|
||||
"oauth2-auth": {
|
||||
"type": "oauth2",
|
||||
"flow": "accessCode",
|
||||
"authorizationUrl": "https://auth.seismic.com/central/connect/authorize",
|
||||
"tokenUrl": "https://auth.seismic.com/central/connect/token",
|
||||
"scopes": {
|
||||
"sales_copilot_view offline_access": "sales_copilot_view offline_access"
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"oauth2-auth": ["sales_copilot_view offline_access"]
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
{
|
||||
"name": "Sales Copilot"
|
||||
}
|
||||
],
|
||||
"x-ms-capabilities": {
|
||||
"testConnection": {
|
||||
"operationId": "TestConnection"
|
||||
}
|
||||
},
|
||||
"x-ms-connector-metadata": [
|
||||
{
|
||||
"propertyName": "Website",
|
||||
"propertyValue": "https://seismic.com/"
|
||||
},
|
||||
{
|
||||
"propertyName": "Privacy policy",
|
||||
"propertyValue": "https://seismic.com/privacy-policy/"
|
||||
},
|
||||
{
|
||||
"propertyName": "Categories",
|
||||
"propertyValue": "Marketing;Sales and CRM"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"properties": {
|
||||
"connectionParameters": {
|
||||
"token": {
|
||||
"type": "oauthSetting",
|
||||
"oAuthSettings": {
|
||||
"identityProvider": "oauth2",
|
||||
"clientId": "PLACEHOLDER_CLIENTID",
|
||||
"scopes": ["sales_copilot_view offline_access"],
|
||||
"redirectMode": "Global",
|
||||
"redirectUrl": "https://global.consent.azure-apim.net/redirect",
|
||||
"properties": {
|
||||
"IsFirstParty": "False",
|
||||
"IsOnbehalfofLoginSupported": false
|
||||
},
|
||||
"customParameters": {
|
||||
"authorizationUrl": {
|
||||
"value": "https://auth.seismic.com/central/connect/authorize"
|
||||
},
|
||||
"tokenUrl": {
|
||||
"value": "https://auth.seismic.com/central/connect/token"
|
||||
},
|
||||
"refreshUrl": {
|
||||
"value": "https://auth.seismic.com/central/connect/token"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"iconBrandColor": "#22092B",
|
||||
"capabilities": [],
|
||||
"publisher": "Seismic",
|
||||
"stackOwner": "Seismic"
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче