This guide walks you through setting up an automated workflow in Google Workspace using Google Sheets, Apps Script, and Forms to evaluate OSINT sources. It includes steps for grading, cross-referencing domains, and reporting suspicious sources.
1. Create Your Source Evaluation Sheet
Create a new Google Sheet and name it:
OSINT_Source_Evaluation
Tabs to Include:
Sources
Columns:
Date Added
Source URL
Domain
Source Type (News, Blog, Social, Forum)
Reliability Grade (A–F)
Credibility Grade (1–6)
Matched List (Trusted / Disinfo / Unknown)
Analyst Notes
Flag for Review (Yes/No)
Trusted_Domains
Add a list of trusted domains (e.g. bbc.co.uk, reuters.com)
Disinfo_Domains
Add known disinformation domains (e.g. southfront.org, newsfront.info)
2. Set Up a Google Form for Analysts to Submit Suspect Sources
Form Title: Report a Suspicious OSINT Source
Fields:
Source URL
Reason for Suspicion
Optional Notes
Connect this form to a sheet called Reported_Sources.
3. Add Google Apps Script for Domain Matching
i. In your Sheet, go to Extensions > Apps Script
ii. Replace the default code with the following:
javascript
CopyEdit
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const row = e.range.getRow();
const col = e.range.getColumn();
if (sheet.getName() === "Sources" && col === 2) {
const domainCell = sheet.getRange(row, 3);
const url = e.value;
try {
const domain = new URL(url).hostname.replace("www.", "");
domainCell.setValue(domain);
const trustedList = e.source.getSheetByName("Trusted_Domains").getRange("A:A").getValues().flat();
const disinfoList = e.source.getSheetByName("Disinfo_Domains").getRange("A:A").getValues().flat();
const matchCell = sheet.getRange(row, 7);
if (trustedList.includes(domain)) {
matchCell.setValue("Trusted");
} else if (disinfoList.includes(domain)) {
matchCell.setValue("Disinfo");
} else {
matchCell.setValue("Unknown");
}
} catch (err) {
domainCell.setValue("Invalid URL");
}
}
}
iii. Save the script, name it EvaluateSource, and refresh your Sheet.
4. Conditional Formatting (Optional)
Use colour coding:
Red for Disinfo
Yellow for Unknown
Green for Trusted
This makes it easy to spot problems visually.
5. Dashboards and Alerts (Optional)
Use Looker Studio (formerly Google Data Studio) to create a live dashboard from your Sources and Reported_Sources sheets.
Set up alerts via Apps Script or webhook integrations (e.g. Slack, Discord, or Gmail) to notify your team when new Disinfo entries are detected.