Reference · Tools

Orbit

Manage community members, activities, notes, and posts in an Orbit workspace

Action Analytics v1

The Orbit node manages the objects behind community analytics — members, activities, notes and posts — in an Orbit workspace. A typical build is recording an activity against a member whenever they contribute somewhere your community lives, so engagement is tracked without manual logging.

Node type
Action
Parameters
60
Outputs
Output, Error
Credentials
Orbit API

Orbit

Manage community members, activities, notes, and posts in Orbit

Overview

Orbit was a community analytics and management platform used by developer relations teams to track community engagement across platforms like GitHub, Twitter, Discourse, and email. This tool interacts with the Orbit API to manage members (create/update/delete/lookup by identity), track activities, attach notes, and manage content posts. Note: Orbit was sunset in July 2023 but this tool is provided for archival and compatibility purposes.

Category: Analytics
Tool Name: orbit
Version: 1

Appearance: Icon: lucide-Globe | Color: #6C4DF6

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Orbit API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Activityactivity
Membermember
Notenote
Postpost

Operations

Each resource has its own Operation list, and several resources reuse the same operation values (create, getAll, update, delete). Pick the resource first, then the operation.

ResourceOperationValueDescription
ActivityCreatecreateCreate an activity for a member
ActivityGet ManygetAllGet many activities
MemberCreate or UpdateupsertCreate a new member, or update the current one if it already exists (upsert)
MemberDeletedeleteDelete a member
MemberGetgetGet a member
MemberGet ManygetAllGet many members in a workspace
MemberLookuplookupLookup a member by identity
MemberUpdateupdateUpdate a member
NoteCreatecreateCreate a note
NoteGet ManygetAllGet many notes for a member
NoteUpdateupdateUpdate a note
PostCreatecreateCreate a post
PostGet ManygetAllGet many posts
PostDeletedeleteDelete a post

Parameters

Every operation needs the Workspace — the workspace slug or ID from Orbit’s workspace settings. All fields accept expressions, so IDs and content can come from the incoming item ({{ $json.memberId }}).

Activity: Create

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID. Find in Orbit under workspace settings.
Member IDstringYesThe ID of the member to create the activity for.
TitlestringYesThe activity title.
Additional FieldscollectionNo{}Optional activity properties.
— Activity TypestringNoA user-defined activity type grouping (e.g., “blog_post”, “conference_talk”).
— DescriptionstringNoA description of the activity; displayed in the timeline.
— KeystringNoSupply a key that must be unique or leave blank to have one generated.
— LinkstringNoA URL for the activity; displayed in the timeline.
— Link TextstringNoThe display text for the timeline link.
— Occurred AtdateTimeNoThe date and time the activity occurred; defaults to now.

Activity: Get Many

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the activity list.
— Member IDstringNoWhen set, activities will be filtered by this member ID.

Member: Create or Update

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
IdentityfixedCollectionNo{}The identity is used to find the member. If no member exists, a new member will be created and linked to the provided identity.
— SourceoptionsNoSet to github, twitter, email, discourse or the source of any identities you have manually created.
Options: discourse, email, github, twitter
— Search ByoptionsYesWhether to match the identity on its username or its ID at the source. (shown when Source is discourse, github, twitter)
Options: username, id
— IDstringYesThe unique ID at the source. (shown when Search By is id and Source is discourse, github, twitter)
— UsernamestringYesThe username at the source. (shown when Search By is username and Source is discourse, github, twitter)
— EmailstringYesThe email address that identifies the member. (shown when Source is email)
— HoststringYesThe Discourse host URL. (shown when Source is discourse)
Additional FieldscollectionNo{}Member profile fields to set.
— BiostringNoThe member’s biography.
— BirthdaydateTimeNoThe member’s birthday.
— CompanystringNoThe member’s company.
— LocationstringNoThe member’s location.
— NamestringNoThe member’s display name.
— PronounsstringNoThe member’s pronouns.
— Shipping AddressstringNoThe member’s shipping address.
— SlugstringNoThe member’s slug in Orbit.
— Tags to AddstringNoAdds tags to member; comma-separated string or array.
— Tag ListstringNoReplaces all tags for the member; comma-separated string or array.
— T-ShirtstringNoThe member’s t-shirt size.
— TeammatebooleanNofalseWhether the member is a teammate rather than a community member.
— URLstringNoThe member’s website URL.

Member: Delete

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member to delete.

Member: Get

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member to retrieve.
Resolve IdentitiesbooleanNofalseBy default, the response just includes the reference of the identity. When set to true the identities will be resolved automatically.

Member: Get Many

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
Resolve IdentitiesbooleanNofalseBy default, the response just includes the reference of the identity. When set to true the identities will be resolved automatically.
OptionscollectionNo{}Sorting options for the member list.
— Sort BystringNoName of the field the response will be sorted by.
— Sort DirectionoptionsNoWhether to sort ascending or descending.
Options: ASC, DESC

Member: Lookup

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
SourceoptionsYesSet to github, twitter, email, discourse or the source of any identities you have manually created.
Options: discourse, email, github, twitter
Search ByoptionsYesWhether to search by username or ID at the source. (shown when Source is discourse, github, twitter)
Options: username, id
IDstringYesThe unique ID at the source. (shown when Search By is id and Source is discourse, github, twitter)
UsernamestringYesThe username at the source. (shown when Search By is username and Source is discourse, github, twitter)
EmailstringYesThe email address to look up. (shown when Source is email)
HoststringYesThe Discourse host URL. (shown when Source is discourse)

Member: Update

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member to update.
Update FieldscollectionNo{}Member profile fields to change. Only the fields you add are sent.
— BiostringNoThe member’s biography.
— BirthdaydateTimeNoThe member’s birthday.
— CompanystringNoThe member’s company.
— LocationstringNoThe member’s location.
— NamestringNoThe member’s display name.
— PronounsstringNoThe member’s pronouns.
— Shipping AddressstringNoThe member’s shipping address.
— SlugstringNoThe member’s slug in Orbit.
— Tags to AddstringNoAdds tags to member; comma-separated string or array.
— Tag ListstringNoReplaces all tags for the member; comma-separated string or array.
— T-ShirtstringNoThe member’s t-shirt size.
— TeammatebooleanNofalseWhether the member is a teammate rather than a community member.
— URLstringNoThe member’s website URL.

Note: Create

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member to add the note to.
NotestringYesThe note content.

Note: Get Many

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member whose notes to retrieve.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
Resolve MemberbooleanNofalseWhether to resolve member references to full member objects.

Note: Update

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member.
Note IDstringYesThe ID of the note to update.
NotestringYesThe updated note content.

Post: Create

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member to create the post for.
URLstringYesSupply any URL and Orbit will do its best job to parse out a title, description, and image.
Additional FieldscollectionNo{}Optional post properties.
— Published AtdateTimeNoWhen the post was published.

Post: Get Many

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the post list.
— Member IDstringNoWhen set the posts will be filtered by this member ID.

Post: Delete

ParameterTypeRequiredDefaultDescription
WorkspacestringYesThe workspace slug or ID.
Member IDstringYesThe ID of the member who owns the post.
Post IDstringYesThe ID of the post to delete.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The Orbit response is merged onto the input item’s JSON at the top level — the returned fields sit alongside the fields the item already carried. A response field with the same name as an existing item field overwrites it. Binary data on the input item is forwarded.

Orbit speaks JSON:API, and the two families of operations unwrap it differently:

OperationsOutput
Activity Get Many, Member Get Many, Note Get Many, Post Get ManyOne output item per record. Each record is unwrapped, so the item gains id, type, attributes and relationships at the top level. A page of 50 members becomes 50 output items from one input item, and an empty result produces no output items for that input.
Activity Create, Member Create or Update, Member Get, Member Lookup, Member Update, Note Create, Note Update, Post CreateOne output item carrying the envelope, so the record sits under data — reference it as {{ $json.data.attributes.name }}.
Member Delete, Post DeleteOne output item carrying success: true — these calls confirm the deletion instead of returning a record.

A single record looks like this, whether it arrives at the top level or under data:

{
  "id": "1234",
  "type": "member",
  "attributes": {
    "name": "John Doe",
    "slug": "john-doe",
    "bio": "Full-stack developer",
    "company": "Tech Corp",
    "location": "San Francisco, CA",
    "tags": ["developer", "contributor"],
    "created_at": "2026-01-15T10:30:00.000Z"
  },
  "relationships": {
    "identities": { "data": [] }
  }
}

With Resolve Identities on, Member: Get replaces the identity references inside relationships.identities.data with the full identity objects, so you can read a member’s GitHub or Twitter handle without a second call.

Turning Return All off stops paging once the Limit is reached, so it genuinely reduces the number of requests rather than trimming a full result.

Usage Examples

  • List all members in an Orbit workspace
  • Create a new activity for a community member
  • Look up a member by their GitHub username
  • Add a note to a community member profile
  • Create a post for a member with a URL
  • Delete a member from a workspace

Example Configuration

Record a contribution against a member:

{
  "type": "orbit",
  "parameters": {
    "resource": "activity",
    "operation": "create",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "title": "Contributed to open source project",
    "additionalFields": {
      "activityType": "github_contribution",
      "description": "Added new feature to the main repository",
      "link": "https://github.com/org/repo/pull/123",
      "linkText": "View Pull Request",
      "occurredAt": "2026-01-15T10:30:00Z"
    }
  }
}

List one member’s recent activities:

{
  "type": "orbit",
  "parameters": {
    "resource": "activity",
    "operation": "getAll",
    "workspaceId": "my-workspace",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "memberId": "member_123"
    }
  }
}

Create or update a member from their GitHub identity:

{
  "type": "orbit",
  "parameters": {
    "resource": "member",
    "operation": "upsert",
    "workspaceId": "my-workspace",
    "identityUi": {
      "identityValue": {
        "source": "github",
        "searchBy": "username",
        "username": "{{ $json.githubLogin }}"
      }
    },
    "additionalFields": {
      "name": "John Doe",
      "bio": "Full-stack developer and open source contributor",
      "company": "Tech Corp",
      "location": "San Francisco, CA",
      "url": "https://johndoe.dev",
      "teammate": false
    }
  }
}

Find a member by email address:

{
  "type": "orbit",
  "parameters": {
    "resource": "member",
    "operation": "lookup",
    "workspaceId": "my-workspace",
    "source": "email",
    "email": "john@example.com"
  }
}

Read one member with their identities inlined:

{
  "type": "orbit",
  "parameters": {
    "resource": "member",
    "operation": "get",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "resolveIdentities": true
  }
}

List the newest members first:

{
  "type": "orbit",
  "parameters": {
    "resource": "member",
    "operation": "getAll",
    "workspaceId": "my-workspace",
    "returnAll": false,
    "limit": 100,
    "options": {
      "sort": "created_at",
      "direction": "DESC"
    }
  }
}

Update a member profile:

{
  "type": "orbit",
  "parameters": {
    "resource": "member",
    "operation": "update",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "updateFields": {
      "bio": "Updated biography",
      "company": "New Company Inc",
      "location": "New York, NY",
      "tagsToAdd": "speaker,mentor"
    }
  }
}

Attach an internal note to a member:

{
  "type": "orbit",
  "parameters": {
    "resource": "note",
    "operation": "create",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "note": "Had a great conversation about the new feature roadmap"
  }
}

Revise an existing note:

{
  "type": "orbit",
  "parameters": {
    "resource": "note",
    "operation": "update",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "noteId": "note_456",
    "note": "Updated note content with additional details"
  }
}

Track a member’s blog post:

{
  "type": "orbit",
  "parameters": {
    "resource": "post",
    "operation": "create",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "url": "https://blog.example.com/my-latest-post",
    "additionalFields": {
      "publishedAt": "2026-01-15T14:00:00Z"
    }
  }
}

List every post by one member:

{
  "type": "orbit",
  "parameters": {
    "resource": "post",
    "operation": "getAll",
    "workspaceId": "my-workspace",
    "returnAll": true,
    "filters": {
      "memberId": "member_123"
    }
  }
}

Remove a post:

{
  "type": "orbit",
  "parameters": {
    "resource": "post",
    "operation": "delete",
    "workspaceId": "my-workspace",
    "memberId": "member_123",
    "postId": "post_789"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage community members, activities, notes, and posts in Orbit workspaces for developer relations analytics.

Frequently asked questions

What counts as an activity?

Any interaction you want attributed to a member. Recording them from the systems where your community actually participates is what makes Orbit's analytics meaningful.

What can it manage besides members?

Activities, notes and posts, so both the people and what they did can be maintained from a workflow.

Is this useful for developer relations?

Yes — that is Orbit's core use case, and automating activity capture is usually the difference between a complete picture and a partial one.

Which credential does it need?

An Orbit API credential for the workspace you are managing.

Build with the Orbit node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Orbit API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.