Inboxed2 avatar

Inboxed2

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Inboxed2

Inboxed2

Stateless post-processing for inbox data. Classifies new text, links or deduplicates it against existing notes, and outputs merge recommendations plus portable artifacts (ICS, todo, markdown) for automation pipelines.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Yin Loon Khor

Yin Loon Khor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Share

Inboxed – Text-to-Records Merge Engine

This Apify Actor converts messy short text notes into structured JSON notes using Groq for classification, and intelligently links or dedupes them against existing notes you provide.

Privacy & Security

  • Stateless: Does not persist or reuse any input data. You must pass existing_notes every time to perform linking.
  • Privacy-safe: Do NOT detect, store, redact, or handle secrets of any kind. Treat all text as normal.
  • No Retention: Process input → return output → exit.
  • No Logging: Raw text inputs are not logged to console.

Features

  1. Classification: Uses Groq to classify text into task, event, list, or note.
  2. Stateless Linking: Compares new items against existing_notes using local similarity (no vector DB required).
  3. Deduplication: Identifies potential duplicates based on high similarity scores.
  4. Structured Artifacts: Generates standardized artifacts (ICS, Todo, Markdown) for pipeline integration.
  5. Smart Merge Recommendations: Provides structured merge payloads with conflict detection.
  6. Clean Body Extraction: Removes email noise (Re:, signatures, etc.) for cleaner descriptions and matching.

Input Example

{
"items": [
"meeting with john at 8",
"grocery: chicken, fish, tuna"
],
"existing_notes": [
{ "id": "n1", "title": "Meetings", "body": "meeting with john at 7" },
{ "id": "n2", "title": "Grocery list", "body": "grocery: fish, eggs" }
],
"model": "openai/gpt-oss-20b",
"topK": 3,
"linkThreshold": 0.72,
"duplicateThreshold": 0.88,
"output": ["ics", "todo", "markdown"]
}

Output Example

{
"notes": [
{
"index": 0,
"type": "event",
"intent": "scheduling",
"title": "meeting with john",
"body": "meeting with john at 8",
"clean_body": "meeting with john at 8"
}
],
"actions": [
{
"index": 0,
"action": "possible_duplicate",
"best_target_id": "n1",
"best_score": 0.95,
"matches": [
{ "target_id": "n1", "score": 0.95 }
],
"merge": {
"recommended": true,
"target_id": "n1",
"merged_title": "Meeting with John",
"merged_body": "meeting with john at 8",
"conflicts": [
{ "field": "time", "existing": "7", "incoming": "8", "resolution": "needs_review" }
]
}
}
],
"artifacts": {
"ics": [
{
"index": 0,
"ics": "BEGIN:VCALENDAR\r\n...",
"events_count": 1,
"alarms_count": 1,
"source_text": "meeting with john at 8",
"time_assumptions": {
"date_source": "inferred",
"date_used": "2026-01-31",
"timezone": "floating"
}
}
],
"todo": [
{ "index": 0, "text": "2026-01-31 meeting with john at 8" }
],
"markdown": [
{ "index": 0, "text": "# Meeting\n- meeting with john" }
]
},
"meta": {
"model": "openai/gpt-oss-20b",
"count_in": 1,
"count_out": 1,
"existing_count": 2,
"retention": "none",
"secrets_handling": "not_processed",
"llm_used": true
}
}

Configuration

  • GROQ_API_KEY: Required environment variable.