Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

592 intent proposal create interaction #747

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9f6294f
add-create-interaction-intent
milindchidrawar Jun 7, 2022
6accbc1
add-create-interaction-intent
milindchidrawar Jun 7, 2022
10f1e44
add-create-interaction-intent
milindchidrawar Jun 7, 2022
d74f407
Interaction context added
pauldyson Jun 8, 2022
6abb14d
update CreateInteraction to use origin instead of source
milindchidrawar Jun 9, 2022
a117878
Updated 592-intent-proposal-create-interaction branch with latest FDC…
mistryvinay Jul 4, 2022
d3b02df
Updates to sidebar.json and comments in CHANGELOG.md
mistryvinay Jul 4, 2022
54d58aa
Merge pull request #7 from mistryvinay/592-intent-proposal-create-int…
milindchidrawar Aug 4, 2022
bf6c9e9
Merge branch 'master' into 592-intent-proposal-create-interaction
milindchidrawar Aug 4, 2022
3a871c7
resolve alphabetical sorting
milindchidrawar Aug 4, 2022
1d8ffc0
Merge branch 'finos:master' into 592-intent-proposal-create-interaction
milindchidrawar Sep 22, 2022
8b040d9
updated CHANGELOG.MD to remove reference to View Interaction
milindchidrawar Oct 5, 2022
0b67e69
Merge branch 'finos:master' into 592-intent-proposal-create-interaction
milindchidrawar Oct 18, 2022
25f1efa
updates to context and intent descriptions and cleanup ContextTypes.ts
milindchidrawar Oct 18, 2022
b62d702
Merge branch 'finos:master' into 592-intent-proposal-create-interaction
milindchidrawar Nov 2, 2022
ef838e1
Update src/context/schemas/interaction.schema.json
milindchidrawar Nov 15, 2022
bb01a1c
Update website/static/schemas/next/interaction.schema.json
milindchidrawar Nov 15, 2022
b404098
Merge branch 'finos:master' into 592-intent-proposal-create-interaction
milindchidrawar Nov 22, 2022
5491a09
add ViewInteractions to the list of related intents
milindchidrawar Nov 22, 2022
a3c3f2f
remove lock file from PR
milindchidrawar Nov 22, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]

### Added
* Added `CreateInteraction` intent. To be used when a user wants to record an interaction into a system. New context `Interaction` also introduced. An interaction might be a call, IM, email, a meeting (physical or virtual) or the preparation of some specialist data. ([#747](https://github.com/finos/FDC3/pull/747))

### Changed

Expand Down
1 change: 1 addition & 0 deletions docs/context/ref/Contact.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ Intents
- [ViewResearch](../../intents/ref/ViewResearch)
- [ViewInteractions](../../intents/ref/ViewInteractions)
- [ViewOrders](../../intents/ref/ViewOrders)
- [CreateInteraction](../../intents/ref/CreateInteraction)

FINOS Financial Objects
- [Contact](https://fo.finos.org/docs/objects/contact)
1 change: 1 addition & 0 deletions docs/context/ref/ContactList.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ Other Types
Intents
- [StartChat](../../intents/ref/StartChat)
- [StartCall](../../intents/ref/StartCall)
- [CreateInteraction](../../intents/ref/CreateInteraction)

FINOS Financial Objects
- [ContactList](https://fo.finos.org/docs/objects/contactlist)
88 changes: 88 additions & 0 deletions docs/context/ref/Interaction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
id: Interaction
sidebar_label: Interaction
title: Interaction
hide_title: true
---
# `Interaction`

An `Interaction` is a significant direct exchange of ideas or information between a number of participants, e.g. a Sell Side party and one or more Buy Side parties. An `Interaction` might be a call, a meeting (physical or virtual), an IM or the preparation of some specialist data, such as financial data for a given company or sector.

Notes:

- `interactionType` SHOULD be one of 'Instant Message', 'Email', 'Call', or 'Meeting' although other values are permitted.
- `origin` is used to represent the application or service that the interaction was created from to aid in tracing the source of an interaction.

## Type

`fdc3.interaction`

## Schema

https://fdc3.finos.org/schemas/next/interaction.schema.json

## Details

| Property | Type | Required | Example Value |
|-------------|---------|----------|---------------------|
| `type` | string | Yes | `fdc3.interaction` |
| `participants` | fdc3.contactList | Yes | See below |
| `timeRange` | fdc3.timeRange | Yes | See below |
| `interactionType` | string | Yes | `Instant Message` |
| `description` | string | Yes | `Blah, blah, blah` |
| `initiator` | fdc3.contact | No | See below |
| `origin` | string | No | `Outlook` |

## Example

```js
const interaction = {
type: 'fdc3.interaction',
participants: {
type: 'fdc3.contactList',
contacts: [
{
type: 'fdc3.contact',
name: 'Jane Doe',
id: {
email: 'jane.doe@mail.com'
}
},
{
type: 'fdc3.contact',
name: 'John Doe',
id: {
email: 'john.doe@mail.com'
}
},
]
},
interactionType: 'Instant Message',
timeRange: {
type: 'fdc3.timeRange',
startTime: '2022-02-10T15:12:00Z'
},
description: 'Laboris libero dapibus fames elit adipisicing eu, fermentum, dignissimos laboriosam, erat, risus qui deserunt. Praesentium! Reiciendis. Hic harum nostrud, harum potenti amet? Mauris. Pretium aliquid animi, eget eiusmod integer proident. Architecto ipsum blandit ducimus, possimus illum sunt illum necessitatibus ab litora sed, nonummy integer minus corrupti ducimus iste senectus accumsan, fugiat nostrud? Pede vero dictumst excepturi, iure earum consequuntur voluptatum',
initiator: {
type: 'fdc3.contact',
name: 'Jane Doe',
id: {
email: 'jane.doe@mail.com'
}
},
origin: 'Outlook'
}

fdc3.raiseIntent('CreateInteraction', interaction)
```

## See Also

Other Types
- [Contact](Contact)
- [ContactList](ContactList)
- [TimeRange](TimeRange)

Intents
- [CreateInteraction](../../intents/ref/CreateInteraction)
- [ViewInteractions](../../intents/ref/ViewInteractions)
3 changes: 3 additions & 0 deletions docs/context/ref/TimeRange.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,6 @@ const timeRange = {
Other Types

- [Chart](Chart)

Intents
- [CreateInteraction](../../intents/ref/CreateInteraction)
35 changes: 18 additions & 17 deletions docs/context/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,23 +157,24 @@ For more details on FDC3 Standards compliance (including the versioning, depreca

The following are standard FDC3 context types:

* [`fdc3.chart`](ref/Chart) ([schema](/schemas/next/chart.schema.json))
* [`fdc3.chat.initSettings`](ref/ChatInitSettings) ([schema](/schemas/next/chatInitSettings.schema.json))
* [`fdc3.contact`](ref/Contact) ([schema](/schemas/next/contact.schema.json))
* [`fdc3.contactList`](ref/ContactList) ([schema](/schemas/next/contactList.schema.json))
* [`fdc3.country`](ref/Country) ([schema](/schemas/next/country.schema.json))
* [`fdc3.currency`](ref/Currency) ([schema](/schemas/next/currency.schema.json))
* [`fdc3.email`](ref/Email) ([schema](/schemas/next/email.schema.json))
* [`fdc3.instrument`](ref/Instrument) ([schema](/schemas/next/instrument.schema.json))
* [`fdc3.instrumentList`](ref/InstrumentList) ([schema](/schemas/next/instrumentList.schema.json))
* [`fdc3.organization`](ref/Organization) ([schema](/schemas/next/organization.schema.json))
* [`fdc3.portfolio`](ref/Portfolio) ([schema](/schemas/next/portfolio.schema.json))
* [`fdc3.position`](ref/Position) ([schema](/schemas/next/position.schema.json))
* [`fdc3.nothing`](ref/Nothing) ([schema](/schemas/next/nothing.schema.json))
* [`fdc3.timerange`](ref/TimeRange) ([schema](/schemas/next/timerange.schema.json))
* [`fdc3.valuation`](ref/Valuation) ([schema](/schemas/next/valuation.schema.json))

**Note:** The below examples show how the base context data interface can be used to define specific context data objects.
- [`fdc3.chart`](ref/Chart) ([schema](/schemas/next/chart.schema.json))
- [`fdc3.chat.initSettings`](ref/ChatInitSettings) ([schema](/schemas/next/chatInitSettings.schema.json))
- [`fdc3.contact`](ref/Contact) ([schema](/schemas/next/contact.schema.json))
- [`fdc3.contactList`](ref/ContactList) ([schema](/schemas/next/contactList.schema.json))
- [`fdc3.country`](ref/Country) ([schema](/schemas/next/country.schema.json))
- [`fdc3.currency`](ref/Currency) ([schema](/schemas/next/currency.schema.json))
- [`fdc3.email`](ref/Email) ([schema](/schemas/next/email.schema.json))
- [`fdc3.instrument`](ref/Instrument) ([schema](/schemas/next/instrument.schema.json))
- [`fdc3.instrumentList`](ref/InstrumentList) ([schema](/schemas/next/instrumentList.schema.json))
- [`fdc3.interaction`](ref/Interaction) ([schema](/schemas/next/interaction.schema.json))
- [`fdc3.organization`](ref/Organization) ([schema](/schemas/next/organization.schema.json))
- [`fdc3.portfolio`](ref/Portfolio) ([schema](/schemas/next/portfolio.schema.json))
- [`fdc3.position`](ref/Position) ([schema](/schemas/next/position.schema.json))
- [`fdc3.nothing`](ref/Nothing) ([schema](/schemas/next/nothing.schema.json))
- [`fdc3.timerange`](ref/TimeRange) ([schema](/schemas/next/timerange.schema.json))
- [`fdc3.valuation`](ref/Valuation) ([schema](/schemas/next/valuation.schema.json))

__Note:__ The below examples show how the base context data interface can be used to define specific context data objects.

### Examples

Expand Down
70 changes: 70 additions & 0 deletions docs/intents/ref/CreateInteraction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
id: CreateInteraction
sidebar_label: CreateInteraction
title: CreateInteraction
hide_title: true
---
# `CreateInteraction`

Create a record documenting an interaction (calls, meetings, etc.) between a list of contacts.

## Intent Name

`CreateInteraction`

## Display Name

`Create Interaction`

## Possible Contexts

* [ContactList](../../context/ref/ContactList)
kriswest marked this conversation as resolved.
Show resolved Hide resolved
* [Interaction](../../context/ref/Interaction)

## Example

```js
const interaction = {
type: 'fdc3.interaction',
contacts: {
type: 'fdc3.contactList',
contacts: [
{
type: 'fdc3.contact',
name: 'Jane Doe',
id: {
email: 'jane.doe@mail.com'
}
},
{
type: 'fdc3.contact',
name: 'John Doe',
id: {
email: 'john.doe@mail.com'
}
},
]
},
interactionType: 'Instant Message',
timeRange: {
type: 'fdc3.timeRange',
startTime: '2022-02-10T15:12:00Z'
},
description: 'Laboris libero dapibus fames elit adipisicing eu, fermentum, dignissimos laboriosam, erat, risus qui deserunt. Praesentium! Reiciendis. Hic harum nostrud, harum potenti amet? Mauris. Pretium aliquid animi, eget eiusmod integer proident. Architecto ipsum blandit ducimus, possimus illum sunt illum necessitatibus ab litora sed, nonummy integer minus corrupti ducimus iste senectus accumsan, fugiat nostrud? Pede vero dictumst excepturi, iure earum consequuntur voluptatum',
initiator: {
type: 'fdc3.contact',
name: 'Jane Doe',
id: {
email: 'jane.doe@mail.com'
}
},
origin: 'Outlook'
}

fdc3.raiseIntent('CreateInteraction', interaction)
```

## See Also

Context
- [Interaction](../../context/ref/Interaction)
1 change: 1 addition & 0 deletions docs/intents/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ A list of standardized intents are defined in the following pages:
* [`ViewProfile`](ref/ViewProfile)
* [`ViewQuote`](ref/ViewQuote)
* [`ViewResearch`](ref/ViewResearch)
* [`CreateInteraction`](ref/CreateInteraction)

### Deprecated Intents

Expand Down
13 changes: 12 additions & 1 deletion src/context/ContextTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,18 @@ export interface Country {
name?: string;
}

export interface CountryID {
export interface Interaction {
id?: { [key: string]: string };
type: string;
participants: ContactList;
timeRange: TimeRange;
interactionType: ("Instant Message" | "Email" | "Call" | "Meeting") | string;
description: string;
initiator?: Contact;
origin?: string;
}

export interface CountryID {
COUNTRY_ISOALPHA2?: string;
COUNTRY_ISOALPHA3?: string;
ISOALPHA2?: string;
Expand Down
1 change: 1 addition & 0 deletions src/context/schemas.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"Email": ["https://fdc3.finos.org/schemas/next/email.schema.json"],
"Instrument": ["https://fdc3.finos.org/schemas/next/instrument.schema.json"],
"InstrumentList": ["https://fdc3.finos.org/schemas/next/instrumentList.schema.json"],
"Interaction": ["https://fdc3.finos.org/schemas/next/interaction.schema.json"],
"Nothing": ["https://fdc3.finos.org/schemas/next/nothing.schema.json"],
"Organization": ["https://fdc3.finos.org/schemas/next/organization.schema.json"],
"Portfolio": ["https://fdc3.finos.org/schemas/next/portfolio.schema.json"],
Expand Down
37 changes: 37 additions & 0 deletions src/context/schemas/interaction.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://fdc3.finos.org/schemas/next/interaction.schema.json",
"type": "object",
"title": "Interaction",
"allOf": [{ "$ref": "context.schema.json#" }],
"properties": {
"type": { "const": "fdc3.interaction" },
"participants": {
"$ref": "contactList.schema.json#"
},
"timeRange": {
"$ref": "timerange.schema.json#"
},
"interactionType": {
"anyOf": [
{
"type": "string",
"enum": ["Instant Message", "Email", "Call", "Meeting"]
},
{
"type": "string"
}
]
},
"description": {
"type": "string"
},
"initiator": {
"$ref": "contact.schema.json#"
},
"origin": {
"type": "string"
}
},
"required": ["participants", "timeRange", "interactionType", "description"]
}
1 change: 1 addition & 0 deletions src/intents/Intents.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export enum Intents {
CreateInteraction = 'CreateInteraction',
StartCall = 'StartCall',
StartChat = 'StartChat',
StartEmail = 'StartEmail',
Expand Down
4 changes: 4 additions & 0 deletions src/intents/standard intents.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
{
"intents": [
{
"name": "CreateInteraction",
"displayName": "Create Interaction"
},
{
"name": "StartCall",
"displayName": "Call"
Expand Down
2 changes: 2 additions & 0 deletions website/sidebars.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"label": "Intents Part",
"ids": [
"intents/spec",
"intents/ref/CreateInteraction",
"intents/ref/StartCall",
"intents/ref/StartChat",
"intents/ref/StartEmail",
Expand Down Expand Up @@ -69,6 +70,7 @@
"context/ref/Email",
"context/ref/Instrument",
"context/ref/InstrumentList",
"context/ref/Interaction",
"context/ref/Nothing",
"context/ref/Organization",
"context/ref/Portfolio",
Expand Down
37 changes: 37 additions & 0 deletions website/static/schemas/next/interaction.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://fdc3.finos.org/schemas/next/interaction.schema.json",
"type": "object",
"title": "Interaction",
"allOf": [{ "$ref": "context.schema.json#" }],
"properties": {
"type": { "const": "fdc3.interaction" },
"participants": {
"$ref": "contactList.schema.json#"
},
"timeRange": {
"$ref": "timerange.schema.json#"
},
"interactionType": {
"anyOf": [
{
"type": "string",
"enum": ["Instant Message", "Email", "Call", "Meeting"]
},
{
"type": "string"
}
]
},
"description": {
"type": "string"
},
"initiator": {
"$ref": "contact.schema.json#"
},
"origin": {
"type": "string"
}
},
"required": ["participants", "timeRange", "interactionType", "description"]
}
Loading