Documentation Index
Fetch the complete documentation index at: https://docs.mailglyph.com/llms.txt
Use this file to discover all available pages before exploring further.
Use a secret key client for segments methods.
import (
"context"
"os"
mailglyph "github.com/MailGlyph/mailglyph-go"
)
client := mailglyph.New(os.Getenv("MAILGLYPH_SECRET_KEY"))
ctx := context.Background()
List segments (Segments.List)
segments, err := client.Segments.List(ctx)
if err != nil {
panic(err)
}
println(len(segments))
Create a segment (Segments.Create)
trackMembership := true
segment, err := client.Segments.Create(ctx, &mailglyph.CreateSegmentParams{
Name: "Premium users",
Description: strPtr("Users on paid plans"),
Condition: &mailglyph.FilterCondition{
Logic: "AND",
Groups: []mailglyph.FilterGroup{
{
Filters: []mailglyph.SegmentFilter{
{Field: "data.plan", Operator: "equals", Value: "premium"},
},
},
},
},
TrackMembership: &trackMembership,
})
if err != nil {
panic(err)
}
println(segment.ID, segment.MemberCount)
Get one segment (Segments.Get)
existing, err := client.Segments.Get(ctx, segment.ID)
if err != nil {
panic(err)
}
println(existing.Name)
Update a segment (Segments.Update)
name := "VIP users"
updated, err := client.Segments.Update(ctx, segment.ID, &mailglyph.UpdateSegmentParams{
Name: &name,
Condition: &mailglyph.FilterCondition{
Logic: "AND",
Groups: []mailglyph.FilterGroup{
{
Filters: []mailglyph.SegmentFilter{
{Field: "subscribed", Operator: "equals", Value: true},
},
},
},
},
})
if err != nil {
panic(err)
}
println(updated.Name)
page := 1
pageSize := 20
members, err := client.Segments.ListContacts(ctx, segment.ID, &mailglyph.ListSegmentContactsParams{
Page: &page,
PageSize: &pageSize,
})
if err != nil {
panic(err)
}
println(members.Total, members.Page, len(members.Data))
Delete a segment (Segments.Delete)
if err := client.Segments.Delete(ctx, segment.ID); err != nil {
panic(err)
}
func strPtr(v string) *string { return &v }
See full details in the Segments API reference.