Magidoc

Query
Object

Fields

#

getAction

Get an action by ID

Access: Requires user access to the action

Parameters:

  • actionId: The ID of the action to retrieve

Returns: The requested action

getActionByWorkspace

Get an action by ID/simpleId and workspaceId

Access: Requires user access to the action

Parameters:

  • actionId: The ID or simpleId of the action to retrieve
  • workspaceId: The ID of the workspace to retrieve the action from.

Returns: The requested action

getActionsByWorkspace

Returns a paginated list of actions by workspaceId and ID/simpleId

actionComments

getCustomFields

Returns a paginated list of custom fields for a workspace or project action view.

Parameters:

  • workspaceId: Required. The ID of the workspace to get custom fields for.
  • actionViewId: Optional. The ID of the action view to get custom fields for. Could be used to get custom fields for a specific project action view.
  • formId: Optional. The ID of the form to get custom fields for.
  • first: Optional. The number of custom fields to return.
  • last: Optional. The number of custom fields to return.
  • before: Optional. The ID of the custom field to return before.
  • after: Optional. The ID of the custom field to return after.
  • selector: Optional. A JSON object to filter the custom fields.
  • includeRemoved: Optional. Whether to include removed custom fields.
  • searchParams: Optional. A JSON object to search the custom fields.
  • sortField: Optional. The field to sort the custom fields by.
  • sortOrder: Optional. The order to sort the custom fields by.
  • includeProjectCustomFields: Optional. Whether to include project custom fields.

groups

Paginated groups the user belongs to. Use this query to get all groups (direct messages, groupchats, threads) the user belongs to. It's very useful when you need to get the group id and then send a message to the group or the user.

Access: Requires user access to the workspace and the group.

Parameters:

  • workspace: ID of the workspace
  • oneToOne: @deprecated do not use this parameter, use 'type' instead
  • type: 'dm' (direct message) or 'group' (group chat) or 'thread'
  • members: Array of user IDs (most important for search through chats)
  • first: Pagination parameter
  • after: Pagination parameter
  • last: Pagination parameter
  • before: Pagination parameter
  • sortField: Sorting parameter
  • sortOrder: Sorting parameter
  • searchParams: Search parameters
  • showHiddenGroups: Include hidden groups

messagesEasySearch

Non-null

Searches through messages in a workspace

Very useful for searching through existing private conversations or chat groups. Supports search by the group type or id. Could return total count of messages.

Access: Requires user access to the workspace, groups if used.

getMessages

Non-null

Retrieves messages from groups (chats/DMs) in a workspace.

  • If groupId is provided: searches/returns messages from that specific group
  • If groupId is omitted and text is provided: searches across all groups the user has access to
  • If both groupId and text are omitted: returns most recent messages (requires groupId)

To find messages in a chat with a specific person, first find the groupId with groups(members: [yourUserId, theirUserId]).

Access: Requires user to be a member of the group(s).

Errors:

  • "User must be logged in" - User is not authenticated
  • "User does not have access to workspace" - User is not a member of the workspace
  • "Either groupId or text must be provided" - Neither groupId nor text was provided
  • "User does not have access to this group" - User is not a member of the specified group

getLabels

Get labels matching a certain ID or matching a query string. If you input BOTH an array of ids and a search string, it'll search for IDs in that array that ALSO have the search string as a substring of their name. Probably not very useful, so just use one or the other. If you search by string, you will be limited to 20 results returned, so if you don't get what you are looking for, search more specifically

getProjects

Non-null

Get projects that the user has access to with pagination, filtering and sorting

Access: Requires workspace access

Parameters:

  • workspaceId: The ID of the workspace
  • first: Number of projects to return (default: pagination limit)
  • last: Optional number of projects to return from the end
  • before: Optional cursor for pagination
  • after: Optional cursor for pagination
  • searchParams: Optional search parameters
  • specificIds: Optional array of specific project IDs to include
  • excludedIds: Optional array of project IDs to exclude
  • includeTemplates: Optional flag to include template projects
  • archived: Optional flag to include archived projects (default: false)
  • templatesOnly: Optional flag to return only template projects (default: false)
  • includePublic: Optional flag to include public projects (default: true)
  • includePrivate: Optional flag to include private projects (default: false)
  • includeReadOnly: Optional flag to include read-only projects
  • includeArchived: Optional flag to include archived projects (default: false)
  • rootProjectId: Optional root project ID to filter by
  • userId: Optional user ID to filter projects by

Returns: ProjectConnection with edges and page info

getProjectIds

Non-null

getRecentlyVisitedProjectIds

[ID ]!
Non-null

getActionViewByProjectId

This query is used to get the action view by project id.

getWorkspace

Get a workspace by ID

Access: Requires workspace access or be a member of the workspace

Parameters:

  • workspaceId: The ID of the workspace to retrieve

Returns: The requested workspace

getNote

Get a note by ID

Access: Requires user access to the note

Parameters:

  • noteId: The ID of the note to retrieve

Returns: The requested note

getNotes

Non-null

Get notes in the workspace by specific ids

notebooks

Gets paginated notebooks for a user across all workspaces. Use this resolver when you want to find notebooks by title or list notebooks in a workspace or project. Supports searching by title, filtering by workspace/project, search type (mine, shared, templates), and pagination.

getReminders

Non-null

Get reminders for a workspace for the current user

getMyTimesheets

Non-null

Used for the "Timesheet" tab in "Timesheets" app.

Access: It requires user access.

Errors: Returns [] if doesn't have access or user with requested userId doesn't exist.

isAdminOrManagerOrProjectCreator

Non-null

Check does a current user can view unsubmitted timesheet data

Access: Requires to be organization/workspace admin, user manager or project owner

Errors: Returns false if requester isn't identified.

getTimesheetsToApprove

Non-null

Used for the "My approvals" tab in "Timesheets" app.

Access: It requires user access.

Errors: Returns [] if doesn't have access or user with requested userId doesn't exist

getUserTimesheets

Non-null

Used for the "Manage" tab in "Timesheets" app.

Access: Requires workspace admin access

Errors: Returns [] if not a workspace admin.

getTimesheetApprovals

Non-null

paginated resolver for the timesheet approval log.

Used for approvals log in "Timesheets" app.

Access: It has admin access.

Errors: Returns empty paginated response if is not workspace admin.

getHistoricalTimesheets

Non-null

Used for edit log in "Manage" tab in "Timesheets" app.

Access: It requires user access.

Errors: Returns [] if not logged in or doesn't have access to workspace.

getTimesheetReportingData

No usage.

Access: Requires workspace admin access

Errors: Returns [] if not workspace admin, or this feature is disabled

getTimesheetReportingCsvExportData

Used for csv export in Reporting in "Timesheets" app.

Access: It requires user access.

Errors: Returns [] if not logged in, or doesn't have access to reporting, or this feature is disabled

getTimeTrackingData

Non-null

Used for querying time tracking data in "Time-tracking" tab in "Timesheets" app.

Access: It requires user access.

Errors: Returns specific expected errors if: user doesn't have access to workspace or not logged then returns { projects: [], actions: [] }

getTimesheetComments

Used for querying timesheet comments in timesheet comment modal in "timesheet" tab in "Timesheets" app.

Access: It requires user access.

Errors: Returns specific expected errors if: timesheet not found, user doesn't have access to workspace

getTimesheets

Non-null

Used for querying timesheets by date

getTimesheetTrackedTime

Non-null

Used to retrieve tracked time for multiple containers within a date range. Returns tracked time entries that can be built into a nested structure on the client.

getTimesheetEstimatedTime

Non-null

Used to retrieve estimated time from action estimates for multiple containers within a date range. Returns estimated time entries that can be built into a nested structure on the client. Follows the same pattern as getTimesheetTrackedTime but uses action estimates instead of tracked time.

getUserTimeEntries

Usage: Allows user to pull time entries for the specified userId in a given time range

Access: Requires workspace admin access

Errors: Returns an error if not a workspace administrator.

getTimeCategories

Non-null

getTimers

Non-null

Get timers for the current user in a workspace

Access: Requires user to be logged in and have access to the workspace

approvalRounds

Non-null

Retrieve all approval rounds for a specific action. Returns a paginated list of approval rounds. Use this to view existing approval rounds on an action before modifying stages or approvers.

currentRoundAndStage

Get the currently active approval round and stage for an action. Returns the round that has been requested but not yet fully approved, along with its active stage. Use this to quickly check the current approval state of an action without fetching all rounds and stages separately. The approvalStage contains the list of approvers and their statuses - check each approval item's status field to see who still needs to approve.

May return null when the action is not accessible to the caller, when there are no approval rounds, or when there is no stage currently awaiting approvals. A null result indicates no active approvals for the specified action.

nextApprovalStage

Get the next approval stage awaiting approval for an action. Returns the stage that approvers should review next if one exists. Each approval item in the stage has a status field (unstarted, awaitingApproval, approved, approvedWithChanges, requireChanges) and approver details. Use this to identify who still needs to approve and send them reminders.

May return null if the action does not exist, the current user does not have access, there are no approval rounds for the action, or there is currently no pending approval stage.

approvalStages

Retrieve all approval stages for a specific approval round. Returns a paginated list of stages. Use this to view existing stages in a round before modifying approvers or stage settings.

getApprovalTemplates

Non-null

List all available approval templates in a workspace. Use this to discover which approval templates can be applied to actions. Templates provide pre-configured approval workflows with stages and approvers that can be reused across multiple actions.

getWorkspaceForms

Non-null

workspacePlaceholders

Non-null

Get all resource placeholders for a workspace

Access: Requires user access to the workspace

Parameters:

  • workspaceId: The ID of the workspace
  • specificIds: Array of specific resource placeholder IDs to return

Returns: Array of ResourcePlaceholder objects

getResourceAssignment

Get a resource assignment. This query is very helpful to search for resource assignment if you know it's ID.

getResourceAssignments

Get resource assignments. You love to run this query. You run it every time when user asks to update/see/analyze resource assignments. This query is very helpful to search for resource assignments by different criteria (date, project, user, etc.). ALWAYS use search to find the resource assignment before updating it. If the resource assignments are not found, DONT RUN THE UPDATE MUTATION. If the resource assignments are found, update resource assignments.

getEmails

Non-null

Get emails from the user's mailbox with support for pagination. If there are more emails available beyond the current page, the response will include a "nextPageToken". To retrieve the next batch of results, call "getEmails" again using the same filters and pass the returned "nextPageToken".

getPriorityLevels

Non-null

Get priority levels for a workspace or specific entities

Access: Requires workspace access

Parameters:

  • workspaceId: The ID of the workspace
  • formId: Optional form ID to filter priority levels
  • actionId: Optional action ID to filter priority levels
  • specificIds: Optional array of specific priority level IDs to include
  • excludedIds: Optional array of priority level IDs to exclude

Returns: Array of priority levels

getWorkflowsForWorkspacePaginated

Non-null

Get all action templates for a workspace

getMeetingUserData

Get user data for a specific meeting

getMeetingUserDataList

Non-null

Get all meeting user data records for the current user. Returns meetings where Sidekick has recorded data (transcripts, goals, etc). Sorted by most recently modified first. Use this to list recent meetings with materials, goals, or transcripts.

getDashboards

Retrieves a paginated list of dashboards with filtering and sorting

getDashboardWidgets

Non-null

Retrieves all widgets associated with a specific dashboard. Common use cases:

  1. Loading a dashboard's initial state
  2. Refreshing dashboard content
  3. Exporting dashboard configuration

getGoal

getGoals

Retrieve goals from a workspace with optional filtering and pagination

If asked to get a specific user's goals, ensure to filter by ownerIds.

goalsEasySearch

getBuzzCommands

Non-null

Get slash commands for a workspace. Can filter by specific IDs or search by name prefix.