DataMateApps

Save any data as a record

Privacy Policy for DataMateApps and AddressBlock

Last updated: May 20, 2025

Excellence-US, LLC ("we", "us", or "our") operates DataMateApps and AddressBlock, commercial add-ons for Google Workspace. This privacy policy explains how we collect, use, and protect your information when you use our services. By using DataMateApps or AddressBlock, you agree to the terms outlined in this policy. We are committed to safeguarding your privacy and adhering to the Google API Services User Data Policy, including its Limited Use requirements.

Data We Collect and How We Use It

DataMateApps and AddressBlock collect and process data to provide their core functionalities, such as saving records, managing contacts, creating forms, and generating address blocks. We also collect limited data for analytics to monitor usage and improve our services. Below is a detailed breakdown of the data we access and how it’s used:

We do not collect or process data beyond what is necessary for the app’s functionality or analytics. All data accessed via Google APIs is handled securely. Notification emails sent to projectprodigyapp@gmail.com are used solely for usage tracking and are not shared with third parties beyond Excellence-US, LLC.

Permissions We Request

DataMateApps and AddressBlock require specific permissions to function. These permissions allow us to access your Google account data as described below. Each permission is necessary for the app’s core features, and we’ve explained why we need it and why a narrower scope wouldn’t work.

DataMateApps Permissions

https://www.googleapis.com/auth/spreadsheets: Allows DataMateApps to see, edit, create, and delete Google Sheets. We use this to create and manage spreadsheets for records, templates (e.g., inventory, timesheets), contact lists, and usage counters. A narrower scope wouldn’t suffice because dynamic spreadsheet operations are central to the app.

https://www.googleapis.com/auth/drive: (Only used in open-source code for UploadFile and Signature form fields when deployed as web app.) Allows DataMateApps to see, edit, create, and delete files in Google Drive. We use this to store form uploads (e.g., images, PDFs), signatures, and generated files, such as reports or templates. A narrower scope wouldn’t suffice because full Drive access is required for file management.

https://www.googleapis.com/auth/gmail.send: Allows DataMateApps to send emails on your behalf. We use this to send notifications to you and to projectprodigyapp@gmail.com (e.g., “DataMate Dataset Created”) and emails generated from your data, such as reports or confirmations. A narrower scope wouldn’t suffice because sending emails is a core feature.

https://www.googleapis.com/auth/script.container.ui: Allows DataMateApps to display third-party web content in prompts, dialogs, and sidebars within Google Sheets. We use this to show interactive UI elements, such as form previews, contact forms, or sidebars for data entry. A narrower scope wouldn’t suffice because custom UI is required for user interaction.

https://www.googleapis.com/auth/gmail.compose: Allows DataMateApps to create and modify email drafts. We use this to pre-fill emails with data from your spreadsheets or forms, enabling you to review before sending. A narrower scope wouldn’t suffice because draft creation is essential for email automation.

https://www.googleapis.com/auth/script.send_mail: Allows DataMateApps to send emails via Google Apps Script. We use this for automated emails, such as alerts when a dataset is created or notifications to projectprodigyapp@gmail.com, complementing Gmail API functionality. A narrower scope wouldn’t suffice because this scope ensures reliable email delivery.

AddressBlock Permissions

https://www.googleapis.com/auth/spreadsheets: Allows AddressBlock to see, edit, create, and delete Google Sheets. We use this to create and manage contact lists and address blocks in spreadsheets. A narrower scope wouldn’t suffice because spreadsheet operations are essential for generating address blocks.

https://www.googleapis.com/auth/script.external_request: Allows AddressBlock to connect to external services. We use this to fetch address-related data (e.g., via geocoding APIs) to enhance address accuracy. A narrower scope wouldn’t suffice because external data integration is critical for the feature.

https://www.googleapis.com/auth/script.container.ui: Allows AddressBlock to display third-party web content in prompts and sidebars. We use this to show interactive UI elements, such as contact forms or address previews, within Google Sheets. A narrower scope wouldn’t suffice because custom UI is required for user interaction.

Third-Party Integrations

DataMateApps may connect to external services via the script.external_request scope to enhance functionality, such as fetching geocoding data for addresses or integrating with APIs for form processing. These services are carefully selected, and we ensure they comply with data protection standards. No personal data is shared with third parties unless explicitly required for the service, and only with your consent. The notification emails sent to projectprodigyapp@gmail.com are managed by Excellence-US, LLC and are not shared with third parties.

Data Sharing

We do not share your personal data with third parties, except as described below:

All other data accessed via Google APIs remains within the Google ecosystem or is processed securely by our app.

Data Retention

Data stored in your Google Sheets, Drive, or Gmail accounts remains under your control and is retained according to your Google account settings. Specifically:

You can delete data in your Google account at any time or request deletion of data we hold (e.g., website comments) by contacting us.

Data Security

We implement industry-standard security measures to protect your data, including secure connections and compliance with Google’s API security requirements. However, no system is completely secure, and we encourage you to use strong passwords and enable two-factor authentication on your Google account.

Your Data Rights

You have full control over your data. You can:

To exercise these rights, contact us at the link below. We will respond within 30 days. Note that we may retain certain data for legal or administrative purposes, as required by law.

Comments and Reviews

If you leave comments or reviews on our website (https://datamateapp.github.io), we collect the data provided in the comment form, such as your name and comment content. This data is used to display your comment publicly and is retained indefinitely unless you request deletion.

Contact Us

If you have questions, feedback, or requests regarding your data, please contact us at: Contact Form.

Our website: https://datamateapp.github.io

Who We Are

Excellence-US, LLC is the developer of DataMateApps and AddressBlock, designed to enhance productivity within Google Workspace. We are committed to transparency, user privacy, and delivering reliable tools for data management.

DataMateApps Function Descriptions

The following describes the core functions of DataMateApps, detailing how they interact with your Google Sheets data to provide features like record saving, contact management, and form building.

onInstall()

Triggers when the add-on is installed, calling onOpen() to initialize the custom menu.

onOpen(e)

Creates a custom menu named "DataMate 🌐" in Google Sheets with options for saving records, resetting inputs, managing templates, building forms, handling contacts, and showing tutorials.

doNothing()

Displays an alert prompting the user to select a template option when no specific action is chosen.

showUploadDialog()

Opens a modal dialog to upload a CSV file, using the UploadCSV.html interface for importing contacts.

processCSV(csvContent)

Parses and processes uploaded CSV data, mapping specific columns from an "Import" sheet to a "contacts" sheet based on predefined mappings, then notifies the user of successful import.

edit()

Populates the "Address" sheet with VLOOKUP formulas to retrieve contact details (e.g., company, email, address) from the "contacts" sheet based on a lookup value in cell F1.

newcontact()

Adds a new contact by copying data from the "NewContact" sheet to the "contacts" sheet, inserting a new row, setting a concatenated name formula, sorting contacts, and clearing input fields.

copyInput1()

Copies data, formats, formulas, and column widths from "Sheet1" (A3:Q48) to the "Input" sheet, then activates cell C4 in the "Input" sheet.

copyInput2()

Copies data, formats, formulas, and column widths from "Sheet1" (A3:Q48) to the "View_Print" sheet, then activates cell A1 in the "View_Print" sheet.

newfile()

Creates or verifies the existence of core sheets ("Input", "View_Print", "Log", "Update", "Data"), sets up headers, formulas, formatting, and a help hyperlink, then calls copyInput1(), view(), and sends a notification email.

sendDataMateEmail()

Sends an email to "projectprodigyapp@gmail.com" with the subject "DataMate Dataset Created" to notify that a new dataset has been added.

save()

Saves data from the "Input" sheet (A1:Q48) to the "Data" sheet in specific columns, copies images, updates the "Update" and "Log" sheets with formulas, adds a hyperlink to "View_Print", and sends a notification email.

sendDataMateEmail1()

Sends an email to "projectprodigyapp@gmail.com" with the subject "DataMate Record" to notify that a new record has been saved.

view()

Refreshes the "View_Print" sheet by calling copyInput2() and setting VLOOKUP formulas to display data from the "Update" and "Data" sheets based on a key in A1.

contacts()

Creates or updates "contacts", "Address", and "NewContact" sheets, sets up headers, formulas, data validation, and formatting for contact management, then activates cell B1 in the "Address" sheet.

EditAddressSheet()

Applies VLOOKUP formulas to the "Address" sheet (F2:F14) to fetch contact details by name from the "contacts" sheet, adds data validation to a specified cell in "Sheet1", and copies formulas below it.

EditAddressSheet1()

Applies INDEX/MATCH formulas to the "Address" sheet (G2:G14) to fetch contact details by company from the "contacts" sheet, adds data validation to a specified cell in "Sheet1", and copies formulas below it.

setup()

Initializes an "Inventory" template by creating or configuring sheets (e.g., "Inventory", "Stock") with predefined headers, formulas, and formatting for tracking inventory items.

updateInventory()

Updates the "Inventory" sheet by copying new or modified stock data from an input range to a master inventory log, recalculating totals, and maintaining stock levels.

setupTS()

Sets up a "Weekly Timesheets" template by creating sheets (e.g., "Timesheet", "Summary") with headers, time-tracking formulas, and data validation for employee hours.

copyToCodeTotals()

Copies cost code data from a timesheet or input sheet to a "Code Totals" sheet, aggregating hours or costs by code for financial tracking.

setupPO()

Configures a "Purchase Order" template by creating sheets (e.g., "PO", "Items") with headers, formulas for totals, and data validation for supplier and item details.

previewForm()

Displays a preview of a form built in the "FormSetup" sheet, rendering fields defined in the FormBuilder (e.g., Text, Dropdown) using an HTML interface for testing.

showFormBuilder()

Opens a sidebar or modal dialog with the FormBuilder.html interface, allowing users to create or edit form fields and save configurations to the "FormSetup" sheet.

showMailItSidebar()

Displays a sidebar using MailIt.html to compose emails, selecting sheets, ranges, and contacts for sending or drafting emails with embedded data.

showTutorial()

Opens a modal dialog or sidebar displaying a tutorial with instructions on using DataMate’s features, such as templates, forms, and contact management.