HelloJohn / docs
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")

On this page