Skip to main content

App Trigger Node

The Event from App node triggers your workflow when something happens in a connected application. Receive emails from Gmail, messages from Slack, new rows in Google Sheets, and events from 2,700+ integrated apps.

When to Use

  • Email automation - Process incoming emails from Gmail or Outlook
  • Chat responses - Respond to Slack or Teams messages
  • Data ingestion - React to new spreadsheet rows or database records
  • CRM triggers - Start workflows when deals close or contacts are updated
  • Form processing - Handle submissions from Typeform, JotForm, etc.

Example: Email Auto-Responder

Automatically acknowledge incoming support emails:
1

Connect Gmail

Add an Event from App node:
2

Check if auto-reply is needed

Add a Condition node to filter:
NOT ({{event_from_app_1.email.from}} contains "noreply")
AND NOT ({{event_from_app_1.email.subject}} contains "Re:")
3

Generate personalized response

Use an LLM node:
Write a brief, professional auto-acknowledgment for this support email.

From: {{event_from_app_1.email.from}}
Subject: {{event_from_app_1.email.subject}}

Include:
- Thanks for reaching out
- We've received their message
- Expected response time (24-48 hours)
- Ticket reference number: SUPP-{{timestamp}}
4

Send the reply

Connect to an External API (Gmail) node to send the reply, referencing the original thread.

Example: Slack Command Handler

Respond to specific commands in a Slack channel:
Workflow: Slack Bot Commands
├── Event from App (Slack #support, messages starting with "!")
├── Switch (route based on command)
│   ├── !status → HTTP Request (check service status) → Send Reply
│   ├── !ticket → External API (create ticket) → Send Reply
│   └── default → Send Reply ("Unknown command")
Configuration:
  • App: Slack
  • Channel: #support
  • Event type: message
  • Filter: text starts with "!"

Example: Spreadsheet Data Processor

Process new leads added to a Google Sheet:
Workflow: Lead Processor
├── Event from App (Google Sheets "Leads" sheet, row_added)
├── LLM (qualify and categorize the lead)
├── External API (add to CRM with categorization)
└── Condition (high value lead?)
    ├── Met: External API (Slack alert to sales)
    └── Unmet: Set Variable (log for weekly digest)
Accessing row data:
Company: {{event_from_app_1.row.Company}}
Email: {{event_from_app_1.row.Email}}
Budget: {{event_from_app_1.row.Budget}}

Communication

  • Gmail - Incoming emails, replies, labels
  • Slack - Messages, reactions, mentions, channel events
  • Microsoft Teams - Messages, mentions
  • Discord - Messages in servers

Productivity

  • Google Sheets - New rows, updates, cell changes
  • Notion - Page created, database item added
  • Airtable - Record created, updated

CRM & Sales

  • HubSpot - Contact created, deal closed
  • Salesforce - Lead created, opportunity updated
  • Pipedrive - Deal won, activity completed

Forms

  • Typeform - New submission
  • Google Forms - New response
  • JotForm - New submission

Support

  • Zendesk - Ticket created, updated
  • Intercom - New conversation, message
  • Freshdesk - Ticket events
CogniAgent supports 2,700+ apps through our integration platform. If you don’t see your app, check Settings > Integrations for the full list.

Filtering Events

Use filters to only trigger on specific events: Gmail - Only from specific senders:
{
  "from": {
    "contains": "@important-client.com"
  }
}
Slack - Only mentions of your bot:
{
  "text": {
    "contains": "@cognibot"
  }
}
Google Sheets - Only rows with specific values:
{
  "Status": {
    "equals": "New"
  }
}

Connecting Apps

Before using Event from App, connect the application:
  1. Go to Settings > Integrations
  2. Find your app and click Connect
  3. Authorize CogniAgent to access your account
  4. Configure which channels/resources to access
The application must be running to receive events. Events that occur while stopped are not queued.

Tips

Combine Event from App with Condition nodes for precise filtering. The event node gets all events; the Condition node filters to exactly what you need.
Use the threadId (Gmail) or thread_ts (Slack) to maintain conversation context when sending replies.

Settings

name
string
default:"Event from App"
Display name shown on the canvas.
key
string
default:"event_from_app_1"
Unique identifier for referencing outputs.
app
string
required
The connected application to monitor (Gmail, Slack, Google Sheets, etc.).
channel
string
required
The specific channel within the app:
  • Gmail: email address or label
  • Slack: channel or direct message
  • Google Sheets: specific spreadsheet
  • Custom: depends on the integration
eventType
string
required
What type of event to listen for:
  • Gmail: new_email, email_replied, email_labeled
  • Slack: message, reaction, mention
  • Google Sheets: row_added, row_updated, cell_changed
filters
object
Optional filters to narrow which events trigger the workflow.

Outputs

Outputs vary by app and event type. Common patterns:

Gmail Events

email
object
The email object containing:
  • from - Sender email address
  • to - Recipient(s)
  • subject - Email subject line
  • body - Email content (HTML and plain text)
  • attachments - Array of attachment metadata
  • threadId - Conversation thread identifier
  • receivedAt - Timestamp

Slack Events

message
object
The message object containing:
  • text - Message content
  • user - User who sent the message
  • channel - Channel ID
  • timestamp - Message timestamp
  • thread_ts - Thread ID if in a thread

Google Sheets Events

row
object
The row data as key-value pairs (header names as keys).
rowIndex
number
The row number that was added or changed.