📋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?