Add events to workflows

This commit is contained in:
Dries Augustyns
2025-12-01 19:08:02 +01:00
parent b1f0043940
commit b521a405bb
4 changed files with 80 additions and 119 deletions
+24
View File
@@ -5,6 +5,7 @@ import {prisma} from '../database/prisma.js';
import {HttpException} from '../exceptions/index.js';
import {EventService} from './EventService.js';
import {ContactService} from './ContactService.js';
export interface PaginatedWorkflows {
workflows: Workflow[];
@@ -648,4 +649,27 @@ export class WorkflowService {
},
});
}
/**
* Get all available fields for workflow conditions (contact fields + event fields)
*/
public static async getAvailableFields(projectId: string, eventName?: string) {
// Get contact fields (standard + custom data fields)
const contactFields = await ContactService.getAvailableFields(projectId);
// Add standard contact fields
const standardContactFields = ['contact.email', 'contact.subscribed'];
// Get event fields by analyzing actual event data
// This will only show fields that have been seen in actual events
const eventFields = await EventService.getAvailableEventFields(projectId, eventName);
// Combine all fields
const allFields = [...standardContactFields, ...contactFields, ...eventFields].sort();
return {
fields: allFields,
count: allFields.length,
};
}
}