Automation
Active · Apple Notes → Airtable
Kallor Group · Automation
Automation Pipeline
Apple Notes → Make → OpenAI → Airtable
What This Does

You write a raw observation into Apple Notes in any format — unstructured, abbreviated, mid-thought. Make watches for new notes, sends the content to OpenAI which extracts the signal, applies all 6 Lenses, classifies and tags it, formats it into the Kallor schema, and pushes a structured record directly into Airtable. Zero manual data entry.

Pipeline Flow~$50/month · 4 steps
📝
Apple Notes
Trigger · Unstructured input

Write any observation, idea, or thought in your own words. No template required. One note = one signal. Make watches a specific folder — anything added triggers the pipeline within minutes.

Make (formerly Integromat)
Orchestration · Scenario trigger

Watches the Apple Notes folder via webhook or polling. On new note: extracts raw text, strips formatting, passes to OpenAI. On OpenAI response: parses the structured JSON and maps each field to the correct Airtable column.

OpenAI (GPT-4o)
Processing · 4 operations

Receives raw note text. Simultaneously: (1) extracts and structures the core signal, (2) applies each of the 6 Lenses and produces a score 1–5 with one-line reasoning, (3) classifies source category and assigns tags, (4) formats the full output as structured JSON matching the Airtable schema.

Airtable
Destination · Signal Log + Opportunity Tracker

Receives the structured record and creates a new row in the Signal Log table. If KDE scores are above the test threshold, a linked record is also created in the Opportunity Tracker. Status is set automatically based on score average.

Make Scenario — Module BreakdownBuild order
1
Watch Notes (Trigger)

Apple Notes → Watch Notes module. Set to watch a folder named "Kallor Signals". Polling interval: 5 minutes. Outputs: note title, body text, created date.

Trigger
2
Text Parser

Strip any HTML formatting from the note body. Extract plain text only. Pass to next module as a clean string variable.

Transform
3
OpenAI → Create a Completion

Model: gpt-4o. System prompt: Kallor KDE schema (see below). User prompt: raw note text. Max tokens: 1200. Temperature: 0.2. Response format: JSON object.

AI
4
JSON Parser

Parse the OpenAI response string into a JSON object. Map each key to a named variable: signal_text, category, tags, scores[], status, kill_trigger_note, summary.

Transform
5
Airtable → Create a Record

Table: Signal Log. Map each JSON variable to the corresponding Airtable field. Date created = now(). Source = "Apple Notes". Raw note body stored in a separate long-text field for reference.

Output
6
Router → Opportunity Tracker (conditional)

Filter: if average KDE score > 2.5 AND kill_trigger score > 2. If true: create linked record in Opportunity Tracker table with status "New — Review Required". If false: Signal Log only, status "Logged".

Conditional
Example Input — Raw Apple NoteUnstructured · Any format
You write this
talked to a sparky today - says every cable job gets quoted off experience and gut feel. no one uses software. its always wrong and costs them. said he'd pay for something that just told him how much cable to order without having to think about it. happens on every job, not just big ones.
OpenAI System PromptCopy this into Make exactly
# KALLOR GROUP — Signal Processing Prompt # Role: You are the Kallor Decision Engine processing a raw market signal. # Output: JSON only. No preamble. No explanation outside the JSON. You will receive a raw note in any format. Extract, score, and structure it using the Kallor Decision Engine schema. OUTPUT FORMAT — Return exactly this JSON structure: { "signal_text": "Clean 1-3 sentence description of the structural observation. Factual. No analysis.", "summary": "One sentence. What is the friction or opportunity in plain language.", "category": "One of: Market / Labour / Tech / Partner / Research / Field Obs", "tags": ["tag1", "tag2"], "scores": { "structural_demand": 0, "structural_demand_note": "One line reasoning", "market_timing": 0, "market_timing_note": "One line reasoning", "operator_capability": 0, "operator_capability_note": "One line reasoning", "capital_efficiency": 0, "capital_efficiency_note": "One line reasoning", "asymmetric_upside": 0, "asymmetric_upside_note": "One line reasoning", "kill_trigger": 0, "kill_trigger_note": "One line reasoning" }, "kde_average": 0.0, "initial_decision": "One of: Kill / Park / Test / Allocate", "kill_condition": "What would need to be true to kill this immediately", "source": "Apple Notes" } SCORING RULES: - Score each lens 1-5. 1=Kill/No evidence. 5=Exceptional/Structural. - kde_average = mean of all 6 scores, rounded to 1 decimal. - initial_decision: Kill if avg <2.0 OR kill_trigger <=2. Park if avg 2.0-2.9. Test if avg 3.0-3.9. Allocate if avg >=4.0. - tags: 2-4 specific industry/domain tags. Lowercase. e.g. ["cable", "construction", "estimation", "tradies"] - Be conservative. Do not inflate scores. Structural reality only.
Example Output — Structured RecordWhat lands in Airtable
Signal
Electrical subcontractors quote cable quantities from experience with no standardised system. Consistent error and waste on every job regardless of scale. Willingness to pay confirmed by field conversation.
Summary
No standardised cable estimation system exists. Operators pay in errors and wasted material on every job.
Category
Field Obs
Tags
cable · construction · estimation · tradies · electrical
KDE Scores
5 Structural Demand   4 Market Timing   5 Operator Capability   4 Capital Efficiency   4 Asymmetric Upside   4 Kill Trigger
KDE Average
4.3 — above Test threshold → routed to Opportunity Tracker
Decision
Test
Kill Condition
Existing software already solves this with high adoption — market has moved before we build.
Raw Note
talked to a sparky today - says every cable job gets quoted off experience...