Logo

AI Receipt Scanner

Automatic workflow to extract data from receipts, and convert them into structured data.

Receipt Scanner

Video

Overview

The Receipt Scanner automation helps you digitize and organize receipt data automatically. When you upload a receipt image to Google Drive, it triggers a workflow that:

  1. Extracts the text using OCR (Optical Character Recognition)
  2. Processes the text to identify key information
  3. Saves the structured data to your spreadsheet

Instructions

Prerequisites

Before starting, you'll need the following accounts and API keys:

  • Google Drive Account: For storing receipts and the output spreadsheet
  • Make.com Account: Sign up here - Used for workflow automation
  • Eden.ai Account: Sign up here
    • Create an API key in your dashboard
    • Required for OCR processing
  • SystemPrompt.io Account: Sign up here
    • Create an API key in your console
    • Used for intelligent text processing

Step 1: Configure SystemPrompt.io

Create a new prompt template that will process the receipt text. You have two options:

curl -X POST https://api.systemprompt.io/v1/prompt \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
"instruction": {
"static": "Your task is to interpret and analyze JSON-encoded receipts. Extract and structure the information into components such as item names, prices, quantities, total amounts, dates, and vendor details. Format the output to facilitate review and processing by other systems. Maintain accuracy in labeling each aspect of the receipt's data, and include error-checking for anomalies like missing fields or inconsistent totals. Adjust to recognize different receipt formats while ensuring they adhere to a common JSON structure. Aim for clarity and precision in your analysis.",
"dynamic": "{{ message }}",
"state": "{{ conversation.history }}"
},
"input": {
"name": "ReceiptInterpreterSystem",
"description": "The ReceiptInterpreterSystem schema is designed to guide an AI in processing JSON representations of receipts. It extracts information such as item names, prices, quantities, total amounts, dates, and vendor details, ensuring that data is well-structured and clearly labeled. The system includes error-checking mechanisms to handle common issues like missing fields or inconsistent totals, ensuring adaptability to varying receipt formats while maintaining a coherent JSON structure.",
"schema": {
"name": "Input Schema",
"strict": true,
"description": "Sample input schema",
"input_schema": {
"type": "object",
"properties": [],
"additionalProperties": false
}
},
"type": [
"message"
],
"reference": []
},
"output": {
"name": "ReceiptInterpreterSystem",
"description": "The ReceiptInterpreterSystem schema is designed to guide an AI in processing JSON representations of receipts. It extracts information such as item names, prices, quantities, total amounts, dates, and vendor details, ensuring that data is well-structured and clearly labeled. The system includes error-checking mechanisms to handle common issues like missing fields or inconsistent totals, ensuring adaptability to varying receipt formats while maintaining a coherent JSON structure.",
"schema": {
"type": "object",
"title": "Simplified Receipt",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"receiptId",
"amount",
"date",
"issuedBy",
"issuedTo",
"purpose",
"category"
],
"properties": {
"date": {
"type": "string",
"description": "The date on which the receipt was issued, formatted as m-d-yyyy."
},
"amount": {
"type": "number",
"description": "The monetary amount in the currency. Does not include currency symbol."
},
"purpose": {
"type": "string",
"description": "A short sentence explaining this expense, what kind of service and the function."
},
"category": {
"type": "string",
"description": "A broader classification of the purpose, for analysis and reporting."
},
"issuedBy": {
"type": "string",
"description": "The entity or business name that issued the receipt."
},
"issuedTo": {
"type": "string",
"description": "The name of the entity or person to whom the receipt was issued."
},
"receiptId": {
"type": "string",
"description": "Unique identifier for the receipt."
}
},
"additionalProperties": false
},
"type": [
"structured_data"
],
"reference": []
},
"metadata": {
"title": "Receipt interpreter",
"description": "A prompt to understand a JSON representation of a receipt, and analyze and structure the information",
"tag": []
}
  }'

Step 2: Set Up Google Drive

  1. Create a new folder structure:
    • Create a folder named invoices
  2. Create the output spreadsheet:
    • Create a new Google Sheet named invoice
    • Add the following column headers:
      • Date
      • category
      • Purpose
      • Amount
      • Business Name
      • Issued To
      • Receipt ID
      • Link

Step 3: Configure Make.com Scenario

  1. Create New Scenario:

    • Go to make.com
    • Navigate to Scenarios → Create scenario
  2. Add Google Drive Trigger:

    • Select "Google Drive" → "Watch Files"
    • Configure:
      • Folder: Select your incoming folder
      • Watch: "New and Updated Files"
      • File Types: "image/*"
  3. Add Eden.ai OCR:

    • Add new action: "Eden.ai" → "Extract Text from Image"
    • Configure:
      • Input: File from Google Drive
      • Provider: Select preferred OCR provider
      • Language: Auto-detect
  4. Add SystemPrompt.io Processing:

    • Add new action: "SystemPrompt.io" → "Process Text"
    • Configure:
      • Prompt ID: Your created prompt ID
      • Input: OCR text from previous step
  5. Add Google Sheets Action:

    • Add new action: "Google Sheets" → "Add Row"
    • Map the JSON response fields to appropriate columns
  6. Add File Move Action:

    • Add final action: "Google Drive" → "Move File"
    • Move processed receipt to the processed folder

Code Templates

On this page