SDKsGo SDK
Organizations
Manage organizations with the HelloJohn Go SDK — create, update, list members, and manage invitations.
Organizations
The Go SDK provides an Organizations service for managing organizations and their members.
hj := hellojohn.New(hellojohn.Config{
TenantID: os.Getenv("HELLOJOHN_TENANT_ID"),
SecretKey: os.Getenv("HELLOJOHN_SECRET_KEY"),
})Create an Organization
org, err := hj.Organizations.Create(ctx, hellojohn.CreateOrgParams{
Name: "Acme Corp",
OwnerID: "usr_01HABCDEF123456",
Metadata: map[string]interface{}{
"plan": "enterprise",
},
})Get an Organization
// By ID
org, err := hj.Organizations.Get(ctx, "org_01HABCDEF000001")
// By slug
org, err := hj.Organizations.GetBySlug(ctx, "acme-corp")Update an Organization
_, err := hj.Organizations.Update(ctx, "org_01HABCDEF000001",
hellojohn.UpdateOrgParams{
Name: "Acme Corporation",
},
)Members
List Members
result, err := hj.Organizations.ListMembers(ctx, "org_01HABCDEF000001")
for _, m := range result.Members {
fmt.Printf("%s — role: %s\n", m.User.Email, m.Role)
}Add a Member
err := hj.Organizations.AddMember(ctx, "org_01HABCDEF000001",
hellojohn.AddMemberParams{
UserID: "usr_01HABCDEF234567",
Role: "member",
},
)Update Role
err := hj.Organizations.UpdateMemberRole(ctx,
"org_01HABCDEF000001",
"usr_01HABCDEF234567",
"admin",
)Remove Member
err := hj.Organizations.RemoveMember(ctx,
"org_01HABCDEF000001",
"usr_01HABCDEF234567",
)Invitations
Invite by Email
inv, err := hj.Organizations.InviteMember(ctx, "org_01HABCDEF000001",
hellojohn.InviteParams{
Email: "newmember@example.com",
Role: "member",
RedirectTo: "https://app.example.com/accept",
},
)List Invitations
result, err := hj.Organizations.ListInvitations(ctx, "org_01HABCDEF000001")Revoke Invitation
err := hj.Organizations.RevokeInvitation(ctx,
"org_01HABCDEF000001",
"inv_01HABCDEF999999",
)Delete an Organization
err := hj.Organizations.Delete(ctx, "org_01HABCDEF000001")