Getfly CRM MCP by usefulapi

MCP server for Getfly CRM — customers, opportunities, orders, tickets and tasks.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
89%
Calidad de los nombres
99%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'getfly_list_opportunity_comments' name length outside 3-30 rangeen getfly_list_opportunity_comments

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,305Tokens (definiciones de herramientas)
~2.6 KBTamaño de respuesta típico
Impacto significativo en la atención (7.27% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "getfly-crm": {
      "url": "https://getfly-crm.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://getfly-crm.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (29)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢getfly_list_users(sort, direction, limit, offset, fields, ...)

List the Getfly CRM users (employees): user id, name, department, email, phone. Use the user_name (login name) for the recipient/manager arguments of the create tools. Filters: user_id, contact_name, email, contact_mobile, valid (1 = active users). GET /api/v6.1/users.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    },
    "filters": {
      "description": "Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Examples: {\"email:contains\":\"@acme.com\"}, {\"id:in\":[1,2,3]}, {\"created_at:between\":[\"2026-10-01 00:00:00\",\"2026-10-31 23:59:59\"]}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 500
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_user(user_id, user_username, fields)

One user by id or by login name (exactly one of user_id and user_username). GET /api/v6.1/user.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "user_id": {
      "description": "User id (from getfly_list_users).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "user_username": {
      "description": "User login name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_accounts(sort, direction, limit, offset, fields, ...)

List customers (accounts, i.e. companies or individuals) with code, name, phone, email, address, type, source, relationship, manager, total revenue and contacts. Filters: id, account_code, account_name, phone_office, email, account_type, account_source, relation_id, industry, billing_address_street, created_at, updated_at (gte/lte/between), account_manager (user id), sale_order_status. Newest first. GET /api/v6/accounts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    },
    "filters": {
      "description": "Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Examples: {\"email:contains\":\"@acme.com\"}, {\"id:in\":[1,2,3]}, {\"created_at:between\":[\"2026-10-01 00:00:00\",\"2026-10-31 23:59:59\"]}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 500
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_account(account_code, fields)

One customer by its customer code (account_code, e.g. KH/2025/000001): full profile with contacts, custom fields, type, source, industry, manager and revenue. GET /api/v6.1/account?account_code=.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Customer code (account_code), from getfly_list_accounts."
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "account_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡getfly_create_account(account_name, account_code, email, phone_office, billing_address_street, ...)

WRITE: Create a new customer (account) in Getfly CRM. The customer code must be unique (leave it out to let Getfly generate one). Type, source, industry, relationship, country, province, district and ward are given by NAME and must match the names configured in Getfly. Optionally adds one primary contact. Creating records may trigger the workflows and notifications set up in the CRM. POST /api/v6.1/account.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "account_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Customer name (company or person)."
    },
    "account_code": {
      "description": "Unique customer code. Optional.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "phone_office": {
      "description": "Office phone number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "billing_address_street": {
      "description": "Street address.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "website": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000
    },
    "sic_code": {
      "description": "Tax code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "birthday": {
      "description": "Birthday or founding date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "account_manager_username": {
      "description": "Login name of the managing user (getfly_list_users → user_name).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "account_type_names": {
      "description": "Customer type names.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "account_source_names": {
      "description": "Customer source names.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "industry_names": {
      "description": "Industry names.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "relation_name": {
      "description": "Relationship name (e.g. New customer).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "country_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "province_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "district_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "ward_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "contact": {
      "description": "One primary contact person.",
      "type": "object",
      "properties": {
        "first_name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "Contact name."
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "phone_home": {
          "description": "Contact phone.",
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "email": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      },
      "required": [
        "first_name"
      ]
    },
    "custom_fields": {
      "description": "Custom field values by field key.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    }
  },
  "required": [
    "account_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴getfly_update_account(current_account_code, account_code, account_name, email, phone_office, ...)

WRITE: Update fields of an existing customer, found by its current customer code. Send only the fields to change. Names (relationship, country, province...) must match those configured in Getfly. Contacts and the type/source/industry lists are not editable here. PUT /api/v6.1/account.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "current_account_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The customer's current code (account_code)."
    },
    "account_code": {
      "description": "New customer code, only to rename the code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "account_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "phone_office": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "billing_address_street": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    },
    "website": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000
    },
    "sic_code": {
      "description": "Tax code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "birthday": {
      "description": "yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "account_manager_username": {
      "description": "Login name of the new managing user.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "relation_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "country_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "province_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "district_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "ward_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "custom_fields": {
      "description": "Custom field values by field key.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          }
        ]
      }
    }
  },
  "required": [
    "current_account_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_campaigns(fields)

List sales campaigns (opportunity pipelines): campaign code and name, responsible user, lock state, related users and the pipeline stages (status ids and names). GET /api/v6.1/campaigns.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_campaign_stages(campaign_id, campaign_code)

The pipeline stages of one campaign (status id, name and how many opportunities are in each). Pass exactly one of campaign_id and campaign_code. GET /api/v6.1/campaign/status.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "campaign_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_opportunities(campaign_code, sort, direction, limit, offset, ...)

List sales opportunities (deals in a campaign pipeline) with code, name, stage, probability, handler, customer and campaign. Filter by campaign with the campaign_code argument. GET /api/v6.1/opportunities.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campaign_code": {
      "description": "Only opportunities of this campaign (campaign code from getfly_list_campaigns).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    },
    "filters": {
      "description": "Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Examples: {\"email:contains\":\"@acme.com\"}, {\"id:in\":[1,2,3]}, {\"created_at:between\":[\"2026-10-01 00:00:00\",\"2026-10-31 23:59:59\"]}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 500
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_opportunity(opportunity_code, fields)

One opportunity by its code (e.g. CH2284): stage, probability, handler, customer and campaign. GET /api/v6.1/opportunity.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "opportunity_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Opportunity code (opportunity_code)."
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "opportunity_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_opportunity_comments(opportunity_id, sort, direction, limit, offset, ...)

The discussion (comments) on an opportunity: author, text and time. GET /api/v6.1/opportunity/{id}/comments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "opportunity_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Opportunity id (the numeric id, not the code)."
    },
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "opportunity_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡getfly_create_opportunity(campaign_code, account_name, account_phone, contact_name, contact_phone, ...)

WRITE: Create a sales opportunity in a campaign for a customer and assign it to a user. Creates (or links) the customer and contact from the details given. The assigned user and the campaign rules may be notified by Getfly. POST /api/v6.1/opportunity.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "campaign_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Campaign code (getfly_list_campaigns)."
    },
    "account_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Customer name."
    },
    "account_phone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Customer phone number."
    },
    "contact_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Contact person name."
    },
    "contact_phone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Contact phone number."
    },
    "recipient_username": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Login name of the user who handles it (getfly_list_users → user_name)."
    },
    "account_code": {
      "description": "Existing customer code, if the customer already exists.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "account_email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "contact_email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "campaign_code",
    "account_name",
    "account_phone",
    "contact_name",
    "contact_phone",
    "recipient_username"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴getfly_move_opportunity_stage(opportunity_code, opportunity_id, campaign_code, campaign_id, opportunity_status_name, ...)

WRITE: Move an opportunity to another stage of its campaign pipeline, without changing anything else. Identify the opportunity by code (or id) and the campaign by code (or id); the new stage by name (or status id) from getfly_get_campaign_stages. Won/lost/cancelled results are not set here. PUT /api/v6.1/opportunity/stage.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "opportunity_code": {
      "description": "Opportunity code. Use this or opportunity_id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "opportunity_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "campaign_code": {
      "description": "Campaign code. Use this or campaign_id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "campaign_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "opportunity_status_name": {
      "description": "New stage name. Use this or opportunity_status.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "opportunity_status": {
      "description": "New stage (status) id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡getfly_add_opportunity_comment(opportunity_id, content, user_id)

WRITE: Post a comment in the discussion of an opportunity, as the given user. Other users following the opportunity may be notified. POST /api/v6.1/opportunity/{id}/comments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "opportunity_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Opportunity id (the numeric id, not the code)."
    },
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "Comment text."
    },
    "user_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "User id posting the comment (getfly_list_users)."
    }
  },
  "required": [
    "opportunity_id",
    "content",
    "user_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_products(sort, direction, limit, offset, fields)

List products and services with code, name, category, unit, retail/wholesale/online price, sale price, VAT and dates. GET /api/v6.1/products.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_product(product_code, fields)

One product by its code (e.g. SP.00192): prices, unit, category, VAT, variants and custom fields. GET /api/v6.1/product.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Product code (product_code)."
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "product_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_sale_orders(order_date_from, order_date_to, updated_since, sort, direction, ...)

List sales orders with code, customer, amounts, discount, VAT, status, payment status, assigned user and line items. Filters: id, order_date, created_at, updated_at (eq, gte, lte, between). Newest first. GET /api/v6.1/sale_orders.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_date_from": {
      "description": "Orders dated on or after this day, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "order_date_to": {
      "description": "Orders dated on or before this day, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "updated_since": {
      "description": "Orders updated at or after this time, yyyy-mm-dd hh:mm:ss.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
    },
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    },
    "filters": {
      "description": "Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Examples: {\"email:contains\":\"@acme.com\"}, {\"id:in\":[1,2,3]}, {\"created_at:between\":[\"2026-10-01 00:00:00\",\"2026-10-31 23:59:59\"]}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 500
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_sale_order(order_code, fields)

One sales order by its order code: status, payment status, amounts, customer, line items, shipping info and custom fields. Add payment_periods to fields to include the payment schedule. GET /api/v6.1/sale_order.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Order code (order_code), from getfly_list_sale_orders."
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "order_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_tickets(sort, direction, limit, offset, fields, ...)

List support tickets with code, title, content, category, customer and custom fields. GET /api/v6.1/tickets.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    },
    "filters": {
      "description": "Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Examples: {\"email:contains\":\"@acme.com\"}, {\"id:in\":[1,2,3]}, {\"created_at:between\":[\"2026-10-01 00:00:00\",\"2026-10-31 23:59:59\"]}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 500
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_ticket(ticket_code, fields)

One support ticket by its ticket code. GET /api/v6.1/ticket.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ticket_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Ticket code (ticket_code), from getfly_list_tickets."
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "ticket_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_ticket_comments(ticket_id, sort, direction, limit, offset, ...)

The discussion (comments) on a support ticket: author, text and time. GET /api/v6.1/ticket/{id}/comments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ticket_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Ticket id (the numeric id, not the code)."
    },
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "ticket_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_ticket_categories

The support ticket categories (id and name). Use a name as cate_name when creating a ticket. GET /api/v6.1/ticket/categories.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_ticket_statuses

The support ticket statuses (id and name). Use a name as status_name when creating a ticket. GET /api/v6.1/ticket/status.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡getfly_create_ticket(ticket_title, ticket_content, cate_name, status_name, account_code, ...)

WRITE: Create a support ticket, optionally for a customer. Category and status are given by NAME and must match the names configured in Getfly (getfly_list_ticket_categories, getfly_list_ticket_statuses). The content may contain HTML. Getfly may notify the support team. POST /api/v6.1/ticket.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ticket_title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Short title."
    },
    "ticket_content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 10000,
      "description": "Ticket text (HTML allowed)."
    },
    "cate_name": {
      "description": "Category name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "status_name": {
      "description": "Initial status name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "account_code": {
      "description": "Customer code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "account_email": {
      "description": "Customer email.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "contact_name": {
      "description": "Contact person name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "expected_at": {
      "description": "Expected resolution date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "emergency_phone": {
      "description": "Emergency contact phone.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    }
  },
  "required": [
    "ticket_title",
    "ticket_content"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_tasks(limit, offset, fields)

List tasks with code, name, start/end time, status, progress, assignee, project and related customers. GET /api/v6.1/tasks.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_get_task(task_code, fields)

One task by its task code: status, progress, assignee, project, dates and custom fields. GET /api/v6.1/task.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "task_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Task code (task_code), from getfly_list_tasks."
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    }
  },
  "required": [
    "task_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡getfly_create_task(task_name, task_start_date, task_end_date, project_name, task_type_name, ...)

WRITE: Create a task, optionally in a project, assigned to a user and linked to a customer. Project and task type are given by NAME and must exist in Getfly; users by login name. The assignee may be notified by Getfly. POST /api/v6.1/task.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "task_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Task name."
    },
    "task_start_date": {
      "description": "Start, yyyy-mm-dd hh:mm:ss.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
    },
    "task_end_date": {
      "description": "End, yyyy-mm-dd hh:mm:ss.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
    },
    "project_name": {
      "description": "Project name (must exist).",
      "type": "string",
      "minLength": 1,
      "maxLength": 300
    },
    "task_type_name": {
      "description": "Task type name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "task_description": {
      "description": "Description (HTML allowed).",
      "type": "string",
      "minLength": 1,
      "maxLength": 10000
    },
    "task_receiver_username": {
      "description": "Login name of the assignee (getfly_list_users → user_name).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "related_users": {
      "description": "Login names of related users.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      }
    },
    "task_code": {
      "description": "Unique task code. Optional.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "task_parent_code": {
      "description": "Code of the parent task.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "account_code": {
      "description": "Code of a customer to link to the task.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "required": [
    "task_name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴getfly_complete_task(task_code)

WRITE: Mark a task as completed, by its task code. POST /api/v6.1/task/complete.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "task_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Task code (task_code)."
    }
  },
  "required": [
    "task_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢getfly_list_funds(sort, direction, limit, offset, fields, ...)

List the cash/bank funds (accounts for receipts and payments) with id, name, parent, level and financial account. GET /api/v6.1/funds.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sort": {
      "description": "Field to sort by (e.g. id, created_at, updated_at). Default: newest id first.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]{0,60}$"
    },
    "direction": {
      "description": "Sort direction, used with sort (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Records to return, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Records to skip (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "fields": {
      "description": "Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set.",
      "type": "string",
      "pattern": "^[A-Za-z0-9_.,]{1,2000}$"
    },
    "filters": {
      "description": "Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Examples: {\"email:contains\":\"@acme.com\"}, {\"id:in\":[1,2,3]}, {\"created_at:between\":[\"2026-10-01 00:00:00\",\"2026-10-31 23:59:59\"]}.",
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 500
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 500
                },
                {
                  "type": "number"
                }
              ]
            }
          }
        ]
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada29 herramientas