Submit Research Anywhere Using Microsoft Teams

Investment ideas come from anywhere and should be shared from anywhere

This recipe demonstrates how to use FactSet’s APIs to generate research notes in virtually any environment.

First, we use IRN’s Configuration API to return the required information to create our IRN Note. Then we use FactSet’s Named Entity Recognition API to return the entity and recommendation found in a Teams message. Finally, we create a rich text IRN.

Time Required: 2+ hours
Difficulty: Complex
Submit Research Anywhere Using Microsoft Teams

Steps

1RETURN IRN REQUIRED INFORMATION

Use the IRN configuration API to determine the Author, Sentiment and Subject associated with the IRN Note.

2EXTRACT ENTITIES FROM THE MESSAGE

Use the NER API to return companies, locations, and people referenced inside of the message.

3EXTRACT RECOMMENDATION

Determine if a recommendation is inside the message body.

4CREATE THE IRN NOTE

Use FactSet’s IRN Note API to generate a new rich text IRN Note.

Recipe Details

1RETURN IRN REQUIRED INFORMATION IRN Configuration API

Base URL: /research/irn/v1

Read and update Internal Research Application configurations and settings.

GET: /Author
Returns a JSON array containing an object for each author within the Internal Research Note application.  Each JSON object contains the (author) id, username, serial number, first name, last name, email, and team information. Use the message sender’s email address to parse the resulting JSON and return the username and serial number.

  • Username and Serial Number are required fields
  • Return the sender’s email address by using Microsoft’s Power Automate to pass the message from user id to the Office 365 Users Get User profile(v2) connector

GET: /Sentiments
Returns a JSON array containing an object for each sentiment listed in the Internal Research Notes application. The JSON object contains the (sentiment) id, name and code.

  • Sentiment Id is a required field
  • Sentiment Ids are unique to each Username and may change.

GET: /Subjects
Returns a JSON array containing an object for each subject listed in the Internal Research Notes Application. Each object contains the (subject) id, name and code for the subjects listed in the Internal Research Notes Application.

  • Subject Id is a required field
  • Subject Ids are unique to each username and may change.

2EXTRACT ENTITIES FROM THE MESSAGE FACTSET NER (NAMED ENTITY RECOGNITION)

Base URL:  /cognitive/ner/v1

Extracts company, person, and location names from either plain or HTML formatted text.

POST: /entities
Returns a JSON array containing an object for each entity found within the message. Each JSON object will contain the type, text, the start and ending character position, the look up text and the best matching FactSet column or Entity ID.

  • NER Service accuracy improves when making plain text queries instead of HTML
  • Company Entities are type “NE_ORG”
  • Individual Entities are type “NE_PER”
  • Location Entities are type “NE_LOC”
  • Starting and Ending Character Positions are accurate only for plain text inputs
  • NER Service currently supports only English
  • Requests string’s length must be between 30 and 10,000 characters including the HTML markup
  • Expects input text with accurate case - a name must begin with a capital letter
  • Convert HTML to plain text In Microsoft Flows using the connector “HTML to text”

Use the endpoint to find all entities within the Teams message, then use the returned FactSet Entity ID as an identifier when creating an IRN Note. Before parsing the string for recommendations, use the resulting JSON to trim any proper names from the plain text version of the Teams message. This eliminates any company, individual, or location names that may contain the recommendation string (Best Buy). If the NER API finds more than one company entity, pass the additional entities to the same note by adding them to the associated identifiers object in the IRN Note JSON.

EXTRACT ENTITIES FROM THE MESSAGE

3EXTRACT RECOMMENDATION IRN Configuration API

Base URL: /research/irn/v1

Read and update configuration and settings of the Internal Research Application. Use the resulting JSON object to parse the updated plain text Teams message returned from the previous step, searching for any recommendation name matches.

GET: /Recommendations
Returns a JSON Array containing every available IRN recommendation. Each JSON object will contain the recommendation id, name and code.

  • Recommendation Id is a required field

4CREATE THE IRN NOTE IRN Notes API

Base URL: /research/irn/v1

Use this family of APIs to manage notes within the Internal Research Notes application. With the proper privileges you can retrieve, create, update, and delete notes. It’s possible to configure IRN to allow a single API key to submit IRN notes for multiple users.

  • Privileges must be set within the IRN Application
  • HTML is converted to rich text when passed to the body object inside the request JSON
  • API can update custom fields, but requires the correct named value pair matching the field format within the IRN database
  • API can tag related meetings, records, and contacts by passing their corresponding IDs to the appropriate JSON array within the request body

POST: /v1/notes
Publish new IRN Notes to the Internal Research Notes application.

GET: /v1/Notes/{noteID}
Returns the details associated with a specific note.

PUT: /v1/Notes/{noteID}
Update an existing note.

  • Requires additional privileges which must be set inside Internal Research Notes Application

DELETE: /v1/Notes/{noteID}
Delete the specified IRN Note.

  • Requires additional privileges which must be set inside Internal Research Notes Application
CREATE THE IRN NOTE