@@ -99,6 +99,7 @@ export class TypebotService {
99
99
const remoteJid = data . remoteJid ;
100
100
const url = data . url ;
101
101
const typebot = data . typebot ;
102
+ const startSession = data . startSession ;
102
103
const variables = data . variables ;
103
104
const findTypebot = await this . find ( instance ) ;
104
105
const sessions = ( findTypebot . sessions as Session [ ] ) ?? [ ] ;
@@ -116,37 +117,61 @@ export class TypebotService {
116
117
prefilledVariables [ variable . name ] = variable . value ;
117
118
} ) ;
118
119
119
- const response = await this . createNewSession ( instance , {
120
- url : url ,
121
- typebot : typebot ,
122
- remoteJid : remoteJid ,
123
- expire : expire ,
124
- keyword_finish : keyword_finish ,
125
- delay_message : delay_message ,
126
- unknown_message : unknown_message ,
127
- listening_from_me : listening_from_me ,
128
- sessions : sessions ,
129
- prefilledVariables : prefilledVariables ,
130
- } ) ;
120
+ if ( startSession ) {
121
+ const response = await this . createNewSession ( instance , {
122
+ url : url ,
123
+ typebot : typebot ,
124
+ remoteJid : remoteJid ,
125
+ expire : expire ,
126
+ keyword_finish : keyword_finish ,
127
+ delay_message : delay_message ,
128
+ unknown_message : unknown_message ,
129
+ listening_from_me : listening_from_me ,
130
+ sessions : sessions ,
131
+ prefilledVariables : prefilledVariables ,
132
+ } ) ;
133
+
134
+ if ( response . sessionId ) {
135
+ await this . sendWAMessage ( instance , remoteJid , response . messages , response . input , response . clientSideActions ) ;
136
+
137
+ this . waMonitor . waInstances [ instance . instanceName ] . sendDataWebhook ( Events . TYPEBOT_START , {
138
+ remoteJid : remoteJid ,
139
+ url : url ,
140
+ typebot : typebot ,
141
+ prefilledVariables : prefilledVariables ,
142
+ sessionId : `${ response . sessionId } ` ,
143
+ } ) ;
144
+ } else {
145
+ throw new Error ( 'Session ID not found in response' ) ;
146
+ }
147
+ } else {
148
+ const id = Math . floor ( Math . random ( ) * 10000000000 ) . toString ( ) ;
149
+
150
+ const reqData = {
151
+ sessionId : id ,
152
+ startParams : {
153
+ typebot : data . typebot ,
154
+ prefilledVariables : prefilledVariables ,
155
+ } ,
156
+ } ;
157
+
158
+ const request = await axios . post ( data . url + '/api/v1/sendMessage' , reqData ) ;
131
159
132
- if ( response . sessionId ) {
133
160
await this . sendWAMessage (
134
161
instance ,
135
162
remoteJid ,
136
- response . messages ,
137
- response . input ,
138
- response . clientSideActions ,
163
+ request . data . messages ,
164
+ request . data . input ,
165
+ request . data . clientSideActions ,
139
166
) ;
140
167
141
168
this . waMonitor . waInstances [ instance . instanceName ] . sendDataWebhook ( Events . TYPEBOT_START , {
142
169
remoteJid : remoteJid ,
143
170
url : url ,
144
171
typebot : typebot ,
145
- prefilledVariables : prefilledVariables ,
146
- sessionId : ` ${ response . sessionId } ` ,
172
+ variables : variables ,
173
+ sessionId : id ,
147
174
} ) ;
148
- } else {
149
- throw new Error ( "Session ID not found in response" ) ;
150
175
}
151
176
152
177
return {
@@ -227,7 +252,7 @@ export class TypebotService {
227
252
remoteJid : data . remoteJid ,
228
253
pushName : data . pushName || 'Default Name' ,
229
254
instanceName : instance . instanceName ,
230
- }
255
+ } ,
231
256
} ) ;
232
257
233
258
const typebotData = {
0 commit comments