Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ACCELO_SCOPENoOAuth2 scope; defaults to read(all). Add write access explicitly, e.g. read(all),write(all), only if you need the write tools.read(all)
ACCELO_MCP_PORTNoPort used by the SSE transport.3000
ACCELO_AUTH_TYPENoAuthentication type: web, service, installed, or public. Defaults to web.web
ACCELO_CLIENT_IDYesOAuth2 client ID from an Accelo application
ACCELO_DEPLOYMENTYesDeployment prefix, such as `example` for `example.accelo.com`
ACCELO_REDIRECT_URINoLocal OAuth callback URL. Optional for web (defaults to http://localhost:9876/callback); required for public with no default. Must exactly match the redirect URI registered on the Accelo application.
ACCELO_CLIENT_SECRETNoOAuth2 client secret; not required for public PKCE applications

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
accelo_get_contextA

Get the Accelo object model, relationships, and query guide.

Call this FIRST before making complex queries. Returns:

  • Object hierarchy (how companies, jobs, issues, tasks, etc. relate)

  • The 'against' pattern (how objects link to their parents)

  • How to resolve any activity back to its company

  • Field selection syntax (_fields parameter)

  • Filtering and pagination conventions

  • Common query patterns (time by staff, issues by company, etc.)

This context enables you to correctly traverse relationships and construct multi-step queries across the Accelo data model.

accelo_list_companiesA

List companies from Accelo with optional filtering, field selection, and search.

Args: filters: Filter dict. Supported keys: id, status, standing, manager_id, custom_id, website, contact_number, postal_address, default_affiliation, date_created_before/after, date_modified_before/after, order_by_asc/desc (id, name, date_created, date_modified, standing, status) fields: Additional fields to return, e.g. "website,phone,postal_address(city)", "_ALL" search: Search over website, name, phone, fax page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_companyC

Get a single company by ID.

Args: id: Company ID fields: Additional fields to return, e.g. "website,phone,postal_address(city)"

accelo_count_companiesC

Count companies matching the given filters.

Args: filters: Same filters as accelo_list_companies search: Search over website, name, phone, fax

accelo_create_companyA

Create a new company in Accelo.

Args: name: Company name (required) website: Company website URL phone: Phone number fax: Fax number comments: Notes about the company status_id: Initial status ID standing: Initial standing (overridden by status_id if both provided) parent_id: Parent company ID custom_id: Custom identifier fields: Additional fields to return in response

accelo_update_companyC

Update an existing company.

Args: id: Company ID (required) name: New company name website: New website URL phone: New phone number fax: New fax number comments: New comments fields: Additional fields to return in response

accelo_delete_companyC

Delete a company from Accelo.

Args: id: Company ID to delete

accelo_list_company_managersB

List the managers (staff) of a company.

Args: company_id: Company ID fields: Additional fields on the returned staff objects page: Page number (0-indexed) limit: Results per page (max 100)

accelo_add_company_managerB

Add a staff member as a manager of a company.

Args: company_id: Company ID manager_id: staff_id of the staff member to set as manager (required) nature: Relationship nature — "professional" (default), "confidential", or "private"

accelo_remove_company_managerA

Remove a manager from a company.

Identified by the manager relationship's relationship_id (NOT the staff_id), because a staff member can have multiple manager relationships with one company. Get the relationship_id from accelo_list_company_managers.

Args: company_id: Company ID relationship_id: The relationship_id of the manager record to remove

accelo_list_contactsB

List contacts from Accelo.

Args: filters: Filter dict. Keys: id, email, title, standing, affiliation, status, username, contact_number, date_created/modified_before/after, order_by_asc/desc (id, fullname, firstname, surname, date_modified, etc.) fields: Additional fields, e.g. "default_affiliation(),comments" search: Search over firstname, surname, email page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_contactC

Get a single contact by ID.

Args: id: Contact ID fields: Additional fields to return

accelo_count_contactsC

Count contacts matching the given filters.

accelo_create_contactB

Create a new contact (also creates an affiliation to the company).

Args: firstname: First name (required) surname: Surname (required) company_id: Company to affiliate with (required) email: Email address phone: Phone number mobile: Mobile number position: Job position/title at the company title: Honorific (Mr, Ms, etc.) fields: Additional fields to return

accelo_update_contactB

Update an existing contact.

Args: id: Contact ID (required) firstname: New first name surname: New surname title: New honorific comments: New comments status: New status ID fields: Additional fields to return

accelo_deactivate_contactA

Deactivate a contact (set standing to inactive).

This does NOT delete the contact — the Accelo API has no contact-delete operation; it only sets the contact's standing to "inactive". Takes no other parameters.

Args: id: Contact ID to deactivate

accelo_list_affiliationsA

List affiliations (contact-company links) from Accelo.

An affiliation links a Contact to a Company and holds contact details (email, phone, position) for that relationship. A contact can have multiple affiliations (one per company they work with). Affiliations are referenced by issues, prospects, and invoices to identify the client contact. affiliation.company_id → Company, affiliation.contact_id → Contact.

Args: filters: Filter dict. Keys: id, email, standing, status, company, contact, postal_address, physical_address, contact_number, invoice_method, date_created/modified/last_interacted_before/after, order_by_asc/desc fields: Additional fields, e.g. "company(),contact(),position" search: Search over firstname, surname, fax, phone, mobile, email page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_affiliationC

Get a single affiliation by ID.

Args: id: Affiliation ID fields: Additional fields to return

accelo_count_affiliationsC

Count affiliations matching the given filters.

accelo_create_affiliationB

Create a new affiliation (link a contact to a company).

Args: company_id: Company ID (required) contact_id: Contact ID (required) email: Email for this affiliation phone: Phone for this affiliation mobile: Mobile for this affiliation position: Position at the company fields: Additional fields to return

accelo_update_affiliationC

Update an existing affiliation.

Args: id: Affiliation ID (required) email: New email phone: New phone mobile: New mobile position: New position standing: New standing fields: Additional fields to return

accelo_delete_affiliationA

Delete an affiliation.

Args: id: Affiliation ID to delete

accelo_list_activitiesA

List activities (notes, emails, calls, meetings) from Accelo.

Activities track all communication and time logging. Each activity is recorded 'against' an object (company, job, issue, task, milestone, contract, prospect). To find which company an activity belongs to, resolve via against_type:

  • company → direct

  • job/issue → get object → against_id (company)

  • task/milestone → get object → parent job → company

  • contract/contract_period → get contract → against_id (company)

  • affiliation → get affiliation → company_id

Use fields="against()" to expand the against object inline.

SUBJECT/TEXT SEARCH IS NOT SUPPORTED. Accelo's GET /activities endpoint does NOT honour the _search parameter and exposes NO subject/body filter — passing search (or a subject filter) is silently ignored upstream and returns the deployment's earliest unrelated activities, not matches. This tool therefore rejects search up front rather than issuing a misleading query. To find an activity by subject you MUST narrow scope first, then match the subject client-side over the (small) returned set:

  1. accelo_list_thread_activities(thread_id=...) — the containing email/note thread

  2. accelo_list_activities(filters={"against": {"prospect": [ID]}}) or filters={"against_type": "...", "against_id": ...} — scope to one object

  3. accelo_run_filter(...) — a saved activity filter, if one exists There is no global body/subject text search across all activities.

Args: filters: Filter dict. Keys: id, parent_id, thread_id, against_type, against_id, owner_id, owner_type, medium, visibility, staff, activity_class, activity_priority, task, time_allocation, date_created/logged/started/ended_before/after, order_by_asc/desc. NOTE: there is no subject filter — Accelo does not support one. fields: Additional fields, e.g. "body,staff(),medium,interacts" search: NOT SUPPORTED — Accelo's /activities endpoint ignores _search. Passing a value returns a structured error instead of a silently unfiltered result set. See the tool description for the correct subject-lookup workflow. page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_activityC

Get a single activity by ID.

Args: id: Activity ID fields: Additional fields to return, e.g. "body,owner(),against()"

accelo_count_activitiesC

Count activities matching the given filters.

accelo_create_activityB

Create a new activity (note, email, call, or meeting).

Args: subject: Activity subject (required) against_type: Object type to create against (required). E.g. company, job, issue, staff, task against_id: ID of the object to create against (required) body: Activity body/content medium: Type — 'note', 'meeting', 'email', or 'call' (default: note) priority_id: Priority ID class_id: Activity class ID owner_type: Owner type ('staff' or 'affiliation') owner_id: Owner ID (staff_id or affiliation_id) billable: Billable time in seconds nonbillable: Non-billable time in seconds fields: Additional fields to return

accelo_update_activityB

Update an existing activity.

Args: id: Activity ID (required) subject: New subject (only if owner) body: New body (only if owner) visibility: New visibility priority_id: New priority ID billable: Billable time in seconds nonbillable: Non-billable time in seconds fields: Additional fields to return

accelo_delete_activityC

Delete an activity.

Args: id: Activity ID to delete

accelo_list_interactionsA

List the interactions (senders/recipients) on a single activity.

An interaction is a sender or recipient of an activity — a staff member or contact with a role of creator/from/to/cc/bcc/attendee/did_not_attend. The response contains a "staff" array and a "contacts" array; each object carries an interact sub-object with the interaction id, date_actioned, and type.

Args: id: Activity ID fields: Additional fields on the returned staff/contact objects

accelo_count_interactionsC

Count the interactions on a single activity.

Args: id: Activity ID

accelo_get_activity_time_allocatedA

Get aggregate time allocated across a set of activities.

Returns the summed billable/nonbillable seconds and total charged for the activities matched by the filters. This is an AGGREGATION over a collection (endpoint GET /activities/allocations), NOT a single activity's allocation — pass the same filters accepted by accelo_list_activities to scope the set (e.g. {"staff": 14, "date_logged_after": 1690000000}).

Args: filters: Same filter dict as accelo_list_activities (staff, against_type, against_id, date_logged_before/after, etc.)

accelo_list_activity_threadsA

List activity threads from Accelo.

A thread groups an original activity with the activities sent in response to it (e.g. an email and its replies). Each thread carries the original activity's id, an event_text, a total_activities count, and the most recent activity in the thread.

Args: filters: Filter dict. Keys: against_type + against_id (must be supplied together — restrict to threads whose original activity is against that object), staff_involved (staff_id), scope ("internal"/"external"), date_logged_before/after fields: Additional fields on the activities listed in each thread page: Page number (0-indexed) limit: Results per page (max 100)

accelo_count_activity_threadsC

Count activity threads matching the given filters.

accelo_list_thread_activitiesB

List all activities within a single thread.

Args: thread_id: The thread's ID (the activity_id of the original activity in the thread — see the thread/thread_id field on any activity) fields: Additional fields, e.g. "thread,parent" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_list_issuesA

List issues (tickets) from Accelo.

Issues are 'against' a company or a job. To find the company:

  • If against_type="company": against_id IS the company_id

  • If against_type="job": get job → against_id (company_id) Issues have an assignee (staff), affiliation (client contact), class, and priority.

Args: filters: Filter dict. Keys: id, standing, custom_id, against_type, against_id, status, issue_type, affiliation, class, issue_priority, assignee, date_created/started/due/modified/closed_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,resolution_detail,assignee()" search: Search over subject page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_issueC

Get a single issue (ticket) by ID.

Args: id: Issue ID fields: Additional fields to return

accelo_count_issuesC

Count issues matching the given filters.

accelo_create_issueB

Create a new issue (ticket).

Args: title: Issue title (required) type_id: Issue type ID (required) against_type: Object type (required) — e.g. company, job against_id: Object ID (required) description: Issue description status_id: Initial status ID class_id: Issue class ID assignee: Staff ID to assign priority_id: Priority ID affiliation_id: Affiliation ID date_started: Start date (unix timestamp) date_due: Due date (unix timestamp) fields: Additional fields to return

accelo_update_issueB

Update an existing issue.

Args: id: Issue ID (required) title: New title description: New description status_id: New status ID (bypasses progressions) class_id: New class ID assignee: New assignee staff ID priority_id: New priority ID date_due: New due date (unix timestamp) resolution_detail: Resolution details fields: Additional fields to return

accelo_delete_issueC

Delete an issue.

Args: id: Issue ID to delete

accelo_list_jobsA

List jobs (projects) from Accelo.

Jobs are always 'against' a company (against_type="company", against_id=company_id). Jobs contain milestones (phases) which contain tasks. To find a job's company, the against_id IS the company_id. Use fields="company(),manager()" to expand inline.

Args: filters: Filter dict. Keys: id, standing, against_type, against_id, paused, job_type, manager, modified_by, status, rate, date_created/started/due/modified/commenced_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),company(),job_type()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_jobC

Get a single job (project) by ID.

Args: id: Job ID fields: Additional fields to return

accelo_count_jobsC

Count jobs matching the given filters.

accelo_create_jobC

Create a new job (project).

Args: title: Job title (required) against_type: Object type (required) against_id: Object ID (required) manager_id: Staff ID for manager (required) type_id: Job type ID (required) status_id: Initial status ID date_due: Due date (unix timestamp) date_started: Start date (unix timestamp) affiliation_id: Affiliation ID fields: Additional fields to return

accelo_update_jobB

Update an existing job.

Args: id: Job ID (required) title: New title manager_id: New manager staff ID status_id: New status ID date_due: New due date (unix timestamp) affiliation_id: New affiliation ID fields: Additional fields to return

accelo_delete_jobB

Delete a job.

Args: id: Job ID to delete

accelo_list_tasksA

List tasks from Accelo.

Tasks are 'against' a job, milestone, or issue. To find the company:

  • against_type="job": get job → against_id (company)

  • against_type="milestone": get milestone → job_id → job → company

  • against_type="issue": get issue → resolve to company (see issues) Use child_of_job filter to find all tasks under a job (including via milestones).

Args: filters: Filter dict. Keys: id, assignee, manager, task_status, standing, against_type, against_id, custom_id, child_of_job, rate_id, date_created/started/due/completed/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,assignee(),manager()" search: Search over description, title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_taskC

Get a single task by ID.

Args: id: Task ID fields: Additional fields to return

accelo_count_tasksC

Count tasks matching the given filters.

accelo_create_taskC

Create a new task.

Args: title: Task title (required) against_type: Object type (required) — e.g. job, milestone, issue against_id: Object ID (required) date_started: Start date as unix timestamp (required) description: Task description assignee_id: Staff ID to assign manager_id: Staff ID for manager date_due: Due date (unix timestamp) priority_id: Priority ID status_id: Initial status ID remaining: Budgeted time remaining in seconds fields: Additional fields to return

accelo_update_taskB

Update an existing task.

Args: id: Task ID (required) title: New title description: New description assignee_id: New assignee staff ID manager_id: New manager staff ID date_due: New due date (unix timestamp) priority_id: New priority ID remaining: New remaining time in seconds fields: Additional fields to return

accelo_progress_task_to_startC

Auto-progress a task's status to "start" (mark it started).

Args: id: Task ID

accelo_progress_task_to_doneC

Auto-progress a task's status to "done" (mark it complete).

Args: id: Task ID

accelo_list_contractsA

List contracts (retainers) from Accelo.

Contracts are always 'against' a company (against_type="company"). Each contract has billing periods (contract_periods). To find a contract's company: the against_id IS the company_id. Use fields="company()" to expand the company inline.

Contract periods link back via contract_id. To resolve a contract_period to its company: get period → contract_id → get contract → against_id.

Args: filters: Filter dict. Keys: id, standing, contract_type, manager, billable_affiliation, status, against_type, against_id, date_created/started/expired_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),company(),contract_type()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_contractC

Get a single contract by ID.

Args: id: Contract ID fields: Additional fields to return

accelo_count_contractsC

Count contracts matching the given filters.

accelo_list_contract_periodsA

List contract periods for a specific contract.

Contract periods are billing intervals within a contract (retainer). Each has a budget, allowance type, and rate. To find the company: period → contract_id → get contract → against_id (company_id).

Args: contract_id: Contract ID (required) — the parent contract filters: Filter dict. Keys: id, standing, budget_type, allowance_type, rate_type, rate, service_item, duration_type, rollover, contract_budget, date_created/commenced/expires/closed_before/after, order_by_asc/desc (id, date_created, date_commenced, date_expires, date_closed) fields: Additional fields, e.g. "contract_budget(),rate()" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_contract_periodB

Get a single contract period by ID.

Args: id: Contract Period ID fields: Additional fields to return

accelo_close_contract_periodA

Close a contract period.

WARNING: This replicates the actions taken when closing a period via the Web App, including auto-completing linked issues/tickets if the contract is configured for it, and triggering invoicing.

Args: id: Contract Period ID to close fields: Additional fields to return

accelo_reopen_contract_periodC

Reopen a previously closed contract period.

Args: id: Contract Period ID to reopen fields: Additional fields to return

accelo_list_prospectsA

List prospects (sales) from Accelo.

Prospects link to a company via affiliation_id → get affiliation → company_id. Use fields="affiliation()" to expand the client contact, or filter by company directly with the 'company' filter.

Args: filters: Filter dict. Keys: id, standing, weighting, success, affiliation, manager, prospect_type, status, prospect_probability, company, date_created/due/actioned_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),affiliation(),value" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_prospectC

Get a single prospect (sale) by ID.

Args: id: Prospect ID fields: Additional fields to return

accelo_count_prospectsC

Count prospects matching the given filters.

accelo_create_prospectB

Create a new prospect (sale).

Args: title: Prospect title (required) affiliation_id: Affiliation ID (required) type_id: Prospect type ID (required) value: Monetary value staff_id: Manager staff ID date_due: Due date (unix timestamp) weighting: Weighting 0-5 status_id: Initial status ID fields: Additional fields to return

accelo_update_prospectB

Update an existing prospect.

Args: id: Prospect ID (required) title: New title value: New value staff_id: New manager staff ID date_due: New due date (unix timestamp) weighting: New weighting (0-5) progress: New progress (0-100) status_id: New status ID (bypasses progressions) fields: Additional fields to return

accelo_delete_prospectC

Delete a prospect.

Args: id: Prospect ID to delete

accelo_list_staffB

List staff members from Accelo.

Args: filters: Filter dict. Keys: id, email, standing, username fields: Additional fields, e.g. "email,title,mobile" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_staffB

Get a single staff member by ID.

Args: id: Staff ID fields: Additional fields to return

accelo_get_current_staffA

Get the currently authenticated staff member (whoami).

Useful for verifying authentication is working. Returns the staff member associated with the current OAuth token.

Args: fields: Additional fields to return

accelo_count_staffC

Count staff members matching the given filters.

accelo_list_staff_membershipsB

List staff group memberships from Accelo.

Each membership links a staff member to a group.

Args: filters: Filter dict. Keys: id, staff_id, group_id, order_by_asc/desc fields: Additional fields, e.g. "staff()" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_create_staffA

Create a new staff member (user) on the Accelo deployment.

ADMINISTRATIVE WRITE — this provisions a new user account and consumes a licence seat. Confirm with the user before calling. The password is a secret: never echo it back in a response or log it.

Args: username: Login username (required) password: Initial password for the new account (required, secret) firstname: First name (required) surname: Surname (required) email: Email address (required) title: Title, e.g. "Mr", "Ms" phone: Phone number mobile: Mobile number fax: Fax number position: Position in the company fields: Additional fields to return

accelo_update_staffA

Update a staff member's descriptive details.

ADMINISTRATIVE WRITE — edits another user's record. Only the descriptive fields below are updatable via this endpoint (the API does not expose standing/financial_level/username here). Only non-None fields are sent.

Args: id: Staff ID (required) firstname: New first name surname: New surname title: New title email: New email address phone: New phone number mobile: New mobile number fax: New fax number position: New position fields: Additional fields to return

accelo_list_invoicesB

List invoices from Accelo.

Args: filters: Filter dict. Keys: id, invoice_number, date_raised/due/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "affiliation(),contact(),against_type" search: Search over subject, invoice_number page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_invoiceC

Get a single invoice by ID.

Args: id: Invoice ID fields: Additional fields to return

accelo_count_invoicesC

Count invoices matching the given filters.

accelo_list_invoice_line_itemsA

List invoice line items from Accelo (Beta).

Line items are the individual lines on an invoice, each carrying a quantity, rate, tax, total, and a link to its parent invoice, ledger, and tax code. Traverse from an invoice via filters={"invoice_id": }.

Args: filters: Filter dict. Keys: id, invoice_id, ledger_id, tax_id, quantity, rate, total, ordering (order/range filters), plus order_by_asc/desc fields: Additional fields, e.g. "line_item_ledger(),line_item_tax()" search: Search over the line item description page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_invoice_line_itemB

Get a single invoice line item by ID (Beta).

Args: id: Line item ID fields: Additional fields to return, e.g. "line_item_ledger(),line_item_tax()"

accelo_count_invoice_line_itemsC

Count invoice line items matching the given filters (Beta).

accelo_list_expensesB

List expenses from Accelo.

Args: filters: Filter dict. Keys: id, standing, expense_type, submitter, approver, against_type, against_id, date_incurred_before/after, order_by_asc/desc fields: Additional fields, e.g. "expense_type(),resource()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_expenseC

Get a single expense by ID.

Args: id: Expense ID fields: Additional fields to return

accelo_count_expensesC

Count expenses matching the given filters.

accelo_create_expenseC

Create a new expense.

Args: title: Expense title (required) against_type: Object type (required) against_id: Object ID (required) unit_cost: Cost per unit (required) quantity: Quantity (required) type_id: Expense type ID (required) billable: "yes" or "no" reimbursable: "yes" or "no" date_incurred: Date incurred (unix timestamp) fields: Additional fields to return

accelo_update_expenseB

Update an existing expense.

Args: id: Expense ID (required) title: New title unit_cost: New unit cost quantity: New quantity billable: "yes" or "no" reimbursable: "yes" or "no" fields: Additional fields to return

accelo_delete_expenseC

Delete an expense.

Args: id: Expense ID to delete

accelo_list_requestsC

List requests from Accelo.

Args: filters: Filter dict. Keys: id, standing, affiliation, type, request_priority, lead, claimer_id, date_created/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "body,affiliation(),claimer()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_requestB

Get a single request by ID.

Args: id: Request ID fields: Additional fields to return

accelo_count_requestsC

Count requests matching the given filters.

accelo_create_requestC

Create a new request.

Args: title: Request title (required) type_id: Request type ID (required) body: Request body affiliation_id: Affiliation ID priority_id: Priority ID source: Source ('email' or null) fields: Additional fields to return

accelo_update_requestC

Update an existing request.

Args: id: Request ID (required) title: New title body: New body type_id: New type ID standing: New standing (pending, open, converted, closed) claimer_id: Staff ID to claim the request priority_id: New priority ID fields: Additional fields to return

accelo_list_request_threadsB

List request threads on the deployment.

A request thread groups a request with its activity thread. Returns a "requests" array plus a "linked_objects" array of objects linked to those requests.

Args: filters: Filter dict. Keys: standing, request_type_id (the request type_id), interact_from_staff (staff_id), date_created_before/after page: Page number (0-indexed) limit: Results per page (max 100)

accelo_list_milestonesA

List milestones from Accelo.

Milestones are phases within a job. Each milestone has a job_id linking to its parent job. To find the company: get milestone → job_id → get job → against_id (company). Use fields="job()" to expand the parent job inline.

Args: filters: Filter dict. Keys: id, standing, ordering, job, parent, manager, rate, object_budget, status, date_modified/created/started/commenced/due/completed_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,manager(),job()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_milestoneB

Get a single milestone by ID.

Args: id: Milestone ID fields: Additional fields to return

accelo_count_milestonesC

Count milestones matching the given filters.

accelo_list_timersB

List timers from Accelo (current user's timers only for service apps).

Args: filters: Filter dict. Keys: id, staff, status fields: Additional fields, e.g. "staff(),against_title" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_timerC

Get a single timer by ID.

Args: id: Timer ID fields: Additional fields to return

accelo_create_timerB

Create a new timer.

Args: subject: Timer subject (required) against_type: Object type to time against against_id: Object ID to time against seconds: Initial seconds auto_start: Whether to start immediately (stops other timers) fields: Additional fields to return

accelo_start_timerC

Start a timer.

Args: id: Timer ID fields: Additional fields to return

accelo_pause_timerB

Pause a running timer.

Args: id: Timer ID fields: Additional fields to return

accelo_cancel_timerC

Cancel and delete a timer.

Args: id: Timer ID

accelo_delete_timerC

Delete a timer.

Args: id: Timer ID to delete

accelo_list_quotesA

List quotes (proposals) from Accelo.

Quotes are proposals typically created against a prospect (sale). They contain service and material line items with pricing. Use fields="manager(),affiliation()" to expand linked objects.

Args: filters: Filter dict. Keys: id, standing, affiliation, manager, status, against_type, against_id, created_by, date_created/expiry_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),affiliation(),introduction" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_quoteC

Get a single quote by ID.

Args: id: Quote ID fields: Additional fields to return

accelo_count_quotesC

Count quotes matching the given filters.

accelo_create_quoteB

Create a new quote (proposal).

Args: title: Quote title (required) against_type: Object type (required) — typically 'prospect' against_id: Object ID (required) affiliation_id: Affiliation ID for the client contact manager_id: Staff ID for the quote manager date_expiry: Expiry date (unix timestamp) notes: Additional notes introduction: HTML introduction for the published quote conclusion: HTML conclusion for the published quote terms_and_conditions: HTML terms and conditions fields: Additional fields to return

accelo_update_quoteB

Update an existing quote.

Args: id: Quote ID (required) title: New title affiliation_id: New affiliation ID manager_id: New manager staff ID date_expiry: New expiry date (unix timestamp) notes: New notes introduction: New HTML introduction conclusion: New HTML conclusion terms_and_conditions: New HTML terms client_portal_access: "1" or "0" for portal access fields: Additional fields to return

accelo_list_addressesA

List addresses from Accelo.

Addresses store location info for companies and contacts. Each address can be postal, physical, or both. Use filters against_type and against_id to find addresses for a specific company or contact.

Args: filters: Filter dict. Keys: id, against_type, against_id, physical, postal, country_id, state_id, zipcode, order_by_asc/desc (id, title) fields: Additional fields, e.g. "country(),state(),street1,city" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_addressA

Get a single address by ID.

Args: id: Address ID fields: Additional fields to return, e.g. "country(),state()"

accelo_count_addressesC

Count addresses matching the given filters.

accelo_create_addressB

Create a new address.

Args: against_type: Object type (required) — 'company' or 'contact' against_id: Object ID (required) title: Name for the address, e.g. "Head Office" street1: First line of street address street2: Second line of street address city: City name state: State/province name (use if state_id unknown) state_id: State ID (preferred over state name) country: Country name (use if country_id unknown) country_id: Country ID (preferred over country name) zipcode: Postcode/zipcode postal: "yes" or "no" — is this a postal address? physical: "yes" or "no" — is this a physical address? fields: Additional fields to return

accelo_update_addressB

Update an existing address.

Args: id: Address ID (required) title: New title street1: New street line 1 street2: New street line 2 city: New city state: New state name state_id: New state ID country: New country name country_id: New country ID zipcode: New postcode/zipcode postal: "yes" or "no" physical: "yes" or "no" fields: Additional fields to return

accelo_list_object_budgetsB

List object budgets from Accelo.

Object budgets track time and money spent against issues, milestones, jobs, and contract periods. Key fields include billable, nonbillable, logged, charged, service_price, material_price, and is_billable. Each budget is linked via against_type/against_id (e.g. against_type='milestone', against_id=15).

Args: filters: Filter dict. Keys: id, against_id, against_type, order_by_asc/desc (id) fields: Additional fields, e.g. "service_price_subtotal,material_cost" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_object_budgetA

Get a single object budget by ID.

Returns financial tracking data: billable/nonbillable time, charged amounts, service and material costs, and remaining budget.

Args: id: Object Budget ID fields: Additional fields to return

accelo_count_object_budgetsC

Count object budgets matching the given filters.

accelo_list_object_budget_templatesB

List object budget templates from Accelo.

Budget templates define reusable budget configurations that can be applied to objects. They contain default values for service rates, material costs, and billing settings.

Args: filters: Filter dict. Keys: id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_list_object_budget_materialsB

List materials (line items) from object budgets.

Materials represent physical goods, licences, or other non-time cost items tracked against a budget. Each material has a title, quantity, unit cost, and billing status.

Args: filters: Filter dict. Keys: id, budget_id, against_type, against_id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_list_object_budget_servicesB

List services (time-based line items) from object budgets.

Services represent billable time items tracked against a budget. Each service has a rate, quantity (time), and billing configuration.

Args: filters: Filter dict. Keys: id, budget_id, against_type, against_id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_create_object_budget_materialB

Create a new material line item on an object budget.

Args: budget_id: ID of the object budget to add the material to (required) title: Material title/description (required) quantity: Quantity of the material (required) unit_cost: Cost per unit (required) billable: "yes" or "no" — whether this material is billable fields: Additional fields to return on the created material

accelo_update_object_budget_materialB

Update an existing material line item on an object budget.

Args: material_id: ID of the material to update (required) title: New material title/description quantity: New quantity unit_cost: New cost per unit billable: "yes" or "no" — whether this material is billable fields: Additional fields to return on the updated material

accelo_list_assetsB

List assets from Accelo.

Assets are flexible objects representing any trackable item — computers, licenses, equipment, etc. They are created 'against' a company and can be linked to jobs, issues, prospects, or contracts via asset links.

Args: filters: Filter dict. Keys: id, standing, type_id, affiliation_id, manager_id, address_id, against_type, against_id, date_created_before/after, order_by_asc/desc (id, date_created, standing) fields: Additional fields, e.g. "asset_type(),manager(),affiliation()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_assetC

Get a single asset by ID.

Args: id: Asset ID fields: Additional fields to return

accelo_count_assetsC

Count assets matching the given filters.

accelo_update_assetC

Update an existing asset.

Args: id: Asset ID (required) title: New title fields: Additional fields to return

accelo_list_asset_typesB

List asset types from Accelo.

Asset types define the schema for assets — which fields are available, whether they have managers, affiliations, or addresses.

Args: filters: Filter dict. Keys: id, standing, order_by_asc/desc (id, standing, title) fields: Additional fields, e.g. "object_link_fields" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_asset_typeC

Get a single asset type by ID.

Args: id: Asset Type ID fields: Additional fields to return

accelo_list_asset_linksB

List asset links (joins between an asset and another object).

Returns the asset links and the linked assets. A link joins an asset to an issue, job, prospect, or contract.

Args: filters: Filter dict fields: Additional fields page: Page number (0-indexed) limit: Results per page (max 100)

accelo_create_asset_linkB

Create an asset link between an asset and another object.

Args: asset_id: The asset to link (required) linked_object_id: ID of the object to link the asset to (required) linked_object_type: Object type to link to — one of the supported types for asset links (issue, job, prospect, contract) (required) description: Optional description of the link start_date: Optional link start date (unix timestamp) end_date: Optional link end date (unix timestamp)

accelo_delete_asset_linkC

Delete an asset link (does NOT delete the asset itself).

Args: link_id: The asset_link_id to delete

accelo_list_checklistsA

List checklists from Accelo.

Checklists are to-do lists attached to tasks. Each checklist contains items that can be marked complete. Currently only supported against tasks.

Args: filters: Filter dict. Keys: id, against_id, against_type, created_by, date_created_before/after, order_by_asc/desc (id, date_created) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_checklistC

Get a single checklist by ID.

Args: id: Checklist ID fields: Additional fields to return

accelo_count_checklistsC

Count checklists matching the given filters.

accelo_create_checklistB

Create a new checklist.

Args: against_type: Object type (required) — currently only 'task' is supported against_id: Object ID (required) items: Array of items (required). Each item: {"title": "...", "ordering": 0} fields: Additional fields to return

accelo_update_checklistB

Update an existing checklist.

Args: id: Checklist ID (required) items: Updated array of items. Each: {"title": "...", "ordering": 0} fields: Additional fields to return

accelo_delete_checklistB

Delete a checklist.

Args: id: Checklist ID to delete

accelo_list_tagsA

List tags from Accelo.

Tags are keywords applied to activities, jobs, and other objects to aid categorisation and search. Use the 'against' object filter to find tags on a specific object.

Args: filters: Filter dict. Keys: id, name, against (object filter, e.g. {"job": [2]}), order_by_asc/desc (id, name) search: Search over name page: Page number (0-indexed) limit: Results per page (max 100)

accelo_count_tagsC

Count tags matching the given filters.

accelo_create_tagC

Create a new tag.

Args: name: Tag name (required) fields: Additional fields to return

accelo_list_ratesB

List rates from Accelo.

Rates define the hourly rate charged for billable work. They are referenced by jobs, milestones, tasks, contracts, and staff. Key fields: title, charged (hourly rate as decimal), standing, object (comma-separated list of object types the rate applies to).

Args: fields: Additional fields, e.g. "charged,object,standing" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_rateC

Get a single rate by ID.

Args: id: Rate ID fields: Additional fields to return

accelo_count_ratesB

Count all rates on the deployment.

accelo_list_webhook_subscriptionsA

List webhook subscriptions for the current user.

Returns all webhook subscriptions registered by the authenticated user. Each subscription contains: trigger_url, event_id, content_type, trigger_table, trigger_type, user_deployment, user_id.

accelo_list_webhook_subscription_typesA

List available webhook subscription event types.

Returns the available events you can subscribe to. Events include: assign_task, unassign_task, create_task, create_invoice, update_invoice, delete_invoice, create_request, update_request_status, create_issue, update_issue, create_company, update_company, create_contact, update_contact, create_sale, update_sale, delete_activity.

accelo_create_webhook_subscriptionA

Create a webhook subscription.

When the event fires, Accelo POSTs a payload to trigger_url containing {id, resource_url}. Headers include X-Accelo-Event and X-Hub-Signature (HMAC hex digest if secret is configured).

Args: trigger_url: Callback URL to receive the webhook payload (required) event_id: Event to subscribe to (required). One of: assign_task, unassign_task, create_task, create_invoice, update_invoice, delete_invoice, create_request, update_request_status, create_issue, update_issue, create_company, update_company, create_contact, update_contact, create_sale, update_sale, delete_activity content_type: Payload format — 'application/json' or 'application/x-www-form-urlencoded' (default) secret: Optional secret for HMAC signature verification

accelo_delete_webhook_subscriptionB

Delete a webhook subscription.

Args: id: Subscription ID to delete

accelo_list_referralsB

List referrals from Accelo.

Referrals link an object to the object it was created from. For example, a job created from a prospect has a referral where referrer_type='prospect' and against_type='job'.

Args: filters: Filter dict. Keys: id, against_type, against_id, referrer_type, referrer_id, created_by, updated_by, standing, date_created/updated_before/after, order_by_asc/desc (id, date_created, date_updated) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_referralC

Get a single referral by ID.

Args: id: Referral ID fields: Additional fields to return

accelo_count_referralsC

Count referrals matching the given filters.

accelo_list_segmentationsA

List segmentations (categories) from Accelo.

Segmentations organize companies, contacts, and affiliations into categories for management and reporting. Each segmentation has a link_type ('company', 'contact', or 'affiliation') and can be exclusive (single value) or multi-value.

Args: filters: Filter dict. Keys: id, link_type, standing, required, exclusive, leaf, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_segmentationC

Get a single segmentation by ID.

Args: id: Segmentation ID fields: Additional fields to return

accelo_count_segmentationsC

Count segmentations matching the given filters.

accelo_list_skillsA

List skills from Accelo.

Skills are tags assigned to tasks or staff to match work with appropriate team members. Use the 'against' object filter to find skills on a specific task or staff member.

Args: filters: Filter dict. Keys: id, title, against (object filter, e.g. {"task": [24]}), order_by_asc/desc search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_count_skillsC

Count skills matching the given filters.

accelo_create_skillC

Create a new skill.

Args: title: Skill name (required) fields: Additional fields to return

accelo_list_taxesB

List tax codes from Accelo.

Tax codes define the tax rates applied to invoices, expenses, and materials. Key fields: title, rate (decimal, e.g. 0.10 for 10%), standing.

Args: filters: Filter dict. Keys: id, standing, order_by_asc/desc (id, standing, title) fields: Additional fields, e.g. "rate,standing" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_taxC

Get a single tax code by ID.

Args: id: Tax ID fields: Additional fields to return

accelo_count_taxesC

Count tax codes matching the given filters.

accelo_list_ledgersA

List account ledgers from Accelo.

Ledgers are accounting codes used for invoicing and financial reporting. They may sync with external systems (Xero, QuickBooks). Key fields: title, code, standing, parent_id, comment.

Args: filters: Filter dict. Keys: id, code, parent_id, standing, order_by_asc/desc (id, code, parent_id, standing, title) fields: Additional fields, e.g. "code,comment" search: Search over title, code page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_ledgerC

Get a single ledger by ID.

Args: id: Ledger ID fields: Additional fields to return

accelo_count_ledgersC

Count ledgers matching the given filters.

accelo_list_paymentsA

List payments from Accelo.

Payments record money received against invoices. Each payment has a method, receipt, and currency. Use fields="payment_method(),payment_receipt(), payment_currency()" to expand linked objects.

Args: filters: Filter dict. Keys: id, currency_id, method_id, receipt_id, created_by_staff_id, against_id, against_type, date_created_before/after, against (object filter, e.g. {"account_invoice": [133]}), order_by_asc/desc (id, amount, date_created, direction) fields: Additional fields, e.g. "payment_method(),payment_receipt()" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_paymentC

Get a single payment by ID.

Args: id: Payment ID fields: Additional fields to return

accelo_count_paymentsC

Count payments matching the given filters.

accelo_list_divisionsB

List divisions from Accelo (Beta).

Divisions allow managing contacts, companies, and staff under different details, rates, or identities.

Args: filters: Filter dict. Keys: id, title, standing, order_by_asc/desc (id, title, standing, ordering) fields: Additional fields, e.g. "standing,ordering" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_divisionC

Get a single division by ID (Beta).

Args: id: Division ID fields: Additional fields to return

accelo_count_divisionsC

Count divisions matching the given filters.

accelo_list_groupsA

List staff groups from Accelo (Beta).

Groups categorize staff for bulk assignments and access controls. Use filter staff_id to find groups a specific staff member belongs to.

Args: filters: Filter dict. Keys: id, title, staff_id fields: Additional fields, e.g. "standing,parent_id" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_groupB

Get a single group by ID (Beta).

Args: id: Group ID fields: Additional fields to return

accelo_count_groupsC

Count groups matching the given filters.

accelo_list_holidaysA

List holidays from Accelo (Beta).

Holidays are staff leave/time-off entries imported from calendars or entered manually. Each has a staff_id, date_start, and either date_end or duration_seconds.

Args: filters: Filter dict. Keys: id, staff_id, date_start/end_before/after, order_by_asc/desc (id, staff_id, date_start, date_end, title) fields: Additional fields, e.g. "staff(),duration_seconds" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_holidayC

Get a single holiday by ID (Beta).

Args: id: Holiday ID fields: Additional fields to return

accelo_count_holidaysC

Count holidays matching the given filters.

accelo_create_holidayB

Create a new holiday (Beta).

Only one of date_end or duration_seconds should be provided.

Args: title: Holiday name (required) date_start: Start date as unix timestamp (required) date_end: End date as unix timestamp (provide this OR duration_seconds) duration_seconds: Duration in seconds (provide this OR date_end) staff_id: Staff member ID (defaults to current user) fields: Additional fields to return

accelo_update_holidayC

Update an existing holiday (Beta).

Args: id: Holiday ID (required) title: New title date_start: New start date date_end: New end date duration_seconds: New duration staff_id: New staff ID fields: Additional fields to return

accelo_delete_holidayC

Delete a holiday (Beta).

Args: id: Holiday ID to delete

accelo_list_contributorsA

List contributors from Accelo.

Contributors are third-party contacts involved in client work (jobs, issues, prospects). They link a staff member or affiliation to a work object, and can be auto-CC'd on correspondence.

Args: filters: Filter dict. Keys: id, standing, status_id, contributor_type_id, against_type, against_id, object_id, object_type, auto_cc, order_by_asc/desc (id, contributor_type_id, standing, status_id) fields: Additional fields, e.g. "contributor_type(),description" search: Search over description page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_contributorC

Get a single contributor by ID.

Args: id: Contributor ID fields: Additional fields to return

accelo_count_contributorsC

Count contributors matching the given filters.

accelo_list_contributor_typesA

List contributor types from Accelo.

Contributor types (e.g. 'Advisor') define whether the type has a status, whether contributors of the type are auto-CC'd, and its default standing.

Args: filters: Filter dict. Keys: id, title, default_status_id, default_standing, order_by_asc/desc (ordering) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_contributor_typeC

Get a single contributor type by ID.

Args: id: Contributor type ID fields: Additional fields to return

accelo_count_contributor_typesC

Count contributor types matching the given filters.

accelo_list_signoffsA

List signoffs from Accelo.

Signoffs allow clients to approve work and comment on attachments. They are created against jobs or milestones. Standing: 'draft', 'sent', 'approved', or 'declined'.

Args: filters: Filter dict. Keys: id, created_by, standing, requires, against_type, against_id, date_created/expires/updated_before/after, order_by_asc/desc (id, date_created, date_expires, date_updated, standing, subject) fields: Additional fields, e.g. "html_body,permissions" search: Search over subject page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_signoffC

Get a single signoff by ID.

Args: id: Signoff ID fields: Additional fields to return

accelo_count_signoffsC

Count signoffs matching the given filters.

accelo_update_signoffA

Update a signoff's body.

Only the body field is updatable via this endpoint.

Args: id: Signoff ID (required) body: New body content (required) fields: Additional fields to return

accelo_redraft_signoffB

Redraft a signoff — return a sent signoff to draft standing.

Args: id: Signoff ID

accelo_send_signoffA

Send a signoff to its recipients.

CLIENT-FACING WRITE — this dispatches an approval request to the signoff's recipients (typically clients). Confirm with the user before calling.

Args: id: Signoff ID

accelo_create_signoff_recipientB

Add a recipient to a signoff.

Args: signoff_id: The signoff to add the recipient to (required) recipient_id: ID of the recipient object (required) recipient_type: Object type of the recipient — "affiliation" or "staff" (required) approver: Whether this recipient can approve the signoff fields: Additional fields to return

accelo_update_signoff_recipientA

Update a signoff recipient.

A recipient can only be edited while the signoff is in draft; response may only be updated for your own recipient record and only if you are an approver. Only non-None fields are sent.

Args: recipient_id: The recipient record's ID (required) approver: Whether the recipient can approve response: The recipient's response fields: Additional fields to return

accelo_delete_signoff_recipientC

Delete a signoff recipient.

Args: recipient_id: The recipient record's ID

accelo_update_signoff_attachmentA

Update a signoff attachment's standing.

Only the standing field ("active"/"inactive") is updatable.

Args: attachment_id: The attachment's ID (required) standing: New standing — "active" or "inactive" (required)

accelo_list_purchasesA

List purchases from Accelo.

Purchases track costs incurred when completing jobs, issues, or contracts. Key fields: title, amount, tax, total, date_purchased, owner_id, creator_id, affiliation_id.

Args: filters: Filter dict. Keys: id, owner_id, creator_id, affiliation_id, date_purchased_before/after, order_by_asc/desc (id, amount, tax, total) fields: Additional fields, e.g. "amount,tax,total" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_purchaseC

Get a single purchase by ID.

Args: id: Purchase ID fields: Additional fields to return

accelo_count_purchasesC

Count purchases matching the given filters.

accelo_list_time_externalsA

List time externals (imported calendar appointments) from Accelo.

Time externals are appointments imported from Google, Exchange, or Outlook calendars. They can be converted to activities for scheduling and timesheets.

Args: filters: Filter dict. Keys: id, staff_id, order_by_asc/desc (id, staff_id, date_created, date_modified, date_started, date_ended) fields: Additional fields, e.g. "description,date_started,date_ended" search: Search over title, description page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_time_externalC

Get a single time external by ID.

Args: id: Time External ID fields: Additional fields to return

accelo_count_time_externalsC

Count time externals matching the given filters.

accelo_convert_time_external_to_activityA

Convert a time external (imported calendar appointment) into an activity.

Creates a meeting activity against the given object, plus a second activity as a report on the meeting — the process for turning an imported appointment into a workable Accelo timesheet/schedule entry.

Args: id: Time External ID to convert (required) engagement_table: The against_type for the new activity — the object type the meeting is created against (e.g. "company", "job", "issue") (required) engagement_id: The against_id — ID of the object to create against (required)

accelo_list_profile_fieldsC

List profile fields available for an object type.

Args: object_type: The object type — affiliations, companies, contacts, contracts, invoices, issues, jobs, milestones, prospects, staff fields: Additional fields to return

accelo_get_profile_valuesC

Get profile field values for a specific object.

Args: object_type: The object type (e.g. "companies", "issues") object_id: The object's ID fields: Additional fields to return

accelo_set_profile_valueB

Set a profile field value on an object.

Args: object_type: The object type (e.g. "companies", "issues") object_id: The object's ID profile_field_id: The profile field's ID value: The value to set (type depends on the field: text, integer, date, etc.)

accelo_list_extension_fieldsC

List extension fields available for an object type.

Args: object_type: The object type — assets, contracts, issues, jobs, prospects fields: Additional fields to return

accelo_get_extension_valuesC

Get extension field values for a specific object.

Args: object_type: The object type (e.g. "issues", "jobs", "contracts") object_id: The object's ID fields: Additional fields to return

accelo_set_extension_valueC

Set an extension field value on an object.

Args: object_type: The object type (e.g. "issues", "jobs") object_id: The object's ID extension_field_id: The extension field's ID value: The value to set (use value_int, value_date, value_id for typed fields)

accelo_list_progressionsC

List available progressions for an object (possible status transitions).

Args: object_type: The object type — tasks, companies, jobs, prospects, issues, milestones, affiliations, contracts, contacts, expenses object_id: The object's ID

accelo_run_progressionB

Auto-run a progression to advance an object's status.

Use accelo_list_progressions first to find available progression IDs.

Args: object_type: The object type object_id: The object's ID progression_id: The progression ID to execute

accelo_list_collectionsC

List resource collections for an object.

Args: object_type: The object type (e.g. "companies", "issues", "jobs", "contacts") object_id: The object's ID

accelo_list_resourcesC

List resources (attachments) from Accelo.

Args: filters: Filter dict. Keys: id, mimetype, activity_id, collection_id, date_created_before/after, order_by_asc/desc fields: Additional fields, e.g. "owner_type,owner_id,collection_id" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)

accelo_count_resourcesC

Count resources (attachments) matching the given filters.

accelo_get_resourceC

Get a single resource (attachment) by ID.

Args: id: Resource ID fields: Additional fields to return

accelo_download_resource_urlB

Get the download URL for a resource.

Returns the URL path to download the resource. The actual download requires the Bearer token as authentication.

Args: id: Resource ID

accelo_list_enumA

List an object's enumeration values (statuses, types, classes, etc.).

Use this to DISCOVER valid IDs before filtering a list endpoint — e.g. call accelo_list_enum("issues", "statuses") to learn the status_id values, then pass one to accelo_list_issues(filters={"status": }).

Valid (object, enum_type) combinations: Statuses: companies, contacts, affiliations, jobs, issues, milestones, quotes, contracts, prospects -> enum_type="statuses" Types: jobs, issues, expenses, contracts, contributors, requests, prospects -> enum_type="types" Issues: enum_type in "classes", "priorities", "resolutions" Other: tasks/"priorities", activities/"classes", prospects/"probabilities"

Args: object: Object name, e.g. "issues", "jobs", "companies" enum_type: Enumeration kind, e.g. "statuses", "types", "classes", "priorities", "resolutions", "probabilities" filters: Filter dict (most enums support id/title/standing + order_by_*) fields: Additional fields (most enums support _fields) search: Search over title (where supported) page: Page number (0-indexed) limit: Results per page (max 100)

accelo_get_enumA

Get a single enumeration value by ID (e.g. one issue status).

Only some enumerations expose a get-by-id endpoint; if the combination does not, a structured error is returned naming the valid combinations. See accelo_list_enum for the full list of (object, enum_type) pairs.

Args: object: Object name, e.g. "issues" enum_type: Enumeration kind, e.g. "statuses" id: The enumeration value's ID fields: Additional fields to return

accelo_count_enumA

Count an object's enumeration values matching the given filters.

Only some enumerations expose a count endpoint; if the combination does not, a structured error is returned. See accelo_list_enum for valid pairs.

Args: object: Object name, e.g. "issues" enum_type: Enumeration kind, e.g. "statuses" filters: Filter dict search: Search over title (where supported)

accelo_list_filtersA

List saved filters on the deployment.

Does not include filters created by other users that have not been shared.

Args: filters: Filter dict. Keys: id, shared, staff (staff_id), object_type, order_by_asc/desc (id, title, shared) fields: Additional fields, e.g. "staff()" page: Page number (0-indexed) limit: Results per page (max 100)

accelo_list_object_filtersB

List saved filters for a particular object type.

Args: object: Object type, e.g. "companies", "issues", "jobs" (one of: activities, affiliations, companies, contracts, expenses, issues, jobs, milestones, prospects, quotes, staff, tasks) filters: Filter dict. Keys: id, shared, staff (staff_id) fields: Additional fields page: Page number (0-indexed) limit: Results per page (max 100)

accelo_update_filterB

Update a saved filter's title or shared flag.

Args: id: Filter ID (required) title: New title shared: "yes" or "no" — whether the filter is shared on the deployment fields: Additional fields to return

accelo_run_filterA

Run a saved filter and return the objects it matches.

The returned objects are of the filter's own object_type, with their default fields plus any requested via fields.

Args: id: Filter ID (required) fields: Additional fields on the matched objects limit: Max results (this endpoint accepts only _limit, not _page)

accelo_describe_objectA

Get field descriptions and examples for an Accelo object type.

Returns detailed field-level documentation including types, descriptions, gotchas (e.g. time fields are in seconds), and usage patterns. Call this when you need to interpret response data or understand what fields are available.

Supported objects: activities, affiliations, companies, contacts, contracts, prospects, quotes, staff, tasks

Args: object_type: The object type to describe (e.g. "activities", "staff")

accelo_rate_limit_statusA

Get current API rate limit status.

Returns the remaining requests, total limit, and reset time. Accelo allows 5000 requests per hour per deployment.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 219 tools

Disambiguation4/5

Most tools are clearly scoped to a resource and action, and the many list/count/get/create/update/delete tools are distinct. Some overlap exists in enumerations and filters, but the descriptions explicitly guide how to distinguish them. A few tools (e.g., accelo_list_enum vs accelo_list_object_filters) require careful reading but are not truly ambiguous.

Naming Consistency5/5

All tools follow a strict accelo_verb_noun pattern (e.g., accelo_list_companies, accelo_get_task, accelo_create_issue). The prefix is consistent and the verb+noun style is uniform across all 219 tools.

Tool Count2/5

With 219 tools, the surface is extremely large for any single agent to navigate effectively. While each tool may be warranted for the breadth of Accelo's API, the sheer count makes selection and maintenance burdensome, and the toolset feels heavy rather than well-scoped.

Completeness4/5

The server covers a vast domain with CRUD operations for most objects, plus helpers like progressions, timers, webhooks, and filters. Minor gaps exist (e.g., no contact delete), but overall the surface is remarkably comprehensive for Accelo's model.