Skip to main content
Tools Reference

Moovila Perfect Project Tools

Written By Christopher Scaminaci

Last updated 7 days ago

Moovila Perfect Project Tools

moovila_ · 19 tools · Free 19 Moovila Perfect Project portfolio reporting for professional-services teams. The public API is read-only: every operation is a GET, so every tool is Free and none is destructive. The credential is an application client id and secret. The host is fixed and the paths already carry their own prefix. Responses are bare arrays with no envelope, no total and no echo of the paging parameters, so paging ends on a short page; limit defaults to 100 and stops at 1000. Parameter lists differ per operation - some take none at all, and tasks for a project is its own route rather than a filter. Deleted and inactive rows are returned, so filter them or you will overcount. The value is in field depth rather than endpoint count: projects carry a risk score and a forecast date beside the due date, and tasks carry budget against actual plus predecessor and successor flags.

All connector tools · Moovila Perfect Project setup guide

Moovila Perfect Project tool groups

Projects

ToolPlanAccessSummary
moovila_get_phaseFreeRead-onlyGet one project phase by its id (a UUID from moovila_list_phases).
moovila_get_projectFreeRead-onlyGet one project by its id (a UUID from moovila_list_projects).
moovila_get_project_budgetFreeRead-onlyGet the budget rows for ONE project.
moovila_list_phasesFreeRead-onlyList project phases — the stage breakdown that sits between a project and its tasks.
moovila_list_project_budgetsFreeRead-onlyList project budget rows across the portfolio — the financial companion to moovila_list_projects, used to answer 'which projects are over budget?' and 'how much budget is left?'.
moovila_list_projectsFreeRead-onlyList projects across the Moovila Perfect Project portfolio.

[Moovila] Get one project phase by its id (a UUID from moovila_list_phases). Returns the phase's name, dates, status and owning project. Nested values — status and the owning project — are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: phases cannot be created or updated through Moovila's public API.

ParamTypeRequiredDefaultDescription
phaseIdstringyesThe phase id (UUID) from moovila_list_phases.

[Moovila] Get one project by its id (a UUID from moovila_list_projects). Returns the same shape as a row in the list: rpaxScore and rpaxCalculatedDate (Moovila's project RISK score and when it was computed), forecastDate vs dueDate (compare them to see schedule slip), isTemplate / templateProjectID, and the isDeleted / isInactive flags. Nested values — status, priority, customer, ownerUser — are OBJECTS, not flat ids. Both enterpriseID and enterpriseGUID appear; treat both as opaque. Read-only: Moovila's public API exposes no way to update a project.

ParamTypeRequiredDefaultDescription
projectIdstringyesThe project id (UUID) from moovila_list_projects.

[Moovila] Get the budget rows for ONE project. NOTE the id you pass is a PROJECT id (a UUID from moovila_list_projects), not a budget id — this route returns that project's budget(s), so the response may be an array. Use it to answer 'what is the budget for project X and how much is left?'. Nested values such as customer and product are OBJECTS, not flat ids. Read-only: the public API exposes no way to change a budget.

ParamTypeRequiredDefaultDescription
projectIdstringyesThe PROJECT id (UUID) whose budget rows to return — from moovila_list_projects, NOT a budget id.

[Moovila] List project phases — the stage breakdown that sits between a project and its tasks. Use phases to report progress by stage ('which phase is project X in?', 'which phases are running late?') and to group tasks returned by moovila_list_tasks_for_project. Nested values such as status and the owning project are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum).

ParamTypeRequiredDefaultDescription
lastChangedDatestringnonullIncremental-sync filter: return only phases changed since this timestamp ('what changed since X'), far cheaper than re-reading every phase. Omit for a full list.
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

[Moovila] List project budget rows across the portfolio — the financial companion to moovila_list_projects, used to answer 'which projects are over budget?' and 'how much budget is left?'. Pair a budget row with its project via the project id. Nested values such as customer and product are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and should be treated as opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum). Read-only: budgets can be reported on but not changed through the public API.

ParamTypeRequiredDefaultDescription
lastChangedDatestringnonullIncremental-sync filter: return only budget rows changed since this timestamp ('what changed since X'), which is far cheaper than re-reading every budget. Omit for a full list.
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

[Moovila] List projects across the Moovila Perfect Project portfolio. THIS IS THE PRIMARY TOOL FOR PROJECT HEALTH AND RISK. Each project carries rpaxScore — Moovila's proprietary project RISK score, a single number summarising how likely the project is to miss its commitments — together with rpaxCalculatedDate telling you when that score was last computed (a stale rpaxCalculatedDate means the score may not reflect recent changes). To find SCHEDULE SLIP, compare forecastDate against dueDate: a forecastDate later than the dueDate is a project projected to finish late, and the size of the gap is the size of the slip. Use this tool to answer 'which projects are at risk?', 'which projects are slipping?', 'what is our portfolio health?'. TEMPLATES: there is no separate template endpoint — templates are discovered by filtering THIS list on isTemplate == true, and a project instantiated from a template points back via templateProjectID. SOFT DELETES: rows with isDeleted == true and/or isInactive == true ARE STILL RETURNED, so any count of 'active projects' must filter isDeleted == false (and usually isInactive == false) or it will overcount. Nested values are OBJECTS, not flat ids — status, priority, customer and ownerUser each expand to a sub-object, so read status.name rather than expecting a statusId. Both enterpriseID and enterpriseGUID appear; treat both as opaque identifiers. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total, and no echo of the paging parameters — so page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum). READ-ONLY CEILING: Moovila's public API is read-only, so an agent can report on projects but cannot create, update or delete them.

ParamTypeRequiredDefaultDescription
lastChangedDatestringnonullIncremental-sync filter: return only projects changed since this timestamp ('what changed since X'). Far cheaper than re-reading the whole portfolio on every sync. Omit for a full list.
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

Tasks

ToolPlanAccessSummary
moovila_get_taskFreeRead-onlyGet one task by its id (a UUID from moovila_list_tasks or moovila_list_tasks_for_project).
moovila_list_tasksFreeRead-onlyList tasks across the Moovila Perfect Project portfolio — the work-item level beneath projects and phases.
moovila_list_tasks_for_projectFreeRead-onlyList the tasks belonging to ONE project.

[Moovila] Get one task by its id (a UUID from moovila_list_tasks or moovila_list_tasks_for_project). Returns the same shape as a list row: the budget-vs-actual fields totalBudget, totalActual, remainingBudget and workEstimate, the dependency flags hasPredecessors, hasSuccessors and predecessorsComplete (hasPredecessors true with predecessorsComplete false means the task is still blocked), and the isDeleted / isInactive flags. Nested values — status, priority, customer, ownerUser — are OBJECTS, not flat ids. Both enterpriseID and enterpriseGUID appear; treat both as opaque. Read-only: the public API exposes no way to update or complete a task.

ParamTypeRequiredDefaultDescription
taskIdstringyesThe task id (UUID) from moovila_list_tasks or moovila_list_tasks_for_project.

[Moovila] List tasks across the Moovila Perfect Project portfolio — the work-item level beneath projects and phases. BUDGET VS ACTUAL: each task carries totalBudget (what was budgeted), totalActual (what has been consumed), remainingBudget (what is left) and workEstimate (the estimated effort), so this tool answers 'which tasks have burned their budget?' and 'where is effort overrunning the estimate?' without any extra call. DEPENDENCY STRUCTURE: the flags hasPredecessors, hasSuccessors and predecessorsComplete expose how tasks are chained and whether a task is actually unblocked — Moovila's public API has NO critical-path endpoint, so these flags plus the task dates are how an agent reconstructs blocking relationships and finds work that is ready to start (hasPredecessors true with predecessorsComplete false means the task is still blocked). SOFT DELETES: rows with isDeleted == true and/or isInactive == true ARE STILL RETURNED, so any count of 'open' or 'active' tasks must filter isDeleted == false (and usually isInactive == false) or it will overcount. Nested values are OBJECTS, not flat ids — status, priority, customer and ownerUser each expand to a sub-object. Both enterpriseID and enterpriseGUID appear; treat both as opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum). READ-ONLY CEILING: Moovila's public API is read-only, so an agent can report on tasks but cannot create, assign, complete or delete them. To scope to one project use moovila_list_tasks_for_project, which is its own route rather than a filter here.

ParamTypeRequiredDefaultDescription
lastChangedDatestringnonullIncremental-sync filter: return only tasks changed since this timestamp ('what changed since X'). Far cheaper than re-reading every task on each sync. Omit for a full list.
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

[Moovila] List the tasks belonging to ONE project. This is its OWN Moovila route (Task/TasksForProject), NOT a filter on moovila_list_tasks — which is why it takes no lastChangedDate: there is no incremental-sync filter on this route, so for 'what changed since X' across the portfolio use moovila_list_tasks instead. Prefer this tool whenever the question is scoped to a single project, since it avoids paging the whole portfolio. Rows carry the same budget-vs-actual fields (totalBudget, totalActual, remainingBudget, workEstimate) and dependency flags (hasPredecessors, hasSuccessors, predecessorsComplete) as moovila_list_tasks, and the same soft-delete caveat applies: isDeleted / isInactive rows ARE returned, so filter isDeleted == false (and usually isInactive == false) before counting active work. Nested values — status, priority, customer, ownerUser — are OBJECTS, not flat ids; enterpriseID and enterpriseGUID are both opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum).

ParamTypeRequiredDefaultDescription
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.
projectIdstringyesThe project id (UUID) whose tasks to return — from moovila_list_projects.

Time Entries

ToolPlanAccessSummary
moovila_get_time_entryFreeRead-onlyGet one time entry by its id (a UUID from moovila_list_time_entries).
moovila_list_time_entriesFreeRead-onlyList time entries — the logged hours that roll up into a task's totalActual and a project's consumed budget.

[Moovila] Get one time entry by its id (a UUID from moovila_list_time_entries). Returns the logged duration, the date worked, any notes, and the related task/project, user and labor type. Those related values are OBJECTS, not flat ids. Both enterpriseID and enterpriseGUID appear; treat both as opaque. Read-only: the public API exposes no way to edit or approve a time entry.

ParamTypeRequiredDefaultDescription
timeEntryIdstringyesThe time entry id (UUID) from moovila_list_time_entries.

[Moovila] List time entries — the logged hours that roll up into a task's totalActual and a project's consumed budget. Use this to answer 'who worked on what, and for how long?', to reconcile actuals against the budget fields returned by moovila_list_tasks, and to build utilisation or billable-hours reports. Nested values are OBJECTS, not flat ids — the owning task/project, the user who logged the time, the labor type and the customer each expand to a sub-object, so resolve names from those objects rather than expecting flat ids. Both enterpriseID and enterpriseGUID appear; treat both as opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum). Time-entry volume is the highest of any Moovila endpoint, so prefer the lastChangedDate incremental-sync filter over repeatedly paging the full history. READ-ONLY: Moovila's public API cannot log, edit or approve time — an agent can report on hours but not record them.

ParamTypeRequiredDefaultDescription
lastChangedDatestringnonullIncremental-sync filter: return only time entries changed since this timestamp ('what changed since X'). Strongly preferred here — it is far cheaper than re-paging the full time history on every sync. Omit for a full list.
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

Users

ToolPlanAccessSummary
moovila_get_userFreeRead-onlyGet one user by their id (a UUID from moovila_list_users, or from the ownerUser object on a project or the user object on a time entry).
moovila_list_usersFreeRead-onlyList the users in the Moovila Perfect Project account — the people who appear as ownerUser on a project, as the assignee on a task, and as the author of a time entry.

[Moovila] Get one user by their id (a UUID from moovila_list_users, or from the ownerUser object on a project or the user object on a time entry). Returns the user's name, email and account details. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: the public API exposes no way to update a user.

ParamTypeRequiredDefaultDescription
userIdstringyesThe user id (UUID) from moovila_list_users, or from a project's ownerUser object or a time entry's user object.

[Moovila] List the users in the Moovila Perfect Project account — the people who appear as ownerUser on a project, as the assignee on a task, and as the author of a time entry. Use it to resolve a user id seen elsewhere to a name and email, or to build a roster for utilisation reporting. NO INCREMENTAL SYNC: unlike projects, tasks, phases, budgets and time entries, this endpoint accepts NO lastChangedDate filter — there is no 'what changed since X' on users, so a refresh means re-reading the list. Nested values are OBJECTS, not flat ids. Both enterpriseID and enterpriseGUID appear; treat both as opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum). Read-only: Moovila's public API cannot create, update or deactivate users.

ParamTypeRequiredDefaultDescription
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

Lookup Tables

ToolPlanAccessSummary
moovila_get_labor_typeFreeRead-onlyGet one labor type by its id (a UUID from moovila_list_labor_types, or from the labor type object on a time entry).
moovila_get_productFreeRead-onlyGet one product by its id (a UUID from moovila_list_products, or from the product object on a project budget or time entry).
moovila_get_resource_typeFreeRead-onlyGet one resource type by its id (a UUID from moovila_list_resource_types).
moovila_list_labor_typesFreeRead-onlyList the labor types defined in Moovila Perfect Project — the rate/skill categories that time entries are classified under (used to price hours and to group effort by discipline).
moovila_list_productsFreeRead-onlyList the products defined in Moovila Perfect Project — the catalog of billable/deliverable items that project budget rows and time entries reference.
moovila_list_resource_typesFreeRead-onlyList the resource types defined in Moovila Perfect Project — the categories of resource (people, equipment, roles) that project and task assignments are drawn from.

[Moovila] Get one labor type by its id (a UUID from moovila_list_labor_types, or from the labor type object on a time entry). Returns the labor type's name and rate/classification details. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: the public API exposes no way to update a labor type.

ParamTypeRequiredDefaultDescription
laborTypeIdstringyesThe labor type id (UUID) from moovila_list_labor_types, or from a time entry's labor type object.

[Moovila] Get one product by its id (a UUID from moovila_list_products, or from the product object on a project budget or time entry). Returns the product's name and catalog details. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: the public API exposes no way to update a product.

ParamTypeRequiredDefaultDescription
productIdstringyesThe product id (UUID) from moovila_list_products, or from a budget's or time entry's product object.

[Moovila] Get one resource type by its id (a UUID from moovila_list_resource_types). Returns the resource type's name and classification details. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: the public API exposes no way to update a resource type.

ParamTypeRequiredDefaultDescription
resourceTypeIdstringyesThe resource type id (UUID) from moovila_list_resource_types.

[Moovila] List the labor types defined in Moovila Perfect Project — the rate/skill categories that time entries are classified under (used to price hours and to group effort by discipline). NO PARAMETERS AT ALL: this is a small lookup table, so the endpoint accepts no offset, no limit and no lastChangedDate — one call returns the whole table. The response is still a BARE JSON ARRAY with no envelope and no total. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: Moovila's public API cannot create or update labor types.

[Moovila] List the products defined in Moovila Perfect Project — the catalog of billable/deliverable items that project budget rows and time entries reference. Use it to resolve a product id seen on a budget or time entry to a name, or to report revenue and effort grouped by product. NO INCREMENTAL SYNC: this endpoint accepts NO lastChangedDate filter (unlike projects, tasks, phases, budgets and time entries), so a refresh means re-reading the list. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. PAGING: offset/limit, and the response is a BARE JSON ARRAY with no envelope, no total and no echo of the paging parameters — page until a page returns FEWER items than limit. Default limit is 100; StackJack caps limit at 1000 (a StackJack-side cap — the vendor declares no maximum). Read-only: Moovila's public API cannot create or update products.

ParamTypeRequiredDefaultDescription
limitintegernonullRows per page. Default 100; StackJack caps this at 1000 (a StackJack-side cap — Moovila declares no maximum).
offsetintegernonullZero-based offset of the first row to return. Omit for the first page.

[Moovila] List the resource types defined in Moovila Perfect Project — the categories of resource (people, equipment, roles) that project and task assignments are drawn from. NO PARAMETERS AT ALL: this is a small lookup table, so the endpoint accepts no offset, no limit and no lastChangedDate — one call returns the whole table. The response is still a BARE JSON ARRAY with no envelope and no total. Nested values are OBJECTS, not flat ids; both enterpriseID and enterpriseGUID appear and are opaque. Read-only: Moovila's public API cannot create or update resource types.