You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To be able to give better answers why a message was not sent to a subscriber we need to get some info from the provider with a webhook. (deliverability status, rejection status etc).
How
To do this we need to implement these functions inside of the provider:
getMessageId?: (body: any | any[]) => string[];
parseEventBody?: (
body: any | any[],
identifier: string
) => IEmailEventBody | undefined;
The getMessageId needs to return all identifiers that should be the same value as id that is returned from sendMessage with help of this we can connect a webhook to the specific message.
parseEventBody will get the full webhook body and the current identifier that the body should be parsed for. If there is nothing to parse the method should return undefined.
All returns that is not undefined should be an object that is in this format:
status: string;
date: string;
externalId?: string;
attempts?: number;
response?: string;
// Contains the raw content for message from the provider webhook
row?: string;
Note that statuses for email needs to be value from EmailEventStatusEnum and sms should have a status from SmsEventStatusEnum.
Example of how to do it can be found in SendgridEmailProvider.
Hi, I'm Jarvis 🤖%0A%0AI'm a bot built to help you with your contribution to Novu. %0AI will add instructions and guides on how to run the subset of the Novu platform associated to this issue and make your first contribution.%0A%0AThis issue was tagged as related to @novu/api and the related code is located at the apps/api folder, here is how I can help you:%0A%0A
%0A First time contributing to Novu?%0A%0A If that's the first time you want to contribute to Novu here are a few simple steps to get you started:%0A 1. Fork the repository and clone your fork to your local machine.%0A 2. Install the dependencies using npm run setup:project.%0A 3. Create a new branch with the number of the issue, for example: 1454-fix-something-cool and start contributing based on the Contributing Guide or the short guide in the section below.%0A 4. Create a Pull request and follow the template of creation %0A%0A%0A%0A Run and test @novu/api locally%0A%0A ### Run API in watch mode%0A The easiest way to start the API is to run npm run start:api from the root of the repository%0A%0A ### Run API integration tests%0A To validate your changes or simply to run the e2e tests run npm run start:e2e:api. All the e2e tests have the .e2e.ts suffix and usually are located near the controller files of each module.%0A
Why
To be able to give better answers why a message was not sent to a subscriber we need to get some info from the provider with a webhook. (deliverability status, rejection status etc).
How
To do this we need to implement these functions inside of the provider:
The
getMessageId
needs to return all identifiers that should be the same value as id that is returned fromsendMessage
with help of this we can connect a webhook to the specific message.parseEventBody
will get the full webhook body and the current identifier that the body should be parsed for. If there is nothing to parse the method should returnundefined
.All returns that is not
undefined
should be an object that is in this format:Note that statuses for email needs to be value from
EmailEventStatusEnum
and sms should have a status fromSmsEventStatusEnum.
Example of how to do it can be found in
SendgridEmailProvider
.From SyncLinear.com | NV-1014
The text was updated successfully, but these errors were encountered: