import { FilterExpression as pushwoosh_objects_filters_v1_FilterExpression } from './pushwoosh_objects_filters_v1'; export interface Journey { GetJourneysList(request: GetJourneysListRequest): Promise; GetJourneyByUUID(request: GetJourneyByUUIDRequest): Promise; MoveJourneysToCategory(request: MoveJourneysToCategoryRequest): Promise; ValidateJourney(request: GetJourneyByUUIDRequest): Promise; StartJourney(request: GetJourneyByUUIDRequest): Promise; PauseJourney(request: GetJourneyByUUIDRequest): Promise; FinishJourney(request: GetJourneyByUUIDRequest): Promise; DraftJourney(request: GetJourneyByUUIDRequest): Promise; ArchiveJourney(request: GetJourneyByUUIDRequest): Promise; UpdateJourney(request: UpdateJourneyRequest): Promise; UpdateAndResumeJourney(request: UpdateJourneyRequest): Promise; GetHistory(request: GetHistoryRequest): Promise; Create(request: CreateRequest): Promise; Rename(request: RenameRequest): Promise; Delete(request: DeleteRequest): Promise<{}>; GetUserFlow(request: GetUserFlowRequest): Promise; GetJourneyQuickStatsByPoints(request: GetJourneyQuickStatsByPointsRequest): Promise; GetJourneyStats(request: GetJourneyStatsRequest): Promise; GetJourneyStatsByPointsExternal(request: GetJourneyStatsByPointsExternalRequest): Promise; GetJourneyStatsByPoint(request: GetJourneyStatsByPointRequest): Promise; CloneJourneys(request: CloneJourneysRequest): Promise; UpdateABSSplitterParams(request: UpdateABSSplitterParamsRequest): Promise; GetTags(request: GetTagsRequest): Promise; GetTagsAutocomplete(request: TagsAutocompleteRequest): Promise; GetPlaceholders(request: GetPlaceholdersRequest): Promise; GetAccountRestrictionValues(request: GetAccountRestrictionValuesRequest): Promise; GetJourneyGeneralTimeStatistics(request: GetJourneyGeneralTimeStatisticsRequest): Promise; GetJourneyUsers(request: GetJourneyUsersRequest): Promise; GetJourneyMetrics(request: GetJourneyMetricsRequest): Promise; GetJourneyDeliveryReport(request: GetJourneyDeliveryReportRequest): Promise; GetVoucherPools(request: GetVoucherPoolsRequest): Promise; StartJourneyV2(request: StartJourneyV2Request): Promise; PauseJourneyV2(request: PauseJourneyV2Request): Promise; FinishJourneyV2(request: FinishJourneyV2Request): Promise; DraftJourneyV2(request: DraftJourneyV2Request): Promise; ArchiveJourneyV2(request: ArchiveJourneyV2Request): Promise; UpdateJourneyV2(request: UpdateJourneyV2Request): Promise; UpdateAndResumeJourneyV2(request: UpdateAndResumeJourneyV2Request): Promise; CreateV2(request: CreateV2Request): Promise; RenameV2(request: RenameV2Request): Promise; UpdateABSSplitterParamsV2(request: UpdateABSSplitterParamsV2Request): Promise; ValidateJourneyV2(request: ValidateJourneyV2Request): Promise; GetWhatsAppPresetsByAppCode(request: GetWhatsAppPresetsByAppCodeRequest): Promise; GetEmailPresetsByAppCode(request: GetEmailPresetsByAppCodeRequest): Promise; GetLinePresetsByAppCode(request: GetLinePresetsByAppCodeRequest): Promise; GetSmsPresetsByAppCode(request: GetSmsPresetsByAppCodeRequest): Promise; GetPushPresetsByAppCode(request: GetPushPresetsByAppCodeRequest): Promise; GetEventsByApplicationCode(request: GetEventsByApplicationCodeRequest): Promise; GetEventAttributeValues(request: GetEventAttributeValuesRequest): Promise; GetRichMediaByApplicationCode(request: GetRichMediaByApplicationCodeRequest): Promise; GetRichMediaByCode(request: GetRichMediaByCodeRequest): Promise; TestWebhook(request: TestWebhookRequest): Promise; GetApplicationsByAccountId(request: GetApplicationsByAccountIdRequest): Promise; GetFiltersByAccountId(request: GetFiltersByAccountIdRequest): Promise; GetEventsByApplicationCodes(request: GetEventsByApplicationCodesRequest): Promise; GetMetaAdAccounts(request: GetMetaAdAccountsRequest): Promise; GetMetaAudiences(request: GetMetaAudiencesRequest): Promise; OpenJourneyForEdit(request: OpenJourneyForEditRequest): Promise; GetJourneyDraftChanges(request: GetJourneyDraftChangesRequest): Promise; ResumeJourney(request: ResumeJourneyRequest): Promise; GetJourneyVersions(request: GetJourneyVersionsRequest): Promise; StopJourneyVersion(request: StopJourneyVersionRequest): Promise; } export type OpenJourneyForEditRequest = { uuid?: string; }; export type GetJourneyDraftChangesRequest = { uuid?: string; }; export type DraftChangesKind = 'DRAFT_CHANGES_NONE' | 'DRAFT_CHANGES_PARAMS_ONLY' | 'DRAFT_CHANGES_DESTRUCTIVE'; export type GetJourneyDraftChangesResponse = { kind: DraftChangesKind; changedPaths: string[]; }; export type ResumeMode = 'RESUME_MODE_KEEP_CURRENT' | 'RESUME_MODE_NEW_VERSION'; export type ResumeJourneyRequest = { uuid?: string; mode?: ResumeMode; stopCurrentPermanently?: boolean; reenterPointUuids?: string[]; }; export type ResumeJourneyResponse = { response: GetJourneyByUUIDResponse; validation: ValidateJourneyResponse; }; export type GetJourneyVersionsRequest = { uuid?: string; }; export type JourneyVersionStatus = 'JOURNEY_VERSION_STATUS_UNKNOWN' | 'JOURNEY_VERSION_STATUS_ACTIVE' | 'JOURNEY_VERSION_STATUS_PAUSED' | 'JOURNEY_VERSION_STATUS_ACTIVE_CLOSED' | 'JOURNEY_VERSION_STATUS_INACTIVE'; export type JourneyVersion = { uuid: string; versionNumber: number; status: JourneyVersionStatus; usersLeft: number; activatedAt: string; activatedBy: User; campaignCodes: string[]; openForEntries: boolean; campaignCodesByOrigin: Record; }; export type GetJourneyVersionsResponse = { versions: JourneyVersion[]; }; export type StopJourneyVersionRequest = { uuid?: string; }; export type GetPlaceholdersRequest = { templateCode?: string; }; export type GetPlaceholdersResponse = { items: string[]; }; export type GetTagsRequest = {}; export type TagResponse = { id: number; name: string; type: TagType; isApplication: boolean; isUserSpecific: boolean; isSystem: boolean; }; export type GetTagsResponse = { payload: TagResponse[]; }; export type TagsAutocompleteRequest = { query?: string; tagName?: string; tagType?: TagType; }; export type TagsAutocompleteResponse = { payload: TagsAutocompleteResponsePayload; }; export type TagsAutocompleteResponsePayload = { values: AutocompleteValue[]; }; export type AutocompleteValue_kind_intValue = { type: 'intValue'; data: number; }; export type AutocompleteValue_kind_floatValue = { type: 'floatValue'; data: number; }; export type AutocompleteValue_kind_boolValue = { type: 'boolValue'; data: boolean; }; export type AutocompleteValue_kind_stringValue = { type: 'stringValue'; data: string; }; export type AutocompleteValue_kind = AutocompleteValue_kind_intValue | AutocompleteValue_kind_floatValue | AutocompleteValue_kind_boolValue | AutocompleteValue_kind_stringValue; export type AutocompleteValue = { kind: AutocompleteValue_kind; }; export type WinnerStrategy = 'ANY_GOAL' | 'SPECIFIC_GOAL'; export type UpdateABSSplitterParamsRequest = { journeyUuid?: string; pointUuid?: string; params?: number[]; autoSelectWinner?: boolean; winnerStrategy?: WinnerStrategy; goalUuid?: string; }; export type CloneJourneysRequest = { journeyUuids?: string[]; sourceAppCode?: string; destAppCodes?: string[]; cloneWithContent?: boolean; title?: string; }; export type CloneJourneysResponse = { clonedJourneys: Record; }; export type JourneyUUIDs = { journeyUuids: string[]; }; export type GetJourneyQuickStatsByPointsRequest = { uuid?: string; fromDate?: string; toDate?: string; }; export type GetJourneyQuickStatsByPointsResponse = { metadata: JourneyStatsByPointMeta; payload: JourneyQuickStatsByPointsResponsePayload; }; export type JourneyStatsByPointMeta = { fromDate: Date; toDate: Date; }; export type JourneyQuickStatsByPointsResponsePayload = { points: JourneyQuickStatsByPointsItemGet[]; }; export type JourneyQuickStatsByPointsItemGet = { pointId: string; pointTitle: string; pointType: string; pointStat: PointStat; }; export type PointStat_pointStat_sendPush = { type: 'sendPush'; data: PointStatSendPush; }; export type PointStat_pointStat_inApp = { type: 'inApp'; data: PointStatInApp; }; export type PointStat_pointStat_sendSms = { type: 'sendSms'; data: PointStatSendSms; }; export type PointStat_pointStat_sendWhatsapp = { type: 'sendWhatsapp'; data: PointStatSendWhatsApp; }; export type PointStat_pointStat_sendData = { type: 'sendData'; data: PointStatSendData; }; export type PointStat_pointStat_sendEmail = { type: 'sendEmail'; data: PointStatSendEmail; }; export type PointStat_pointStat_messageBus = { type: 'messageBus'; data: PointStatMessageBus; }; export type PointStat_pointStat_goalEvent = { type: 'goalEvent'; data: PointStatGoalEvent; }; export type PointStat_pointStat_terminator = { type: 'terminator'; data: PointStatTerminator; }; export type PointStat_pointStat_delay = { type: 'delay'; data: PointStatDelay; }; export type PointStat_pointStat_booleanSplitter = { type: 'booleanSplitter'; data: PointStatBooleanSplitter; }; export type PointStat_pointStat_waitEvent = { type: 'waitEvent'; data: PointStatWaitEvent; }; export type PointStat_pointStat_sendLine = { type: 'sendLine'; data: PointStatSendLine; }; export type PointStat_pointStat_sendKakao = { type: 'sendKakao'; data: PointStatSendKakao; }; export type PointStat_pointStat_sendTelegram = { type: 'sendTelegram'; data: PointStatSendTelegram; }; export type PointStat_pointStat_audienceSync = { type: 'audienceSync'; data: PointStatAudienceSync; }; export type PointStat_pointStat_sendViber = { type: 'sendViber'; data: PointStatSendViber; }; export type PointStat_pointStat_smartContent = { type: 'smartContent'; data: PointStatSmartContent; }; export type PointStat_pointStat = PointStat_pointStat_sendPush | PointStat_pointStat_inApp | PointStat_pointStat_sendSms | PointStat_pointStat_sendWhatsapp | PointStat_pointStat_sendData | PointStat_pointStat_sendEmail | PointStat_pointStat_messageBus | PointStat_pointStat_goalEvent | PointStat_pointStat_terminator | PointStat_pointStat_delay | PointStat_pointStat_booleanSplitter | PointStat_pointStat_waitEvent | PointStat_pointStat_sendLine | PointStat_pointStat_sendKakao | PointStat_pointStat_sendTelegram | PointStat_pointStat_audienceSync | PointStat_pointStat_sendViber | PointStat_pointStat_smartContent; export type PointStat = { pointStat: PointStat_pointStat; }; export type SmartContentWinnerVerdict = 'SMART_CONTENT_WINNER_VERDICT_INSUFFICIENT_DATA' | 'SMART_CONTENT_WINNER_VERDICT_STILL_LEARNING' | 'SMART_CONTENT_WINNER_VERDICT_SIGNIFICANT_WINNER'; export type SmartContentArmStat = { presetCode: string; sent: number; rewarded: number; rewardRate: number; score: number; scoreSe: number; probability: number; ess: number; isWinner: boolean; }; export type PointStatSmartContent = { sent: number; delivered: number; opened: number; conversion: number; errors: number; recipients: number; verdict: SmartContentWinnerVerdict; arms: SmartContentArmStat[]; }; export type PointStatSendPush = { sent: number; opened: number; conversion: number; skipped: number; skippedDueCappingSettings: number; errors: number; unshowableSends: number; recipients: number; voucherStats: VoucherPoolStats; delivered: number; notDelivered: number; notOpened: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type PointStatInApp = { shows: number; interactions: number; skipped: number; sends: number; opened: number; }; export type PointStatSendSms = { sent: number; delivered: number; skipped: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type PointStatSendLine = { sent: number; delivered: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; skipped: number; }; export type PointStatSendKakao = { sent: number; delivered: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; skipped: number; }; export type PointStatSendTelegram = { sent: number; delivered: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; skipped: number; }; export type PointStatSendViber = { sent: number; delivered: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; skipped: number; }; export type PointStatSendWhatsApp = { sent: number; totalOpened: number; skipped: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type PointStatSendData = { sent: number; delivered: number; skipped: number; voucherStats: VoucherPoolStats; }; export type PointStatSendEmail = { sent: number; opened: number; clicked: number; unsubscribed: number; hardBounces: number; softBounces: number; complaints: number; skipped: number; errors: number; recipients: number; voucherStats: VoucherPoolStats; totalOpened: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; openedAmpp: number; }; export type PointStatAudienceSync = { synced: number; skipped: number; }; export type PointStatMessageBus = {}; export type PointStatGoalEvent = {}; export type PointStatTerminator = {}; export type PointStatDelay = {}; export type PointStatBooleanSplitter = { skipped: number; }; export type PointStatWaitEvent = {}; export type VoucherPoolStats = { total: number; free: number; }; export type GetJourneyStatsRequest = { journeyIds?: string[]; }; export type GetJourneyStatsResponse = { metadata: JourneyStatsMeta; payload: JourneyStatsPayloadGet; }; export type JourneyStatsMeta = { journeyIds: string[]; }; export type JourneyStatsPayloadGet = { items: Record; }; export type JourneySummaryStats = { in: number; goals: number; avrCTR: number; }; export type RenameRequest = { uuid?: string; title?: string; }; export type DeleteRequest = { uuid?: string; }; export type CreateRequest = { title?: string; params?: JourneyParams; points?: Point[]; comments?: JourneyComment[]; }; export type GetHistoryRequest = { uuid?: string; userId?: number; pageSize?: number; page?: number; allVersions?: boolean; }; export type GetHistoryResponse = { items: HistoryItem[]; total: number; currentPage: number; nextPage: number; lastPage: number; firstPage: number; }; export type HistoryItem = { uuid: string; user: User; createdAt: Date; version: number; isApplied: boolean; changelog: Changelog; }; export type Change_from_boolFrom = { type: 'boolFrom'; data: boolean; }; export type Change_from_stringFrom = { type: 'stringFrom'; data: string; }; export type Change_from_floatFrom = { type: 'floatFrom'; data: number; }; export type Change_from_intFrom = { type: 'intFrom'; data: number; }; export type Change_from_stringArrayFrom = { type: 'stringArrayFrom'; data: StringArray; }; export type Change_from_stringMapFrom = { type: 'stringMapFrom'; data: StringMap; }; export type Change_from_floatArrayFrom = { type: 'floatArrayFrom'; data: FloatArray; }; export type Change_from = Change_from_boolFrom | Change_from_stringFrom | Change_from_floatFrom | Change_from_intFrom | Change_from_stringArrayFrom | Change_from_stringMapFrom | Change_from_floatArrayFrom; export type Change_to_boolTo = { type: 'boolTo'; data: boolean; }; export type Change_to_stringTo = { type: 'stringTo'; data: string; }; export type Change_to_floatTo = { type: 'floatTo'; data: number; }; export type Change_to_intTo = { type: 'intTo'; data: number; }; export type Change_to_stringArrayTo = { type: 'stringArrayTo'; data: StringArray; }; export type Change_to_stringMapTo = { type: 'stringMapTo'; data: StringMap; }; export type Change_to_floatArrayTo = { type: 'floatArrayTo'; data: FloatArray; }; export type Change_to = Change_to_boolTo | Change_to_stringTo | Change_to_floatTo | Change_to_intTo | Change_to_stringArrayTo | Change_to_stringMapTo | Change_to_floatArrayTo; export type Change = { type: string; path: string[]; from: Change_from; to: Change_to; }; export type StringArray = { values: string[]; }; export type FloatArray = { values: number[]; }; export type StringMap = { values: Record; }; export type JourneyChangelogRecords = { changes: Change[]; goals: Record; }; export type ChangelogRecords = { changes: Change[]; }; export type PointChangelogRecords = { pointType: string; changes: Change[]; title: string; }; export type Changelog = { journey: JourneyChangelogRecords; points: Record; comments: Record; }; export type PointsChangelog = { point: PointChangelogRecords; pointParams: ChangelogRecords; pointPositions: ChangelogRecords; pointOutputs: ChangelogRecords; }; export type CommentsChangelog = { comments: ChangelogRecords; commentPositions: ChangelogRecords; }; export type UpdateJourneyRequest = { uuid?: string; title?: string; params?: JourneyParams; points?: Point[]; comments?: JourneyComment[]; autosave?: boolean; }; export type GetJourneysListRequest = { applicationCode?: string; statuses?: JourneyStatus[]; categoryUuids?: string[]; filterTitle?: string; sortField?: string; page?: number; pageSize?: number; campaignTypes?: CampaignType[]; uuidList?: string[]; sortOrder?: string; activatedAtFrom?: Date; activatedAtTo?: Date; }; export type GetJourneysListResponse = { journeys: Info[]; total: number; }; export type GetJourneyByUUIDRequest = { uuid?: string; }; export type GetJourneyByUUIDResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type GetJourneyByUUIDResponseWithErrors = { response: GetJourneyByUUIDResponse; validation: ValidateJourneyResponse; }; export type StartJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type PauseJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type FinishJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type DraftJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type ArchiveJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type UpdateJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type CreateJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type RenameJourneyResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type UpdateABSSplitterParamsResponse = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type UpdateAndResumeJourneyInfo = { info: Info; points: Point[]; comments: JourneyComment[]; }; export type UpdateAndResumeJourneyResponseV2 = { response: UpdateAndResumeJourneyInfo; validation: ValidateJourneyResponse; }; export type StartJourneyV2Request = { uuid?: string; }; export type PauseJourneyV2Request = { uuid?: string; }; export type FinishJourneyV2Request = { uuid?: string; }; export type DraftJourneyV2Request = { uuid?: string; }; export type ArchiveJourneyV2Request = { uuid?: string; }; export type UpdateJourneyV2Request = { uuid?: string; title?: string; params?: JourneyParams; points?: Point[]; comments?: JourneyComment[]; autosave?: boolean; }; export type UpdateAndResumeJourneyV2Request = { uuid?: string; title?: string; params?: JourneyParams; points?: Point[]; comments?: JourneyComment[]; autosave?: boolean; }; export type CreateV2Request = { title?: string; params?: JourneyParams; points?: Point[]; comments?: JourneyComment[]; }; export type RenameV2Request = { uuid?: string; title?: string; }; export type UpdateABSSplitterParamsV2Request = { journeyUuid?: string; pointUuid?: string; params?: number[]; autoSelectWinner?: boolean; winnerStrategy?: WinnerStrategy; goalUuid?: string; }; export type ValidateJourneyV2Request = { uuid?: string; }; export type MoveJourneysToCategoryRequest = { journeyUuids?: string[]; categoryUuid?: string; applicationCode?: string; }; export type MoveJourneysToCategoryResponse = { journeys: Info[]; }; export type ValidateJourneyResponse = { valid: boolean; journeyErrors: JourneyValidationError[]; pointErrors: PointValidationError[]; }; export type JourneyValidationError = { message: string; }; export type PointValidationError = { uuid: string; message: string; }; export type GetUserFlowRequest = { uuid?: string; userId?: string; }; export type GetUserFlowResponse_Status = 'success' | 'error' | 'break_path'; export type GetUserFlowResponse_Point = { uuid: string; timestamp: Date; status: GetUserFlowResponse_Status; message: string; }; export type GetUserFlowResponse_Flow = { points: GetUserFlowResponse_Point[]; status: GetUserFlowResponse_Status; enterTime: Date; versionNumber: number; journeyUuid: string; }; export type GetUserFlowResponse = { flows: GetUserFlowResponse_Flow[]; }; export type JourneyStatus = 'STATUS_DRAFT' | 'STATUS_RUNNING' | 'STATUS_FINISHED' | 'STATUS_ARCHIVED' | 'STATUS_PAUSED' | 'STATUS_UNKNOWN'; export type PointEventAttributeType = 'ATTRIBUTE_UNKNOWN' | 'INTEGER' | 'STRING' | 'LIST' | 'DATE' | 'BOOLEAN' | 'FLOAT'; export type PointEventConditionOperator = 'OPERATOR_UNKNOWN' | 'EQ' | 'LTE' | 'GTE' | 'NOTEQ' | 'IN' | 'NOTIN' | 'BETWEEN' | 'STARTS_WITH' | 'ENDS_WITH' | 'CONTAINS'; export type PointEventCondition_value_int = { type: 'int'; data: PointEventConditionValueInt; }; export type PointEventCondition_value_intRange = { type: 'intRange'; data: PointEventConditionValueIntRange; }; export type PointEventCondition_value_str = { type: 'str'; data: PointEventConditionValueStr; }; export type PointEventCondition_value_strRange = { type: 'strRange'; data: PointEventConditionValueStrRange; }; export type PointEventCondition_value_bool = { type: 'bool'; data: PointEventConditionValueBool; }; export type PointEventCondition_value_float = { type: 'float'; data: PointEventConditionValueFloat; }; export type PointEventCondition_value_floatRange = { type: 'floatRange'; data: PointEventConditionValueFloatRange; }; export type PointEventCondition_value = PointEventCondition_value_int | PointEventCondition_value_intRange | PointEventCondition_value_str | PointEventCondition_value_strRange | PointEventCondition_value_bool | PointEventCondition_value_float | PointEventCondition_value_floatRange; export type PointEventCondition = { attributeName: string; type: PointEventAttributeType; operator: PointEventConditionOperator; value: PointEventCondition_value; }; export type PointEventConditionValueInt = { value: number; }; export type PointEventConditionValueIntRange = { value: number[]; }; export type PointEventConditionValueFloat = { value: number; }; export type PointEventConditionValueFloatRange = { value: number[]; }; export type PointEventConditionValueStr = { value: string; }; export type PointEventConditionValueStrRange = { value: string[]; }; export type PointEventConditionValueBool = { value: boolean; }; export type Info = { uuid: string; title: string; status: JourneyStatus; createdAt: string; updatedAt: string; isFirstActivated: boolean; params: JourneyParams; categoryUuid: string; pointCounts: Record; campaignType: CampaignType; stopReason: string; lastEditedBy: User; dynamicEntry: boolean; versionNumber: number; isDraft: boolean; rootVersionUuid: string; prevVersionUuid: string; nextVersionUuid: string; }; export type User = { id: number; email: string; username: string; }; export type PointType = 'POINT_TYPE_UNKNOWN' | 'POINT_TYPE_WAIT' | 'POINT_TYPE_EVENT' | 'POINT_TYPE_EXIT' | 'POINT_TYPE_SEND_PUSH' | 'POINT_TYPE_GOAL_EVENT' | 'POINT_TYPE_SEND_EMAIL' | 'POINT_TYPE_SEND_SMS' | 'POINT_TYPE_SEND_WHATSAPP' | 'POINT_TYPE_SEND_LINE' | 'POINT_TYPE_SEND_DATA' | 'POINT_TYPE_BOOLEAN_SPLITTER' | 'POINT_TYPE_FILTER' | 'POINT_TYPE_WAIT_EVENT' | 'POINT_TYPE_INAPP' | 'POINT_TYPE_START_BY_SEGMENT' | 'POINT_TYPE_AB_SPLITTER' | 'POINT_TYPE_SET_TAGS' | 'POINT_TYPE_WEBHOOK' | 'POINT_TYPE_START_BY_API' | 'POINT_TYPE_SEND_KAKAO' | 'POINT_TYPE_SEND_TELEGRAM' | 'POINT_TYPE_AUDIENCE_SYNC' | 'POINT_TYPE_SEND_VIBER' | 'POINT_TYPE_SMART_CONTENT'; export type Point = { uuid: string; title: string; type: string; outputs: PointOutput[]; position: Position; pointData: PointDataWrapper; pointType: PointType; originPointUuid: string; }; export type PointDataWrapper_data_messageBus = { type: 'messageBus'; data: PointParamsMessageBus; }; export type PointDataWrapper_data_delay = { type: 'delay'; data: PointParamsDelay; }; export type PointDataWrapper_data_terminator = { type: 'terminator'; data: PointParamsTerminator; }; export type PointDataWrapper_data_sendPush = { type: 'sendPush'; data: PointParamsSendPush; }; export type PointDataWrapper_data_goalEvent = { type: 'goalEvent'; data: PointParamsGoalEvent; }; export type PointDataWrapper_data_sendEmail = { type: 'sendEmail'; data: PointParamsSendEmail; }; export type PointDataWrapper_data_booleanSplitter = { type: 'booleanSplitter'; data: PointParamsBooleanSplitter; }; export type PointDataWrapper_data_waitEvent = { type: 'waitEvent'; data: PointParamsWaitEvent; }; export type PointDataWrapper_data_inapp = { type: 'inapp'; data: PointParamsInapp; }; export type PointDataWrapper_data_startBySegment = { type: 'startBySegment'; data: PointParamsStartBySegment; }; export type PointDataWrapper_data_abSplitter = { type: 'abSplitter'; data: PointParamsABSplitter; }; export type PointDataWrapper_data_setTags = { type: 'setTags'; data: PointParamsSetTags; }; export type PointDataWrapper_data_webHook = { type: 'webHook'; data: PointParamsWebHook; }; export type PointDataWrapper_data_filter = { type: 'filter'; data: PointParamsFilter; }; export type PointDataWrapper_data_sendSms = { type: 'sendSms'; data: PointParamsSendSms; }; export type PointDataWrapper_data_startByApi = { type: 'startByApi'; data: PointParamsStartByAPI; }; export type PointDataWrapper_data_sendWhatsapp = { type: 'sendWhatsapp'; data: PointParamsSendWhatsApp; }; export type PointDataWrapper_data_sendData = { type: 'sendData'; data: PointParamsSendData; }; export type PointDataWrapper_data_sendLine = { type: 'sendLine'; data: PointParamsSendLine; }; export type PointDataWrapper_data_sendKakao = { type: 'sendKakao'; data: PointParamsSendKakao; }; export type PointDataWrapper_data_sendTelegram = { type: 'sendTelegram'; data: PointParamsSendTelegram; }; export type PointDataWrapper_data_audienceSync = { type: 'audienceSync'; data: PointParamsAudienceSync; }; export type PointDataWrapper_data_sendViber = { type: 'sendViber'; data: PointParamsSendViber; }; export type PointDataWrapper_data_smartContent = { type: 'smartContent'; data: PointParamsSmartContent; }; export type PointDataWrapper_data = PointDataWrapper_data_messageBus | PointDataWrapper_data_delay | PointDataWrapper_data_terminator | PointDataWrapper_data_sendPush | PointDataWrapper_data_goalEvent | PointDataWrapper_data_sendEmail | PointDataWrapper_data_booleanSplitter | PointDataWrapper_data_waitEvent | PointDataWrapper_data_inapp | PointDataWrapper_data_startBySegment | PointDataWrapper_data_abSplitter | PointDataWrapper_data_setTags | PointDataWrapper_data_webHook | PointDataWrapper_data_filter | PointDataWrapper_data_sendSms | PointDataWrapper_data_startByApi | PointDataWrapper_data_sendWhatsapp | PointDataWrapper_data_sendData | PointDataWrapper_data_sendLine | PointDataWrapper_data_sendKakao | PointDataWrapper_data_sendTelegram | PointDataWrapper_data_audienceSync | PointDataWrapper_data_sendViber | PointDataWrapper_data_smartContent; export type PointDataWrapper = { data: PointDataWrapper_data; }; export type PointParamsSmartContent = { applicationCode: string; campaignCode?: string; campaignUid?: number; arms: SmartContentArm[]; reward: SmartContentReward; hyperparams: SmartContentHyperparams; capping: Capping; sendRate: SendRate; messageType: MessageType; liquidTemplateParams: LiquidTemplateParams; personalise: PersonalisedParams; vouchersParams: VoucherParams; }; export type SmartContentArm = { presetCode: string; }; export type SmartContentRewardType = 'SMART_CONTENT_REWARD_OPEN' | 'SMART_CONTENT_REWARD_EVENT'; export type SmartContentReward = { type: SmartContentRewardType; windowSec: number; eventName: string; }; export type SmartContentHyperparams = { tau: number; gamma: number; halfLifeDays: number; sigma: number; theta: number; historyWindowDays: number; }; export type Time = { hour: number; minute: number; }; export type JourneyParamsSilentHours = { inappParams: SilentHoursParams; pushParams: SilentHoursParams; emailParams: SilentHoursParams; smsParams: SilentHoursParams; whatsappParams: SilentHoursParams; lineParams: SilentHoursParams; fromTime: Time; toTime: Time; weekDays: boolean[]; }; export type SilentHoursBehavior = 'WaitAndSend' | 'DropAndGo' | 'WaitAndDrop'; export type SilentHoursParams = { enabled: boolean; fromTime: Time; toTime: Time; weekDays: boolean[]; behavior: SilentHoursBehavior; }; export type CampaignType = 'Unknown' | 'Mixed' | 'TriggerBased' | 'AudienceBased' | 'APIBased'; export type JourneyParamsEntryCapping = { isEnabled: boolean; period: number; }; export type JourneyParamsConversionWindow = { seconds: number; }; export type UserIDTrackChangePolicy = 'DEFAULT' | 'TRACK' | 'DROP'; export type JourneyParams = { silentHours: JourneyParamsSilentHours; capping: JourneyParamsEntryCapping; applicationCode: string; conversionWindow: JourneyParamsConversionWindow; userIdTrackChangePolicy: UserIDTrackChangePolicy; }; export type JourneyComment = { id: string; message: string; createdAt: string; deleted: boolean; position: Position; index: number; }; export type PointParamsMessageBus = { eventName: string; applicationCode: string; eventConditions: PointEventCondition[]; activePeriod: Period; multiEntry: MultiEntry; attributeEntry: AttributeEntry; allowReenter: boolean; }; export type Period = { enabled: boolean; start: Date; end: Date; timezone: string; }; export type SendRate_Policy = 'UNKNOWN' | 'GLOBAL' | 'CUSTOM' | 'IGNORE'; export type SendRate = { policy: SendRate_Policy; sendRate: number; }; export type PointParamsSendPush = { presetCode: string; content: string; title: string; applicationCode: string; campaignCode?: string; campaignUid?: number; splitParams: BehaviorSplitter; sendByUserId: boolean; waitOptimalTime: boolean; defaultOptimalTime: ExactTime; liquidTemplateParams: LiquidTemplateParams; personalise: PersonalisedParams; capping: Capping; inboxOptions: InboxOptions; vouchersParams: VoucherParams; sendRate: SendRate; messageType: MessageType; deliverySplitParams: BehaviorSplitter; ttl: number; useLatestUserDevice: boolean; }; export type PointParamsSendSms = { presetCode: string; content: string; applicationCode: string; campaignCode?: string; campaignUid?: number; splitParams: BehaviorSplitter; sendByUserId: boolean; liquidTemplateParams: LiquidTemplateParams; personalise: PersonalisedParams; capping: Capping; vouchersParams: VoucherParams; sendRate: SendRate; messageType: MessageType; }; export type PointParamsSendLine = { presetCode: string; content: string; applicationCode: string; campaignCode?: string; campaignUid?: number; splitParams: BehaviorSplitter; sendByUserId: boolean; liquidTemplateParams: LiquidTemplateParams; personalise: PersonalisedParams; capping: Capping; vouchersParams: VoucherParams; }; export type PointParamsSendKakao = { presetCode: string; applicationCode: string; campaignCode?: string; campaignUid?: number; personalise: PersonalisedParams; vouchersParams: VoucherParams; sendByUserId: boolean; capping: Capping; sendRate: SendRate; }; export type PointParamsSendTelegram = { content: string; applicationCode: string; campaignCode?: string; campaignUid?: number; personalise: PersonalisedParams; vouchersParams: VoucherParams; sendByUserId: boolean; capping: Capping; sendRate: SendRate; }; export type PointParamsSendViber = { presetCode: string; content: string; templateLang: string; applicationCode: string; campaignCode?: string; campaignUid?: number; personalise: PersonalisedParams; vouchersParams: VoucherParams; capping: Capping; messageType: MessageType; splitParams: BehaviorSplitter; }; export type WhatsAppPersonalisedParams = { enabled: boolean; placeholders: WhatsAppPlaceholder[]; }; export type WhatsAppPlaceholder = { name: string; pointId: string; eventName: string; attribute: string; tagName: string; tagModifier: string; isButton: boolean; buttonIndex: number; buttonUrl: string; component: string; type: string; value: string; default: string; actions?: Actions; }; export type Actions = { actions: ActionType[]; }; export type ActionType = { type: string; action: Action; }; export type Action = { thumbnailProductRetailerId: string; sections: Section[]; }; export type Section = { title: string; productItems: ProductListItem[]; }; export type ProductListItem = { productRetailerId: string; }; export type PointParamsSendWhatsApp = { presetCode: string; content: string; applicationCode: string; campaignCode?: string; campaignUid?: number; splitParams: BehaviorSplitter; sendByUserId: boolean; personalise: WhatsAppPersonalisedParams; capping: Capping; vouchersParams: VoucherParams; messageType: MessageType; }; export type PointParamsSendEmail = { applicationCode: string; presetCode: string; campaignCode?: string; campaignUid?: number; splitParams: BehaviorSplitter; sendOnlyToSubscribed: boolean; liquidTemplateParams: LiquidTemplateParams; personalise: PersonalisedParams; title: string; subjects: Record; bcc: string[]; unsubscribedPolicy?: UnsubscribedPolicy; capping: Capping; from: From; replyTo: ReplyTo; vouchersParams: VoucherParams; waitOptimalTime: boolean; defaultOptimalTime: ExactTime; sendRate: SendRate; emailType: string; emailCategory: string; subjectSource: ValueSource; senderInfoSource: ValueSource; }; export type ValueSource = 'VALUE_SOURCE_DEFAULT' | 'VALUE_SOURCE_FROM_POINT' | 'VALUE_SOURCE_FROM_PRESET'; export type From = { name: string; email: string; }; export type ReplyTo = { name: string; email: string; }; export type PointParamsSendData = { content: string; applicationCode: string; campaignCode?: string; campaignUid?: number; sendByUserId: boolean; liquidTemplateParams: LiquidTemplateParams; personalise: PersonalisedParams; vouchersParams: VoucherParams; }; export type UnsubscribedPolicy = 'UNKNOWN' | 'IGNORE' | 'SEND'; export type MessageType = 'Marketing' | 'Transactional'; export type IntTagValueList = { value: number[]; }; export type StrTagValueList = { value: string[]; }; export type DateTagValueList = { value: Date[]; }; export type PriceTagValueList = { value: number[]; }; export type VersionTagValueList = { value: string[]; }; export type TimezoneTagValueList = { value: number[]; }; export type TagSplitterConditionGroup = { conditions: TagSplitterCondition[]; }; export type TagSplitterCondition_TagSplitterTagType = 'TAG_SPLITTER_TYPE_UNKNOWN' | 'TAG_SPLITTER_TYPE_INTEGER' | 'TAG_SPLITTER_TYPE_STRING' | 'TAG_SPLITTER_TYPE_LIST' | 'TAG_SPLITTER_TYPE_DATE' | 'TAG_SPLITTER_TYPE_BOOLEAN' | 'TAG_SPLITTER_TYPE_PRICE' | 'TAG_SPLITTER_TYPE_VERSION' | 'TAG_SPLITTER_TYPE_TIMEZONE'; export type TagSplitterCondition_value_int = { type: 'int'; data: number; }; export type TagSplitterCondition_value_intRange = { type: 'intRange'; data: IntTagValueList; }; export type TagSplitterCondition_value_str = { type: 'str'; data: string; }; export type TagSplitterCondition_value_strRange = { type: 'strRange'; data: StrTagValueList; }; export type TagSplitterCondition_value_date = { type: 'date'; data: Date; }; export type TagSplitterCondition_value_dateRange = { type: 'dateRange'; data: DateTagValueList; }; export type TagSplitterCondition_value_bool = { type: 'bool'; data: boolean; }; export type TagSplitterCondition_value_price = { type: 'price'; data: number; }; export type TagSplitterCondition_value_priceRange = { type: 'priceRange'; data: PriceTagValueList; }; export type TagSplitterCondition_value_version = { type: 'version'; data: string; }; export type TagSplitterCondition_value_versionRange = { type: 'versionRange'; data: VersionTagValueList; }; export type TagSplitterCondition_value_timezone = { type: 'timezone'; data: number; }; export type TagSplitterCondition_value_timezoneRange = { type: 'timezoneRange'; data: TimezoneTagValueList; }; export type TagSplitterCondition_value = TagSplitterCondition_value_int | TagSplitterCondition_value_intRange | TagSplitterCondition_value_str | TagSplitterCondition_value_strRange | TagSplitterCondition_value_date | TagSplitterCondition_value_dateRange | TagSplitterCondition_value_bool | TagSplitterCondition_value_price | TagSplitterCondition_value_priceRange | TagSplitterCondition_value_version | TagSplitterCondition_value_versionRange | TagSplitterCondition_value_timezone | TagSplitterCondition_value_timezoneRange; export type TagSplitterCondition = { tagId: number; tagType: TagSplitterCondition_TagSplitterTagType; operator: string; value: TagSplitterCondition_value; }; export type DateFilterMode = 'DATE_FILTER_MODE_UNKNOWN' | 'DATE_FILTER_MODE_DAYS_AGO' | 'DATE_FILTER_MODE_HOURS_AGO' | 'DATE_FILTER_MODE_MINUTES_AGO' | 'DATE_FILTER_MODE_DAYS_AHEAD'; export type EventConditionValueInt = { value: number; }; export type EventConditionValueIntRange = { value: number[]; }; export type EventConditionValueFloat = { value: number; }; export type EventConditionValueFloatRange = { value: number[]; }; export type EventConditionValueStr = { value: string; }; export type EventConditionValueStrRange = { value: string[]; }; export type EventConditionValueBool = { value: boolean; }; export type BooleanSplitterEventCondition_value_int = { type: 'int'; data: EventConditionValueInt; }; export type BooleanSplitterEventCondition_value_intRange = { type: 'intRange'; data: EventConditionValueIntRange; }; export type BooleanSplitterEventCondition_value_str = { type: 'str'; data: EventConditionValueStr; }; export type BooleanSplitterEventCondition_value_strRange = { type: 'strRange'; data: EventConditionValueStrRange; }; export type BooleanSplitterEventCondition_value_bool = { type: 'bool'; data: EventConditionValueBool; }; export type BooleanSplitterEventCondition_value_float = { type: 'float'; data: EventConditionValueFloat; }; export type BooleanSplitterEventCondition_value_floatRange = { type: 'floatRange'; data: EventConditionValueFloatRange; }; export type BooleanSplitterEventCondition_value_valueRef = { type: 'valueRef'; data: BooleanSplitterValueRef; }; export type BooleanSplitterEventCondition_value = BooleanSplitterEventCondition_value_int | BooleanSplitterEventCondition_value_intRange | BooleanSplitterEventCondition_value_str | BooleanSplitterEventCondition_value_strRange | BooleanSplitterEventCondition_value_bool | BooleanSplitterEventCondition_value_float | BooleanSplitterEventCondition_value_floatRange | BooleanSplitterEventCondition_value_valueRef; export type BooleanSplitterEventCondition = { attributeName: string; type: PointEventAttributeType; operator: PointEventConditionOperator; dateFilterMode: DateFilterMode; value: BooleanSplitterEventCondition_value; }; export type BooleanSplitterValueRef_Source = 'SOURCE_UNKNOWN' | 'SOURCE_TAG' | 'SOURCE_EVENT_ATTRIBUTE'; export type BooleanSplitterValueRef = { source: BooleanSplitterValueRef_Source; type: PointEventAttributeType; tagName: string; eventName: string; attributeName: string; }; export type BooleanSplitterTagCondition = { tagName: string; type: PointEventAttributeType; operator: PointEventConditionOperator; valueRef: BooleanSplitterValueRef; }; export type BooleanSplitterTagBranch_condition_filterExpression = { type: 'filterExpression'; data: pushwoosh_objects_filters_v1_FilterExpression; }; export type BooleanSplitterTagBranch_condition_tagCondition = { type: 'tagCondition'; data: BooleanSplitterTagCondition; }; export type BooleanSplitterTagBranch_condition = BooleanSplitterTagBranch_condition_filterExpression | BooleanSplitterTagBranch_condition_tagCondition; export type BooleanSplitterTagBranch = { condition: BooleanSplitterTagBranch_condition; }; export type BooleanSplitterEventConditions = { conditions: BooleanSplitterEventCondition[]; }; export type BooleanSplitterEventInfo = { eventName: string; eventConditions?: BooleanSplitterEventConditions; }; export type PointParamsBooleanSplitter_LoadPolicy = 'UNKNOWN' | 'ALL' | 'FILTER'; export type PointParamsBooleanSplitter_SplitStrategy = 'SPLIT_FILTER' | 'SPLIT_TAGS' | 'SPLIT_EVENTS'; export type PointParamsBooleanSplitter = { filterCode: string; loadPolicy: PointParamsBooleanSplitter_LoadPolicy; splitStrategy: PointParamsBooleanSplitter_SplitStrategy; filterExpressions: pushwoosh_objects_filters_v1_FilterExpression[]; event?: BooleanSplitterEventInfo; tagBranches: BooleanSplitterTagBranch[]; }; export type PointParamsWaitEvent = { events: PointWaitEventInfo[]; conditionsScript: string; multiEntry: MultiEntry; isTravelerPresenceExtendable?: boolean; }; export type PointWaitEventInfo = { eventName: string; applicationCode: string; intervalSec: number; eventConditions: PointEventCondition[]; intervalFixed: boolean; }; export type PointParamsInapp = { richmediaCode: string; applicationCode: string; campaignCode?: string; campaignUid?: number; expireInDays: number; capping: Capping; messageType: MessageType; }; export type Filter = 'CUSTOM' | 'EMAIL_EXISTS' | 'PUSH_TOKEN_EXISTS' | 'SMS_TOKEN_EXISTS' | 'WHATSAPP_TOKEN_EXISTS' | 'LINE_TOKEN_EXISTS'; export type PointParamsFilter = { filter: Filter; filterRaw: string; }; export type BehaviorSplitter = { enabled: boolean; interval: number; }; export type LiquidTemplateParams = { enabled: boolean; eventName: string; eventEntryPointUuid: string; }; export type VoucherParams = { enabled: boolean; voucherPool: string; voucherTag: string; }; export type PersonalisedParams = { enabled: boolean; placeholders: Placeholder[]; }; export type Placeholder = { name: string; pointId: string; attribute: string; eventName: string; tagName: string; tagModifier: string; }; export type ExactTime = { hour: number; minute: number; }; export type ExactDateTime = { year: number; month: number; day: number; hour: number; minute: number; }; export type ExactWeekDaysTime = { days: Record; }; export type DynamicTimeFrom = 'TAG' | 'EVENT'; export type DynamicTimeDirection = 'RIGHT_ON_TIME' | 'AFTER' | 'BEFORE'; export type DynamicTimeUnit = 'HOURS' | 'DAYS' | 'MINUTES'; export type DynamicTime = { from: DynamicTimeFrom; direction: DynamicTimeDirection; duration: number; unit: DynamicTimeUnit; splitBranches: boolean; pointId: string; eventName: string; eventAttribute: string; tagName: string; }; export type PointParamsGoalEvent = { eventName: string; applicationCode: string; eventConditions: PointEventCondition[]; isThrowOut: boolean; multiEntry: MultiEntry; isCancelEvent: boolean; }; export type PointParamsDelay_interval_sec = { type: 'sec'; data: number; }; export type PointParamsDelay_interval_exactTime = { type: 'exactTime'; data: ExactTime; }; export type PointParamsDelay_interval_dynamicTime = { type: 'dynamicTime'; data: DynamicTime; }; export type PointParamsDelay_interval_exactDateTime = { type: 'exactDateTime'; data: ExactDateTime; }; export type PointParamsDelay_interval_exactWeekDaysTime = { type: 'exactWeekDaysTime'; data: ExactWeekDaysTime; }; export type PointParamsDelay_interval = PointParamsDelay_interval_sec | PointParamsDelay_interval_exactTime | PointParamsDelay_interval_dynamicTime | PointParamsDelay_interval_exactDateTime | PointParamsDelay_interval_exactWeekDaysTime; export type PointParamsDelay = { isTravelerPresenceExtendable?: boolean; interval: PointParamsDelay_interval; }; export type PointOutput = { identity: PointOutputIdentity; info: PointOutputInfo; }; export type PointOutputIdentity = { key: string; order: number; }; export type PointOutputInfo = { title: string; nextPointUuid: string; }; export type WebhookResponseMapping = { path: string; attribute: string; }; export type PointParamsWebHook = { method: string; url: string; requestTemplate: string; headers: Record; disabled: boolean; reactivate: boolean; responseMapping: WebhookResponseMapping[]; }; export type AudienceSyncAction = 'AUDIENCE_SYNC_ACTION_UNSPECIFIED' | 'AUDIENCE_SYNC_ACTION_ADD' | 'AUDIENCE_SYNC_ACTION_REMOVE'; export type PointParamsAudienceSync = { adAccountId: string; adAccountName: string; audienceId: string; audienceName: string; action: AudienceSyncAction; }; export type PointParamsStartBySegment = { filterCode: string; applicationCode: string; entryLimitsEnabled?: boolean; entryLimitsPerSecond?: number; repeat: SegmentRepeat; isDeactivated: boolean; filterTitle: string; applicationTitle: string; startAt: Date; entryMode: EntryMode; }; export type EntryMode = 'ENTRY_MODE_UNKNOWN' | 'ENTRY_MODE_EXISTING_ONLY' | 'ENTRY_MODE_EXISTING_AND_NEW' | 'ENTRY_MODE_NEW_ONLY'; export type SegmentRepeat = { enabled: boolean; type: string; frequency: string; every: number; dates: string[]; time: SegmentRepeatTime; }; export type SegmentRepeatTime_PastTimezonesBehaviour = 'PAST_TIMEZONES_BEHAVIOUR_DEFAULT' | 'PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY' | 'PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND' | 'PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY'; export type SegmentRepeatTime = { hour: number; minute: number; timezone: string; followUserTimezone: boolean; pastTimezonesBehaviour: SegmentRepeatTime_PastTimezonesBehaviour; }; export type SegmentRepeatType = 'REPEAT_TYPE_UNKNOWN' | 'REPEAT_TYPE_EVERY_DAY' | 'REPEAT_TYPE_EVERY_WEEK' | 'REPEAT_TYPE_EVERY_MONTH' | 'REPEAT_TYPE_CUSTOM' | 'REPEAT_TYPE_DATES_SPECIFIED'; export type PointParamsABSplitter = { split: number[]; autoSelectWinner: boolean; winnerSplit: number; winnerStrategy: WinnerStrategy; goalUuid: string; winnerOutputKey: string; winnerGoalUuid: string; }; export type TagType = 'TYPE_UNKNOWN' | 'TYPE_INTEGER' | 'TYPE_STRING' | 'TYPE_LIST' | 'TYPE_DATE' | 'TYPE_BOOLEAN' | 'TYPE_PRICE' | 'TYPE_VERSION' | 'TYPE_DYNAMIC' | 'TYPE_LIST_APPEND' | 'TYPE_TIMEZONE' | 'TYPE_LIST_REMOVE' | 'TYPE_DYNAMIC_APPEND' | 'TYPE_DYNAMIC_REMOVE' | 'TYPE_INCREMENT' | 'TYPE_DECREMENT' | 'TYPE_DYNAMIC_INCREMENT' | 'TYPE_DYNAMIC_DECREMENT'; export type Tag_value_int = { type: 'int'; data: number; }; export type Tag_value_str = { type: 'str'; data: string; }; export type Tag_value_list = { type: 'list'; data: TagValueList; }; export type Tag_value_date = { type: 'date'; data: Date; }; export type Tag_value_bool = { type: 'bool'; data: boolean; }; export type Tag_value_price = { type: 'price'; data: number; }; export type Tag_value_version = { type: 'version'; data: string; }; export type Tag_value_dynamic = { type: 'dynamic'; data: TagValueDynamic; }; export type Tag_value_timezone = { type: 'timezone'; data: string; }; export type Tag_value = Tag_value_int | Tag_value_str | Tag_value_list | Tag_value_date | Tag_value_bool | Tag_value_price | Tag_value_version | Tag_value_dynamic | Tag_value_timezone; export type Tag = { id: number; type: TagType; name: string; value: Tag_value; }; export type TagValueList = { value: string[]; }; export type TagValueDynamic = { pointId: string; eventName: string; attribute: string; applicationCode: string; }; export type PointParamsSetTags = { applicationCode: string; tags: Tag[]; }; export type Position = { x: number; y: number; }; export type PointParamsStartByAPI = { applicationCode: string; entryLimitsEnabled?: boolean; entryLimitsPerSecond?: number; isDeactivated: boolean; attributes: string[]; }; export type PointParamsTerminator = {}; export type Capping = { enabled: boolean; count: number; days: number; doNotIncrease: boolean; mode: string; timezone: string; }; export type InboxOptions = { enabled: boolean; expireAtDate?: Date; expireInDays?: number; imgUrl: string; richMediaCode: string; }; export type GetJourneyStatsByPointsExternalRequest = { uuid?: string; fromDate?: string; toDate?: string; }; export type GetJourneyStatsByPointsExternalResponse = { payload: JourneyStatsByPointsExternalResponsePayload; }; export type JourneyStatsByPointsExternalResponsePayload = { points: JourneyStatsByPointsExternalItemGet[]; title: string; }; export type JourneyStatsByPointsExternalItemGet = { pointTitle: string; campaignCode: string; presetCode: string; pointStat: PointStat; }; export type GetJourneyStatsByPointRequest = { uuid?: string; fromDate?: string; toDate?: string; }; export type GetJourneyStatsByPointResponse = { metadata: JourneyStatsByPointMeta; payload: JourneyStatsByPointsResponsePayload; }; export type JourneyStatsByPointsResponsePayload = { points: JourneyStatsByPointsItemGet[]; journey: JourneyStatItems; }; export type JourneyStatsByPointsItemGet = { pointId: string; pointType: string; journeyId: string; pointStat: PointStat; pointOutputStat: PointOutputStat[]; waitingTravellers: number; entries: number; dropped: number; }; export type ChannelStat = { channel: string; sends: number; openRate: number; shown: number; interactions: number; opens: number; recipients: number; clicks: number; softbounce: number; hardbounce: number; complaint: number; unsubscribed: number; }; export type JourneyStatItems = { total: number; uniqueUsersCount: number; avgCtr: number; left: number; leftByError: number; dropped: number; inside: number; achievedGoal: number; goals: Record; goalsByPoints: Record; goalsToPointsMap: Record; pointsToGoalsMap: Record; abSplitStats: Record; totalSkipped: number; sendingErrors: number; channelsStat: Record; }; export type PointOutputStat = { key: string; nextPointId: string; count: number; errors: Record; }; export type ABSplitStat = { id: string; outputs: Record; }; export type ABOutputStats = { items: ABOutputStat[]; }; export type ABOutputStat = { visits: number; goals: number; goalUuid: string; conversion: number; uplift: number; zScore: number; pValue: number; betterThanControl: boolean; significant: boolean; message: string; }; export type GoalPointStats = { items: GoalPointStat[]; }; export type GoalPointStat = { pointUuid: string; count: number; }; export type GetAccountRestrictionValuesRequest = {}; export type GetAccountRestrictionValuesResponse = { payload: AccountRestrictionValues; }; export type AccountRestrictionValues = { allowCjSms: boolean; allowCjWhatsapp: boolean; allowCjDynamicSetTagsInUpdateProfile: boolean; allowCjAddBranchesInWaitForTrigger: boolean; allowCjEmailBcc: boolean; allowCjLine: boolean; }; export type GetJourneyGeneralTimeStatisticsRequest = { uuid?: string; application?: string; timestampFrom?: string; timestampTo?: string; }; export type GetJourneyGeneralTimeStatisticsResponse_MetricTimeseries = { breakdown: string; values: number[]; }; export type GetJourneyGeneralTimeStatisticsResponse = { timestamps: string[]; entrances: GetJourneyGeneralTimeStatisticsResponse_MetricTimeseries[]; sendsByChannel: GetJourneyGeneralTimeStatisticsResponse_MetricTimeseries[]; dropOffs: GetJourneyGeneralTimeStatisticsResponse_MetricTimeseries[]; goals: GetJourneyGeneralTimeStatisticsResponse_MetricTimeseries[]; totalEntrances: number; totalSends: number; totalOpens: number; totalDropOffs: number; recipients: number; }; export type GetJourneyUsersRequest = { uuid?: string; application?: string; search?: string; timestampFrom?: string; timestampTo?: string; pageSize?: number; page?: number; }; export type UserStatus = 'unknown' | 'inJourneyNow' | 'exited' | 'droppedOff' | 'goalReached'; export type GetJourneyUsersResponse_UserPoint = { userId: string; lastPointType: string; lastPointName: string; status: UserStatus; enterPointType: string; enterPointName: string; }; export type GetJourneyUsersResponse = { users: GetJourneyUsersResponse_UserPoint[]; totals: number; }; export type Channel = 'CHANNEL_UNSPECIFIED' | 'PUSH' | 'EMAIL' | 'WHATSAPP' | 'SMS' | 'IN_APP' | 'LINE'; export type GetJourneyMetricsRequest = { uuid?: string; application?: string; timestampFrom?: Date; timestampTo?: Date; timezone?: string; }; export type GetJourneyMetricsResponse_PushMetrics = { sends: number[]; opens: number[]; deliveryIssues: number[]; successfulSends: number[]; totalOpens: number[]; }; export type GetJourneyMetricsResponse_EmailMetrics = { sends: number[]; opens: number[]; deliveryIssues: number[]; clicks: number[]; successfulSends: number[]; totalOpens: number[]; }; export type GetJourneyMetricsResponse_WhatsAppMetrics = { sends: number[]; read: number[]; deliveryIssues: number[]; successfulSends: number[]; totalRead: number[]; }; export type GetJourneyMetricsResponse_SMSMetrics = { sends: number[]; deliveries: number[]; deliveryIssues: number[]; successfulSends: number[]; }; export type GetJourneyMetricsResponse_LineMetrics = { sends: number[]; deliveryIssues: number[]; successfulSends: number[]; }; export type GetJourneyMetricsResponse_InAppMetrics = { impressions: number[]; interactions: number[]; deliveryIssues: number[]; }; export type GetJourneyMetricsResponse_ChannelMetrics = { push: GetJourneyMetricsResponse_PushMetrics; email: GetJourneyMetricsResponse_EmailMetrics; whatsapp: GetJourneyMetricsResponse_WhatsAppMetrics; sms: GetJourneyMetricsResponse_SMSMetrics; inApp: GetJourneyMetricsResponse_InAppMetrics; line: GetJourneyMetricsResponse_LineMetrics; }; export type GetJourneyMetricsResponse_PushTotals = { sent: number; recipients: number; opened: number; deliveryIssues: number; successfulSends: number; totalOpened: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type GetJourneyMetricsResponse_EmailTotals = { sent: number; recipients: number; opened: number; deliveryIssues: number; hardBounces: number; softBounces: number; complaints: number; clicks: number; unsubscribes: number; successfulSends: number; totalOpened: number; deliveries: number; totalDeliveries: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; openedAmpp: number; totalOpenedAmpp: number; }; export type GetJourneyMetricsResponse_WhatsAppTotals = { sent: number; recipients: number; read: number; errors: number; deliveries: number; successfulSends: number; totalRead: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type GetJourneyMetricsResponse_SMSTotals = { sent: number; recipients: number; deliveries: number; errors: number; successfulSends: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type GetJourneyMetricsResponse_LineTotals = { sent: number; recipients: number; errors: number; successfulSends: number; frequencyCappingUniqueUsers: number; frequencyCappingSuppressions: number; }; export type GetJourneyMetricsResponse_InAppTotals = { impressions: number; interactions: number; errors: number; frequencyCappingSuppressions: number; frequencyCappingUniqueUsers: number; }; export type GetJourneyMetricsResponse_ChannelTotals = { push: GetJourneyMetricsResponse_PushTotals; email: GetJourneyMetricsResponse_EmailTotals; whatsapp: GetJourneyMetricsResponse_WhatsAppTotals; sms: GetJourneyMetricsResponse_SMSTotals; inApp: GetJourneyMetricsResponse_InAppTotals; line: GetJourneyMetricsResponse_LineTotals; }; export type GetJourneyMetricsResponse = { timestamps: Date[]; channelMetrics: GetJourneyMetricsResponse_ChannelMetrics; totals: GetJourneyMetricsResponse_ChannelTotals; }; export type GetJourneyDeliveryReportRequest = { application?: string; uuid?: string; timestampFrom?: Date; timestampTo?: Date; timezone?: string; }; export type GetJourneyDeliveryReportResponse_DeliveryError = { name: string; description: string; count: number; userDrop: boolean; statusCode: number; }; export type GetJourneyDeliveryReportResponse = { push: GetJourneyDeliveryReportResponse_DeliveryError[]; email: GetJourneyDeliveryReportResponse_DeliveryError[]; whatsapp: GetJourneyDeliveryReportResponse_DeliveryError[]; sms: GetJourneyDeliveryReportResponse_DeliveryError[]; inApp: GetJourneyDeliveryReportResponse_DeliveryError[]; }; export type MultiEntry = { enabled: boolean; attributeName: string; }; export type AttributeEntry = { enabled: boolean; attributeName: string; }; export type GetVoucherPoolsRequest = { applicationCode?: string; }; export type GetVoucherPoolsResponse = { payload: VoucherPool[]; }; export type VoucherPool = { name: string; }; export type GetWhatsAppPresetsByAppCodeRequest = { code?: string; }; export type GetWhatsAppPresetsByAppCodeResponse = { payload: WhatsAppPresetsByAppCodePayload; }; export type WhatsAppPresetsByAppCodePayload = { items: WhatsAppPresetByAppCodeItem[]; }; export type WhatsAppPresetByAppCodeItem = { content: string; code: string; name: string; headerType: string; headerVariables: string[]; headerText: string; variables: string[]; quickReplies: WhatsAppPresetQuickReply[]; buttonUrlVariables: WhatsAppButtonURLVariables[]; }; export type WhatsAppPresetQuickReply = { name: string; output: string; }; export type WhatsAppButtonURLVariables = { index: number; text: string; url: string; type: string; variable: string; }; export type GetEmailPresetsByAppCodeRequest = { code?: string; }; export type GetEmailPresetsByAppCodeResponse = { payload: EmailPresetsByAppCodePayload; }; export type EmailPresetsByAppCodePayload = { items: EmailPresetByAppCodeItem[]; }; export type EmailPresetByAppCodeItem = { uid: number; code: string; subjects: Record; sendFrom: SendFrom; template: string; campaign: string; name: string; replyTo: ReplyTo; }; export type SendFrom = { name: string; email: string; }; export type TestWebhookRequest_TemplateData = { hwid: string; userId: string; appCode: string; tags: Record; eventAttributes: Record; }; export type TestWebhookRequest = { method?: string; url?: string; template?: string; headers?: Record; templateData?: TestWebhookRequest_TemplateData; }; export type TestWebhookResponse = { ok: boolean; statusCode: number; body: string; }; export type GetEventsByApplicationCodeRequest = { code?: string; }; export type GetEventsByApplicationCodeResponse = { payload: EventsByApplicationCodePayload; }; export type EventsByApplicationCodePayload = { items: EventItem[]; }; export type EventItem = { id: number; name: string; description: string; attributes: EventAttributeItem[]; }; export type EventAttributeItem = { id: number; name: string; type: number; }; export type GetEventAttributeValuesRequest = { code?: string; eventId?: number; attribute?: string; limit?: number; searchValue?: string; }; export type GetEventAttributeValuesResponse = { payload: EventAttributeValuesPayload; }; export type EventAttributeValuesPayload = { values: string[]; }; export type GetRichMediaByApplicationCodeRequest = { code?: string; noContent?: boolean; noParams?: boolean; search?: string; }; export type GetRichMediaByApplicationCodeResponse = { payload: RichMediaByApplicationCodePayload; }; export type RichMediaByApplicationCodePayload = { items: RichMediaItem[]; }; export type RichMediaItem = { name: string; uid: number; params: string; code: string; applicationId: number; applicationCode: string; defaultLanguage: string; businessCase: string; fileHash: string; isSystem: boolean; zipContent: string; }; export type GetRichMediaByCodeRequest = { code?: string; rmcode?: string; }; export type GetRichMediaByCodeResponse = { payload: RichMediaItem; }; export type GetLinePresetsByAppCodeRequest = { code?: string; }; export type GetLinePresetsByAppCodeResponse = { payload: LinePresetsByAppCodePayload; }; export type LinePresetsByAppCodePayload = { items: LinePresetByAppCodeItem[]; }; export type LinePresetByAppCodeItem = { code: string; name: string; content: string; }; export type GetSmsPresetsByAppCodeRequest = { code?: string; }; export type GetSmsPresetsByAppCodeResponse = { payload: SmsPresetsByAppCodePayload; }; export type SmsPresetsByAppCodePayload = { items: SmsPresetByAppCodeItem[]; }; export type SmsPresetByAppCodeItem = { code: string; name: string; content: string; }; export type GetPushPresetsByAppCodeRequest = { code?: string; journeyUuid?: string; }; export type GetPushPresetsByAppCodeResponse = { payload: PushPresetsByAppCodePayload; }; export type PushPresetsByAppCodePayload = { items: PushPresetByAppCodeItem[]; }; export type PushPresetByAppCodeItem = { code: string; name: string; content: string; title: string; url: string; variables: PushPresetVariables; }; export type PushPresetVariables = { title: string[]; content: string[]; url: string[]; }; export type GetApplicationsByAccountIdRequest = {}; export type GetApplicationsByAccountIdResponse = { payload: ApplicationItem[]; }; export type ApplicationItem = { title: string; code: string; icon: string; platforms: ApplicationPlatform[]; }; export type ApplicationPlatform = { type: string; isEnabled: boolean; isConfigured: boolean; }; export type GetFiltersByAccountIdRequest = {}; export type GetFiltersByAccountIdResponse = { payload: FilterItem[]; }; export type FilterItem = { id: number; accountId: number; applicationId: number; name: string; code: string; }; export type GetEventsByApplicationCodesRequest = { applicationCodes?: string[]; }; export type GetEventsByApplicationCodesResponse = { payload: Record; }; export type MetaAdAccountStatus = 'META_AD_ACCOUNT_STATUS_UNSPECIFIED' | 'META_AD_ACCOUNT_STATUS_CONNECTED' | 'META_AD_ACCOUNT_STATUS_DISCONNECTED' | 'META_AD_ACCOUNT_STATUS_PENDING'; export type MetaAdAccount = { id: string; name: string; status: MetaAdAccountStatus; }; export type MetaCustomAudience = { id: string; name: string; }; export type GetMetaAdAccountsRequest = {}; export type GetMetaAdAccountsResponse = { adAccounts: MetaAdAccount[]; }; export type GetMetaAudiencesRequest = { adAccountId?: string; }; export type GetMetaAudiencesResponse = { audiences: MetaCustomAudience[]; };