Skip to content
✍ Javascript SDK for Point API autocomplete and reply suggestions
TypeScript Shell
Branch: master
Clone or download
agski Merge pull request #57 from PointMail/dev
Check if User is active
Latest commit bf670ac Aug 22, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github README Deployment section and PR tempalte Jul 12, 2019
.vscode tslint config & autofix on save Jul 24, 2019
__mocks__ Fix unit tests Jul 29, 2019
__tests__ Fix unit tests Jul 29, 2019
docs Update docs with new param names Jan 23, 2019
src BACKEND-859 Check if User is active Aug 19, 2019
.gitignore Increment version; add to gitignore Mar 29, 2019
.travis.yml Back to dev tag Jul 24, 2019 README Deployment section and PR tempalte Jul 12, 2019
package-lock.json Bumping to 1.1.29 [skip ci] Jul 29, 2019
tsconfig.json parcel bundling, umd support Aug 10, 2018
tslint.json tslint config & autofix on save Jul 24, 2019

✍ Point API Javascript SDK

Point API's js-sdk provides an easy server-side and client-side interface for Point API.

npm Build Status forthebadge

Getting Started


npm install @point-api/js-sdk



To use the Point API, you must first use your API key to retrieve an auth code. An auth code is a JWT that authenticates your client with the Point API. To keep your API key private, make a server-side request to retrieve an auth code, which you can then pass to your client for connecting to our API. Each auth code expires in 6 hours, so be sure to obtain a new auth code for your client after expiration.

The following is a code sample for requesting a Point API auth code. Make sure to substitute your API_KEY and your client's EMAIL_ADDRESS

// Request an auth code (JWT) from the Point API /auth endpoint
const response = await fetch(
    headers: {
      Authorization: "Bearer <API_KEY>"
    method: "POST"
// returns {"jwt":"<AUTH_CODE>"}

// Parse the json response and extract the JWT into a variable
const authCode = (await response.json()).jwt;


Your client can start using the Point API once it has a valid auth code.


Use the autocomplete function to get a list of Autocomplete suggestions. You can pass in seed text to filter for suggestions that include specific words:

const api = new PointApi("<EMAIL_ADDRESS>", "<AUTH_CODE>");
// A websockets connection is automatically established on api init

// Get Autocomplete suggestions with the seed text "I can"
api.autocomplete("I can");
// { responseId: "12345", suggestions: [{suggestion: "I can call you later today.", "type": "suggestion", "userAdded": false}, ...]}


You can also set the context to refine Autocomplete suggestions. The context refers to a message that you're responding to, such as an email that you have received. Once the context has been set, searchSuggestions may return an entirely different list of suggestions:

// Set context
api.setContext("Hey Alex, when can you send me the slide deck?");
api.autocomplete("I can");
// { responseId: "12345", suggestions: [{suggestion: "I can get it to you this afternoon.", "type": "suggestion", "userAdded": false}, ...]}


Point API also provides Reply suggestions for responding to entire messages (currently in beta). Use the getReplies function to receive Reply suggestions. You can play around with this feature here.
Note: this function will also set the previousMessage for the whole session

// Get replies just as you would set the previousMessage:
api.reply("How are you?");

Point finds "prompts" in your context and suggest up to 3 replies for each prompt. It also includes a "confidence" field in each reply suggestion, ranging from a score of 1 (possibly correct) to 3 (very likely correct). This reveals how certain we are about the accuracy of our suggestions.


// If multiple prompts are detected, replies will be generated for all of them and returned in a list
  responseId: "response_id",
  replies: [
    prompt: "How are you?",
    suggestions: [
        confidence: 3,
        text: "I'm doing okay, what about you?"
        confidence: 3,
        text: "I'm doing fantastic."
        confidence: 3,
        text: "I'm great! How are you?"


You can also help us train our models by reporting user feedback such as chosen suggestions"response_id", "I'm doing okay, what about you?", "positive");


Class: PointApi

Point Websockets Api Instance




new PointApi(emailAddress: string, apiKey: string, searchType?: boolean): PointApi


Param Type Description
emailAddress string Email address of Point user
apiKey string API key of Point client
Default value searchType boolean false

Returns: PointApi



● apiKey: string

Api key of Point client


● emailAddress: string

Email address of Point user



autocomplete(seedText: string): Promise< AutocompleteResponse | null>

Query PointApi with seed text to get predicted suggestions


Param Type Description
seedText string The text to base suggestion predictions off of
Optional currentContext undefined | string

Returns: Promise< AutocompleteResponse | null>


feedback(responseId: string, suggestion: _ string | string[], type: _ "positive" | "negative"): Promise<void>

Give feedback on Point Api's suggestions


Param Type
responseId string
suggestion string | string[]
type "positive" | "negative"

Returns: Promise<void>


setContext(previousMessage: string, contextType: string): Promise<string>

Set the context of the autocomplete session


Param Type
previousMessage string
contextType string

Returns: Promise<string>


reply(previousMessage: string, contextType: string): Promise< ReplyResponse | null>

Get reply suggestions given some recieved text


Param Type Default value
previousMessage string -
Default value contextType ContextType "text"

Returns: Promise< ReplyResponse | null>




● confidence: number
● text: string



● prompt: string
● suggestions: Reply[]
● type: string



● replies: ReplyMeta[]
● responseId: string



● suggestion: string
● type: string
● userAdded: boolean


● responseId: string
● seedText: string
● suggestions: SuggestionMeta[]


This library is deployed to

Travis CI pipeline is configured to release any code from master branch. By default the package version is automatically incremented like a patch (e.g. from v0.8.1 to v0.8.2). A git tag for corresponding release is created and can be seen here.

Deployment steps

  • Before merging to master make sure that previous release was merged to master. This means that package.json has the same version as latest in
  • If versions differ, look for a git tag for the latest release (e.g. v1.1.23) and include it in the PR.
  • Now you can merge to master and a new release should be deployed to
  • If you forget to include latest version, your release will fail. The easiest fix is to create another PR that only includes skipped version changes from version tag (e.g. v1.1.23). After merging in, a new release should be pushed to including all new changes.

Additional resources

Point API is the engine that powers autocompletion, which means you can customize the frontend implementation to fit your production needs. If you want to include a frontend solution that works out-of-the-box, we have a sample autocomplete dropdown (implemented as a React component) that automatically integrates with the API. You can plug in our autocomplete dropdown to have a fully-functional autocomplete on your platform, app, or website. A sample implementation can be found here

You can’t perform that action at this time.