@@ -99,6 +99,7 @@ export class TypebotService {
9999 const remoteJid = data . remoteJid ;
100100 const url = data . url ;
101101 const typebot = data . typebot ;
102+ const startSession = data . startSession ;
102103 const variables = data . variables ;
103104 const findTypebot = await this . find ( instance ) ;
104105 const sessions = ( findTypebot . sessions as Session [ ] ) ?? [ ] ;
@@ -116,37 +117,61 @@ export class TypebotService {
116117 prefilledVariables [ variable . name ] = variable . value ;
117118 } ) ;
118119
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 ) ;
131159
132- if ( response . sessionId ) {
133160 await this . sendWAMessage (
134161 instance ,
135162 remoteJid ,
136- response . messages ,
137- response . input ,
138- response . clientSideActions ,
163+ request . data . messages ,
164+ request . data . input ,
165+ request . data . clientSideActions ,
139166 ) ;
140167
141168 this . waMonitor . waInstances [ instance . instanceName ] . sendDataWebhook ( Events . TYPEBOT_START , {
142169 remoteJid : remoteJid ,
143170 url : url ,
144171 typebot : typebot ,
145- prefilledVariables : prefilledVariables ,
146- sessionId : ` ${ response . sessionId } ` ,
172+ variables : variables ,
173+ sessionId : id ,
147174 } ) ;
148- } else {
149- throw new Error ( "Session ID not found in response" ) ;
150175 }
151176
152177 return {
@@ -227,7 +252,7 @@ export class TypebotService {
227252 remoteJid : data . remoteJid ,
228253 pushName : data . pushName || 'Default Name' ,
229254 instanceName : instance . instanceName ,
230- }
255+ } ,
231256 } ) ;
232257
233258 const typebotData = {
0 commit comments