{ "kind": "open-flow-workflow", "version": 1, "name": "Invoice Ninja Client Reader", "content": { "modelVersion": 14, "document": { "bindings": {}, "graph": { "nodes": { "n_2d419e4e72e37779": { "name": "Read Invoice Ninja clients", "kind": "start", "inputDefs": [] }, "n_cfa5b93d71b34438": { "inputs": { "page": { "kind": "value", "value": 1 }, "perPage": { "kind": "value", "value": 50 } }, "name": "Read first 50 Invoice Ninja clients", "kind": "task", "task": { "inputs": [ { "description": "The 1-based result page to return.", "jsonSchema": { "type": "integer", "exclusiveMinimum": 0, "description": "The 1-based result page to return." }, "nullable": true, "handle": "page", "value": null }, { "description": "The number of records to return per page.", "jsonSchema": { "type": "integer", "exclusiveMinimum": 0, "description": "The number of records to return per page." }, "nullable": true, "handle": "perPage", "value": null }, { "description": "Comma-separated related resources to include in the response.", "jsonSchema": { "type": "string", "minLength": 1, "description": "Comma-separated related resources to include in the response." }, "nullable": true, "handle": "include", "value": null }, { "description": "A broad search term supported by the Invoice Ninja endpoint.", "jsonSchema": { "type": "string", "minLength": 1, "description": "A broad search term supported by the Invoice Ninja endpoint." }, "nullable": true, "handle": "filter", "value": null }, { "description": "The Invoice Ninja sort expression, such as id|desc.", "jsonSchema": { "type": "string", "minLength": 1, "description": "The Invoice Ninja sort expression, such as id|desc." }, "nullable": true, "handle": "sort", "value": null }, { "description": "Filter clients by company or organization name.", "jsonSchema": { "type": "string", "description": "Filter clients by company or organization name." }, "nullable": true, "handle": "name", "value": null }, { "description": "Filter clients by contact email address.", "jsonSchema": { "type": "string", "format": "email", "description": "Filter clients by contact email address." }, "nullable": true, "handle": "email", "value": null }, { "description": "Filter clients by client number.", "jsonSchema": { "type": "string", "description": "Filter clients by client number." }, "nullable": true, "handle": "number", "value": null } ], "outputs": [ { "description": "Clients returned by Invoice Ninja.", "jsonSchema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The Invoice Ninja hashed resource ID." }, "name": { "type": [ "string", "null" ], "description": "The client company or organization name." }, "number": { "type": [ "string", "null" ], "description": "The client number." }, "balance": { "type": [ "number", "null" ], "description": "The client's outstanding balance." }, "paid_to_date": { "type": [ "number", "null" ], "description": "The total amount paid by the client." }, "contacts": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The Invoice Ninja hashed resource ID." }, "first_name": { "type": [ "string", "null" ], "description": "The contact's first name." }, "last_name": { "type": [ "string", "null" ], "description": "The contact's last name." }, "email": { "type": [ "string", "null" ], "description": "The contact's email address." }, "phone": { "type": [ "string", "null" ], "description": "The contact's phone number." } }, "additionalProperties": true, "description": "An Invoice Ninja client contact." }, "description": "Contacts attached to the client." } }, "additionalProperties": true, "description": "An Invoice Ninja client object." }, "description": "Clients returned by Invoice Ninja." }, "nullable": false, "handle": "clients" }, { "description": "Pagination metadata returned by Invoice Ninja.", "jsonSchema": { "type": "object", "properties": { "total": { "type": "integer", "minimum": 0, "description": "The total number of matching records." }, "count": { "type": "integer", "minimum": 0, "description": "The number of records in the current page." }, "perPage": { "type": "integer", "minimum": 0, "description": "The requested or returned page size." }, "currentPage": { "type": "integer", "exclusiveMinimum": 0, "description": "The current 1-based page number." }, "totalPages": { "type": "integer", "minimum": 0, "description": "The total number of result pages." } }, "required": [ "total", "count", "perPage", "currentPage", "totalPages" ], "additionalProperties": false, "description": "Pagination metadata returned by Invoice Ninja." }, "nullable": false, "handle": "pagination" } ], "name": "Read first 50 Invoice Ninja clients", "executor": { "kind": "connector", "action": "invoice_ninja.list_clients" } } }, "n_c3c28354ec4ebba3": { "name": "Invoice Ninja clients and pagination", "kind": "outputs", "outputDefs": [ { "jsonSchema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The Invoice Ninja hashed resource ID." }, "name": { "type": [ "string", "null" ], "description": "The client company or organization name." }, "number": { "type": [ "string", "null" ], "description": "The client number." }, "balance": { "type": [ "number", "null" ], "description": "The client's outstanding balance." }, "paid_to_date": { "type": [ "number", "null" ], "description": "The total amount paid by the client." }, "contacts": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "description": "The Invoice Ninja hashed resource ID." }, "first_name": { "type": [ "string", "null" ], "description": "The contact's first name." }, "last_name": { "type": [ "string", "null" ], "description": "The contact's last name." }, "email": { "type": [ "string", "null" ], "description": "The contact's email address." }, "phone": { "type": [ "string", "null" ], "description": "The contact's phone number." } }, "additionalProperties": true, "description": "An Invoice Ninja client contact." }, "description": "Contacts attached to the client." } }, "additionalProperties": true, "description": "An Invoice Ninja client object." }, "description": "Clients returned by Invoice Ninja." }, "nullable": false, "handle": "clients" }, { "jsonSchema": { "type": "object", "properties": { "total": { "type": "integer", "minimum": 0, "description": "The total number of matching records." }, "count": { "type": "integer", "minimum": 0, "description": "The number of records in the current page." }, "perPage": { "type": "integer", "minimum": 0, "description": "The requested or returned page size." }, "currentPage": { "type": "integer", "exclusiveMinimum": 0, "description": "The current 1-based page number." }, "totalPages": { "type": "integer", "minimum": 0, "description": "The total number of result pages." } }, "required": [ "total", "count", "perPage", "currentPage", "totalPages" ], "additionalProperties": false, "description": "Pagination metadata returned by Invoice Ninja." }, "nullable": false, "handle": "pagination" } ], "outputMappings": { "clients": { "kind": "sources", "sources": [ { "kind": "node", "nodeId": "n_cfa5b93d71b34438", "output": "clients" } ] }, "pagination": { "kind": "sources", "sources": [ { "kind": "node", "nodeId": "n_cfa5b93d71b34438", "output": "pagination" } ] } } } }, "edges": [ { "source": "n_2d419e4e72e37779", "target": "n_cfa5b93d71b34438" }, { "source": "n_cfa5b93d71b34438", "target": "n_c3c28354ec4ebba3" } ] } }, "modules": {} }, "presentation": { "designer": { "version": 1, "flow": { "direction": "vertical" } } } }