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 |
TopicsApi | Get | Get /topics | Get a list of topics |
TopicsApi | Get | Get /topics/:topicKey | Get a topic by its topic key |
TopicsApi | Post | Post /topics | Create a topic |
TopicsApi | Patch | Patch /topics/:topicKey | Rename a topic |
TopicsApi | Delete | Delete /topics/:topicKey | Delete a topic |
TopicsApi | Post | Post /topics/:topicKey/subscribers | Add subscribers to a topic by key |
TopicsApi | Post | Post /topics/:topicKey/subscribers/removal | Remove subscribers from a topic |
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 |
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
For more information about these methods and their parameters, see the API documentation.
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 |