Analyze nodes to determine trigger type and integrations.
(self, nodes: List[Dict])
| 221 | return workflow |
| 222 | |
| 223 | def analyze_nodes(self, nodes: List[Dict]) -> Tuple[str, set]: |
| 224 | """Analyze nodes to determine trigger type and integrations.""" |
| 225 | trigger_type = "Manual" |
| 226 | integrations = set() |
| 227 | |
| 228 | # Enhanced service mapping for better recognition |
| 229 | service_mappings = { |
| 230 | # Messaging & Communication |
| 231 | "telegram": "Telegram", |
| 232 | "telegramTrigger": "Telegram", |
| 233 | "discord": "Discord", |
| 234 | "slack": "Slack", |
| 235 | "whatsapp": "WhatsApp", |
| 236 | "mattermost": "Mattermost", |
| 237 | "teams": "Microsoft Teams", |
| 238 | "rocketchat": "Rocket.Chat", |
| 239 | |
| 240 | "gmail": "Gmail", |
| 241 | "mailjet": "Mailjet", |
| 242 | "emailreadimap": "Email (IMAP)", |
| 243 | "emailsendsmt": "Email (SMTP)", |
| 244 | "outlook": "Outlook", |
| 245 | # Cloud Storage |
| 246 | "googledrive": "Google Drive", |
| 247 | "googledocs": "Google Docs", |
| 248 | "googlesheets": "Google Sheets", |
| 249 | "dropbox": "Dropbox", |
| 250 | "onedrive": "OneDrive", |
| 251 | "box": "Box", |
| 252 | # Databases |
| 253 | "postgres": "PostgreSQL", |
| 254 | "mysql": "MySQL", |
| 255 | "mongodb": "MongoDB", |
| 256 | "redis": "Redis", |
| 257 | "airtable": "Airtable", |
| 258 | "notion": "Notion", |
| 259 | # Project Management |
| 260 | "jira": "Jira", |
| 261 | "github": "GitHub", |
| 262 | "gitlab": "GitLab", |
| 263 | "trello": "Trello", |
| 264 | "asana": "Asana", |
| 265 | "mondaycom": "Monday.com", |
| 266 | # AI/ML Services |
| 267 | "openai": "OpenAI", |
| 268 | "anthropic": "Anthropic", |
| 269 | "huggingface": "Hugging Face", |
| 270 | # Social Media |
| 271 | "linkedin": "LinkedIn", |
| 272 | "twitter": "Twitter/X", |
| 273 | "facebook": "Facebook", |
| 274 | "instagram": "Instagram", |
| 275 | # E-commerce |
| 276 | "shopify": "Shopify", |
| 277 | "stripe": "Stripe", |
| 278 | "paypal": "PayPal", |
| 279 | # Analytics |
| 280 | "googleanalytics": "Google Analytics", |
no outgoing calls
no test coverage detected