Novu's API exposes the entire Novu features via a standardized programmatic interface. Please refer to the full documentation to learn more.
Install the package to your GoLang project.
go get github.com/novuhq/go-novu
Please follow the installation procedure and then run the following:
package main
import (
"context"
"fmt"
novu "github.com/novuhq/go-novu/lib"
"log"
)
func main() {
subscriberID := "<<REPLACE_WITH_YOUR_SUBSCRIBER>"
apiKey := "<REPLACE_WITH_YOUR_API_KEY>"
eventId := "<REPLACE_WITH_YOUR_EVENT_ID>"
ctx := context.Background()
to := map[string]interface{}{
"lastName": "Doe",
"firstName": "John",
"subscriberId": subscriberID,
"email": "john@doemail.com",
}
payload := map[string]interface{}{
"name": "Hello World",
"organization": map[string]interface{}{
"logo": "https://happycorp.com/logo.png",
},
}
data := novu.ITriggerPayloadOptions{To: to, Payload: payload}
novuClient := novu.NewAPIClient(apiKey, &novu.Config{})
resp, err := novuClient.EventApi.Trigger(ctx, eventId, data)
if err != nil {
log.Fatal("novu error", err.Error())
return
}
fmt.Println(resp)
// get integrations
integrations, err := novuClient.IntegrationsApi.GetAll(ctx)
if err != nil {
log.Fatal("Get all integrations error: ", err.Error())
}
fmt.Println(integrations)
}
NOTE
Check the cmd
directory to see a sample implementation and test files to see sample tests
Class | Method | HTTP request | Description |
---|---|---|---|
EventApi | Trigger | Post /events/trigger | Trigger |
EventApi | TriggerBulk | Post /v1/events/trigger/bulk | Bulk trigger event |
EventApi | BroadcastToAll | Post /v1/events/trigger/broadcast | Broadcast event to all |
EventApi | CancelTrigger | Delete /v1/events/trigger/:transactionId | Cancel triggered event |
SubscriberApi | Get | Get /subscribers/:subscriberId | Get a subscriber |
SubscriberApi | Identify | Post /subscribers | Create a subscriber |
SubscriberApi | Update | Put /subscribers/:subscriberID | Update subscriber data |
SubscriberApi | Delete | Delete /subscribers/:subscriberID | Removing a subscriber |
SubscriberApi | Get | Get /subscribers/:subscriberId/notifications/feed | Get a notification feed for a particular subscriber |
SubscriberApi | Get | Get /subscribers/:subscriberId/notifications/feed | Get the unseen notification count for subscribers feed |
SubscriberApi | Post | Post /v1/subscribers/:subscriberId/messages/markAs | Mark a subscriber feed message as seen |
SubscriberApi | Get | Get /subscribers/:subscriberId/preferences | Get subscriber preferences |
SubscriberApi | Patch | Patch /subscribers/:subscriberId/preferences/:templateId | Update subscriber preference |
IntegrationsApi | Create | Post /integrations | Create an integration |
IntegrationsApi | Update | Put /integrations/:integrationId | Update an integration |
IntegrationsApi | Delete | Delete /integrations/:integrationId | Delete an integration |
IntegrationsApi | Get | Get /integrations | Get all integrations |
IntegrationsApi | GetActive | Get /integrations/active | Get all active integrations |
IntegrationsApi | SetIntegrationAsPrimary | Post /integrations/{integrationId}/set-primary | Set the integration as primary |
IntegrationsApi | GetChannelLimit | Get /integrations/{channelType}/limit | Get the limits of the channel |
InboundParserApi | Get | Get /inbound-parse/mx/status | Validate the mx record setup for the inbound parse functionality
- Type: API key
- API key parameter name: ApiKey
- Location: HTTP header
Be sure to visit the Novu official documentation website for additional information about our API.
If you find a bug, please post the issue on Github.
As always, if you need additional assistance, join our Discord us a note here.
Name |
---|
Oyewole Samuel |
Dima Grossman |