N
Novuβ€’7d ago
artiebay

Multi-tenant + Pushpad for Push Notifications (Active blocker for our development!)

Hey everyone. I work at Bask, which you guys actually have featured in your homepage! We are trying to use Novu as a way to deliver push notifications via Pushpad. But as a white-label application, we have a multi-tenant architecture. To accomplish this, I am planning on the following: - Use a different tenant on Novu for each of our tenants - Add a different Integration in the Integration page, per tenant as well - Each integration links to a different Pushpad Sender/Project (Different ProjectID) To accomplish the above, we need the following: - An API that allows us to create a Tenant without using the Dashboard <- This is essential. I don't see it in the API Reference docs. Any multi-tenant architecture would require an API actually. Impossible to manage manually - An API that allows us create a new integration and set a condition for the tenant <- This looks like it is already supported, but I would appreciate an example for the payload since I don't see it in the API Reference Docs an option for a "Tenant". Also, a couple of additional questions: - Is there a hard cap on how many active "Integrations" we can have? This could be a problem as we have more tenants support push notifications for their users - Is there maybe another to pass the "ProjectID" to Pushpad a different way? Maybe when we call https://api.novu.co/v1/events/trigger we can just specify it in the body somehow. This could be a workaround from the need of tenants and all of the above (Since we internally keep the project/sender id) We could use Webhooks to implement this and forward to Pushpad ourselves / keep push tokens internally. But it would defeat a lot of the purpose of using Novu to broker our user-facing notifications
4 Replies
artiebay
artiebayOPβ€’5d ago
Bump
Pawan Jain
Pawan Jainβ€’2d ago
@artiebay Apologies for delay in response I am looking into these two APIs @artiebay - Checkout this API to create tenant https://v0.x-docs.novu.co/api-reference/tenants/create-tenant - Checkout this curl request to create integration with tenant condition _environmentId is of mongodb id type. Let me know if you need help in finding values for your development and production environment
curl -L -X POST 'https://api.novu.co/v1/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: ApiKey NOVU_SECRET_KEY' \
-d '{
"providerId": "pushpad",
"channel": "push",
"name": "CUSTOM_NAME_OF_INTEGRATION_HERE",
"credentials": {
"apiKey": "PUSHPAD_TOKEN",
"applicationId": "PUSHPAD_PROJECT_ID"
},
"active": true,
"check": false,
"conditions": [
{
"children": [
{
"operator": "EQUAL",
"on": "tenant",
"field": "identifier",
"value": "TENANT_IDENTIFIER_VALUE_HERE"
}
]
}
],
"_environmentId": "ENVIRONMENT_ID"
}'
curl -L -X POST 'https://api.novu.co/v1/integrations' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: ApiKey NOVU_SECRET_KEY' \
-d '{
"providerId": "pushpad",
"channel": "push",
"name": "CUSTOM_NAME_OF_INTEGRATION_HERE",
"credentials": {
"apiKey": "PUSHPAD_TOKEN",
"applicationId": "PUSHPAD_PROJECT_ID"
},
"active": true,
"check": false,
"conditions": [
{
"children": [
{
"operator": "EQUAL",
"on": "tenant",
"field": "identifier",
"value": "TENANT_IDENTIFIER_VALUE_HERE"
}
]
}
],
"_environmentId": "ENVIRONMENT_ID"
}'
- Currently, there is no any limit on number of integrations. Would you like to share approx how many integrations you are going to create? - sending pushpad project id while triggering the workflow: let me know if you need this feature after above configiuration @artiebay Just want to follow up if you have any question
artiebay
artiebayOPβ€’21h ago
@Pawan Jain Thank you πŸ™ . I'm back on working on this today. If I hit a roadblock on the multi-tenant approach I will let you know!
Pawan Jain
Pawan Jainβ€’18h ago
Sure @artiebay πŸ™ŒπŸ»

Did you find this page helpful?