Interactions

Carter Interactions are at the heart of carter-js

What is an interaction?

An interaction is an object returned whenever you send a message to your Carter agent. It contains the data CarterAPI returns as well some some extra spice courtesy of carter-js.

What does it look like?

CarterInteraction {
  type: String
  id: String
  carterData: CarterData
  url: string
  ok: Boolean
  statusCode: Number
  statusMessage: String
  payload: CarterPayload
  triggeredSkills: CarterSkillInstance[]
  executedSkills: CarterSkillInstance[]
  timeTaken: Number
  isoTimestamp: String
  
  // These properties are extracted from carterData for convenience
  characterName: String
  outputText: String
  outputAudio: String
  forcedBehaviours: ForcedBehaviour[]
}

// For those unfamiliar with typescript, the something[] syntax 
// denotes an array of somethings
  • type: A string denoting which type of interaction this is. Eg "say", "opener", or "personalise"

  • id: This is a unique ID generated by carter-js for each interaction. It is used to track the interaction through logging, and also for identifying interactions in the conversation history.

  • carterData: This is the data returned by the Carter API. To avoid replicating information, you can find an explanation of this data here. In the event of an invalid response from the Carter endpoint, this property will be null.

  • url: The url the request was made to, for information and debugging purposes.

  • ok: Returns true if the response code is 2xx. More details here.

  • statusCode: The fetch response code.

  • statusMessage: A message related to the status code.

  • payload: The payload which was sent to Carter.

  • triggeredSkills: An array of skills that were triggered by Carter, but who's actions were not executed.

  • executedSkills: An array of skills that were triggered by Carter and who's actions were automatically executed on detection.

  • outputText: The response text, extracted from carterData

  • outputAudio: The response audio url if present, extracted from carterData

outputText and outputAudio are the recommended way to access the responses as these will remain the same regardless of API changes, helping to maintain backwards compatibility in your projects.

ok and statusCode are extracted straight from the fetch response

Last updated