← Files SaffARCHIVED FILE
plugin.json
6.42 KB · Nov 2, 2026 · 13:17 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "saff",
"version": "1.0.3",
"description": "Read the results already extracted in your Saff workspace: tables, rows, extracted values with confidence and evidence, correction history, and processing status. Read-only.",
"author": {
"name": "Lenouar Artificial Intelligence Developing Services LLC",
"email": "support@saffnow.com",
"url": "https://saffnow.com"
},
"homepage": "https://saffnow.com/docs/connect-ai-assistant",
"keywords": [
"pdf to excel",
"document extraction",
"invoices",
"bank statements",
"ocr",
"arabic"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Saff",
"shortDescription": "Read your extracted documents",
"longDescription": "Saff turns PDFs, scans and photographs (invoices, bank statements, delivery notes, receipts) into tables with the columns you define, in English and Arabic. This plugin lets ChatGPT read the results already in your Saff workspace: the tables you approve, their rows and extracted values, the confidence and page evidence behind each value, the correction history of a cell, and the processing status of batches and documents.\n\nUse it to find an invoice by supplier, see which values still need review, check whether a person corrected a total and what it read before, or confirm that a batch has finished, without exporting a spreadsheet first.\n\nIt is read-only by design. It cannot upload, extract, edit, review, delete or export anything, and it never reaches payments, API keys or other credentials. It sees only the workspace and tables you approve when you connect, and you can narrow or revoke that access from Saff at any time. Extracted document content is returned as data and never followed as instructions.\n\nTo add documents, define tables or export to Excel, use Saff at saffnow.com.",
"developerName": "Lenouar",
"category": "Productivity",
"capabilities": [
"Read approved extraction tables",
"Search extracted rows",
"Show value evidence and correction history",
"Check batch and document processing status"
],
"websiteURL": "https://saffnow.com",
"supportURL": "https://saffnow.com/contact",
"privacyPolicyURL": "https://saffnow.com/privacy",
"termsOfServiceURL": "https://saffnow.com/terms",
"defaultPrompt": [
"Which of my Saff tables can you see?",
"Which extracted values in my Saff invoices still need review?",
"Has my latest Saff batch finished processing?"
],
"brandColor": "#1f6a4a",
"brandColorDark": "#9ec9b3",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Show what the connection can reach",
"prompt": "What can you see in my Saff workspace?",
"tools_triggered": "get_connection_context, list_tables",
"expected_behavior": "Names the connected workspace, the read permissions granted, and the tables shared with this connection, including Invoices. Nothing outside that approval is listed."
},
{
"description": "Describe a table's columns",
"prompt": "What columns does my Invoices table in Saff extract?",
"tools_triggered": "list_tables, get_table",
"expected_behavior": "Lists the Invoices table's columns with their types: Supplier, Invoice number, Invoice date, Total and Currency."
},
{
"description": "Find a document by supplier",
"prompt": "Find the invoice from Gulf Office Supplies in Saff.",
"tools_triggered": "list_tables, search_rows",
"expected_behavior": "Returns the matching row with its extracted values and their confidence, plus a link to open it in Saff. If the search has not yet scanned the whole table it says so instead of reporting no match."
},
{
"description": "Show a value's correction history",
"prompt": "Was the total on the Gulf Office Supplies invoice corrected? Show its history.",
"tools_triggered": "search_rows, get_row, get_cell_history",
"expected_behavior": "Shows the originally extracted total (4,966.50), the corrected value (4,816.50) and when it changed, and that a person in the workspace made the change rather than the extraction."
},
{
"description": "Check processing status",
"prompt": "Has my latest batch in the Invoices table finished, and how many rows still need review?",
"tools_triggered": "list_tables, list_batches, get_batch",
"expected_behavior": "Reports the most recent batch's processing status and how many of its rows need review versus are already reviewed."
}
],
"negative": [
{
"description": "Uploading or extracting documents. The plugin is read-only and has no upload or extraction tool, so it should explain that documents are added in Saff itself and offer to read results that already exist.",
"prompt": "Upload this PDF to Saff and extract the invoice."
},
{
"description": "Changing or deleting data. No write tools exist, so it should decline, point to editing in Saff, and offer to show the current values instead.",
"prompt": "Change the total on the Gulf Office Supplies invoice to 500 and delete the other rows."
},
{
"description": "Billing and credentials. The plugin never reaches payments, the wallet or API keys, so it should decline and direct the user to Saff's billing and integrations pages.",
"prompt": "Top up my Saff wallet and show me my API keys."
}
]
},
"commerce": false,
"commerce_description": "The Saff plugin only reads extraction results. It does not sell products or process payments.",
"demo_recording_url": "https://youtu.be/2KycwXky1tw"
},
"publication": {
"release_notes": "Initial release: read-only access to approved Saff tables, rows, value evidence, correction history and processing status."
},
"apps": "./.app.json"
}
}
}
SHA-256: ba7df2c0f9249bcf932f7ec58989ddbb8ca244dadbaa8c3e38395c7cdf6f5825