📋Schemas

Layout of received data

{
  signature: 'mava_wh_3h32i2dkd2d90d2jdk2jd2k29hds' // string
  payload: 'encrypted_payload' // string
  key: 'encrypted_key',
  webhookId: '321312-2312d-2ed121' // string
}

You will receive post requests from Mava in the above format. Signature will be used along with Signing Key to verify the authenticity of your payload. The Webhook ID must be used to ensure you have not previously received this webhook. See Deliverability for more information.

Once unencrypted you're payload will look like something like this - depending on the data events you've subscribed to and are receiving.

{
  signature: 'mava_wh_3h32i2dkd2d90d2jdk2jd2k29hds' // string
  payload: {
    type: 'ticket.created' // string
    document: {...} //  Ticket
  },
  webhookId: '321312-2312d-2ed121' // string
}

Ticket Schema

interface Ticket {
  tags: {},
  customer: Customer,
  assignedTo: {
    name: string;
    email: string;
  } | undefined,
  status: string;
  priority: string;
  category: {
    name: string;
    isArchived: boolean;
  },
  sourceType: string;
  aiStatus: string;
  userRating: Types.ObjectId;
  isUserRatingRequested: boolean;
  firstCustomerMessageCreatedAt?: Date;
  firstAgentMessageCreatedAt?: Date;
  attributes: { attribute: Attribute; content: string }[];
}

Message schema


interface Message {
  messageType: string;
  senderReferenceType: 'ClientMember' | 'Customer' | 'DiscordUser';
  sender: {
    name: string,
    email: string,
  },
  fromCustomer: boolean;
  content: string;
  ticket: Ticket;
  attachments: {
    url:string,
    fileName:string,
    type:string,  
  }[],
}

Customer schema

interface Customer {
  walletAddress: string;
  name: string;
  email: string;
  attributes: { attribute: Attribute; content: string }[];
  discordAuthorId: string;
  telegramAuthorId: string;
  discordRoles: string[];
}

Attribute schema


interface IAttribute {
  _id: string;
  name: string;
  type: string;
  affiliationType: string;
  isArchived: boolean;
}

Last updated

Was this helpful?