-
Notifications
You must be signed in to change notification settings - Fork 132
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
Intent Proposal: Create Interaction #592
Comments
Could we potentially categorise (at least some of the common) types of interaction, e.g..:
This could potentially be utilised further down the line to add a CreateMeeting or similar intent? |
There are some standards (defacto and otherwise) for interaction types already. RIXML have a standard for Interaction Types https://www.rixml.org/images/docs/schemas/interactions/interactions_2_0/RIXML-Interactions_v2_0_Data_dictionary.pdf (search for InteractionPurposeEnum and InteractionModeEnum). Commcise are currently the market leader for Interaction Reporting Aggregation. They don't publish their interaction categorisation standard but I could ask them for permission to do so; we know them well. Or my company - Singletrack - has adaptors for all the aggregators used by the buy side and so we have a scheme that maps all the various standards used by Commcise, One Access, Bloomberg, Dealogic, etc. to a single scheme which is proprietary to us but I'm happy to open it out. The problem with all of these - including ours - is they suffer from the vast complexity of all the different views of interactions that the Buy Side have and so the scheme are all very large and sometimes hard to distinguish how to apply. For things like our Mobile App and Outlook integration we take the opposite view; that we can make a good guess based on the client type. You wouldn't likely use a mobile app to log a Corporate Roadshow or a piece of bespoke research; most likely a Call or a Meeting. If you're logging something from Outlook it is most like an Email. This works well and the functionality is there in our system to review and 'correct' the interaction type should this be an email you want to interpret as 'Bespoke Research' or you want/need to distinguish a Virtual Meeting from a In-person Meeting (which started out being a big thing at the start of the pandemic, and for the purposes of valuing corporate access remains an important detail, but for most other meetings is now seen as an irrelevance). So if we do come up with scheme it should be limited to likely scenarios instigated from desktop clients. My starter for 10:
I'm happy we add as many of these as we need, I'd just caution against trying to produce an exhaustive list. I've lived with complexity of all this for the past four years and the simpler we can make it, the more chance we have of delivering something useful! |
I'd certainly agree we don't want to produce an exhaustive list, I would be happy with some loose categorisations, the four you suggested seems a reasonable starting point, potentially with the inclusion of In Person? I think that would cover most use cases but as I'm not a CRM expert I'll bow to the domain experts. |
@pauldyson thanks for bringing this issue to the top again. Will ensure we include this in our next working group meeting. |
If the interaction types can't be an exhaustive list as an enum, I see no harm in adding a suggested list to the docs with a SHOULD recommendation to at least promote conformity. I think the optional additional context could happily be added to the interaction context type perhaps as an After the next discussion this could/should move to a PR |
Should we check the iCalendar structure to see what they include? It makes me wonder if these interactions are just calendar "events" that are historical. If we had events we could reuse that for calendar type functionality too. |
@hampshan an interaction is slightly different to a calendar event. It's subtle but it is real. An interaction is something that has taken place rather than something that might take place and is a one-off event. A recurring calendar event (which, regardless of how the underlying calendar system treats it) is one thing but will result in many interactions. |
@pauldyson will be raising this one for discussion in this weeks meeting 26th May 2022. |
Excellent, looking forward to discussing it (the last meeting fell out of my calendar somehow) |
I wonder if we should call the |
Hey @pauldyson I had a look into what it would take to create an extensible field for JSONSchema: {
"$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" },
"contacts": {
"$ref": "contactList.schema.json#"
},
"timeRange": {
"$ref": "timerange.schema.json#"
},
"interactionType": {
"anyOf": [
{
"type": "string",
"enum": ["chat", "email", "in-person meeting"]
},
{
"type": "string"
}
]
},
"description": {
"type": "string"
},
"initiator": {
"$ref": "contact.schema.json#"
},
"source": {
"type": "string"
}
},
"required": ["contacts", "timeRange", "interactionType", "description"]
} Which basically says any string is fine, but includes a standard list as a prompt. TypeScript: export interface Interaction {
id?: { [key: string]: string };
type: "fdc3.interaction";
contacts: ContactList;
timeRange: TimeRange;
interactionType: ("chat" | "email" | "in-person meeting") | string;
description: string;
initiator?: Contact;
source?: string;
} Obviously, the interaction types should be described in the docs page and use the keyword SHOULD (i.e. Interaction instances SHOULD use the predefined interactionType values where possible). Hopefully, this gives you the main content for a PR to resolve this issue. |
Thanks @kriswest just working on the PR now so will try to fold it in. cc @milindchidrawar |
Enhancement Request
Use Case
An Analyst is IMing with a Buy Side fund manager who has a number of questions about the assumptions made in the Analyst’s latest report on a particular stock. There is a MiFIDII-style service agreement in place with the Buy Side institution and so the Analyst needs to record the fact that the questions were asked and a summary of the questions as a reportable interaction.
Intents
CreateInteraction
CreateInteraction should be used when a user wants to record a new Interaction in a system based on activity in another system as the starting point. CreateInteraction would be called with the Interaction context.
Contexts
Interaction
An interaction is a significant direct exchange of ideas or information between 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.
Details
type
fdc3.interaction
participants
timeRange
interactionType
Instant Message
description
Blah, blah, blah
initiator
origin
Outlook
Example
Additional Information
In this comment #545 (comment) I suggested the use of additional, optional Contexts. This would be a great example of where they could be used. The Interaction Context proposed gives everything required to log a significant interaction but additional information such as Instruments under discussion in the Interaction would only enrich the quality of data in the end system.
The text was updated successfully, but these errors were encountered: