Skip to content

Commit ff06cd7

Browse files
committed
feat: Added support for new typebot API
1 parent ade3952 commit ff06cd7

File tree

5 files changed

+67
-26
lines changed

5 files changed

+67
-26
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
### Feature
44
* Added AWS SQS Integration
5-
* Added compatibility with typebot v2
5+
* Added support for new typebot API
66
* Added endpoint sendPresence
77
* New Instance Manager
88
* Added auto_create to the chatwoot set to create the inbox automatically or not

Docker/.env.example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ CONFIG_SESSION_PHONE_NAME=Chrome
105105
QRCODE_LIMIT=30
106106
QRCODE_COLOR=#198754
107107

108-
TYPEBOT_API_VERSION=v1
108+
# old | latest
109+
TYPEBOT_API_VERSION=latest
109110

110111
# Defines an authentication type for the api
111112
# We recommend using the apikey because it will allow you to use a custom token,

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ ENV CONFIG_SESSION_PHONE_NAME=Chrome
104104
ENV QRCODE_LIMIT=30
105105
ENV QRCODE_COLOR=#198754
106106

107-
ENV TYPEBOT_API_VERSION=v1
107+
ENV TYPEBOT_API_VERSION=latest
108108

109109
ENV AUTHENTICATION_TYPE=apikey
110110

src/dev-env.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ QRCODE:
147147
COLOR: "#198754"
148148

149149
TYPEBOT:
150-
API_VERSION: 'v1' # v1 | v2
150+
API_VERSION: 'latest' # old | latest
151151

152152
# Defines an authentication type for the api
153153
# We recommend using the apikey because it will allow you to use a custom token,

src/whatsapp/services/typebot.service.ts

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -171,14 +171,20 @@ export class TypebotService {
171171

172172
const reqData = {
173173
startParams: {
174-
typebot: data.typebot,
174+
publicId: data.typebot,
175175
prefilledVariables: prefilledVariables,
176176
},
177177
};
178178

179179
try {
180180
const version = this.configService.get<Typebot>('TYPEBOT').API_VERSION;
181-
const request = await axios.post(`${data.url}/api/${version}/sendMessage`, reqData);
181+
let url: string;
182+
if (version === 'latest') {
183+
url = `${data.url}/api/v1/typebots/${data.typebot}/startChat`;
184+
} else {
185+
url = `${data.url}/api/v1/sendMessage`;
186+
}
187+
const request = await axios.post(url, reqData);
182188

183189
await this.sendWAMessage(
184190
instance,
@@ -256,7 +262,7 @@ export class TypebotService {
256262

257263
const reqData = {
258264
startParams: {
259-
typebot: data.typebot,
265+
publicId: data.typebot,
260266
prefilledVariables: {
261267
...data.prefilledVariables,
262268
remoteJid: data.remoteJid,
@@ -268,7 +274,13 @@ export class TypebotService {
268274

269275
try {
270276
const version = this.configService.get<Typebot>('TYPEBOT').API_VERSION;
271-
const request = await axios.post(`${data.url}/api/${version}/sendMessage`, reqData);
277+
let url: string;
278+
if (version === 'latest') {
279+
url = `${data.url}/api/v1/typebots/${data.typebot}/startChat`;
280+
} else {
281+
url = `${data.url}/api/v1/sendMessage`;
282+
}
283+
const request = await axios.post(url, reqData);
272284

273285
if (request?.data?.sessionId) {
274286
data.sessions.push({
@@ -565,14 +577,24 @@ export class TypebotService {
565577
return;
566578
}
567579

568-
const reqData = {
569-
message: content,
570-
sessionId: data.sessionId,
571-
};
572-
573580
try {
574581
const version = this.configService.get<Typebot>('TYPEBOT').API_VERSION;
575-
const request = await axios.post(`${data.url}/api/${version}/sendMessage`, reqData);
582+
let urlTypebot: string;
583+
let reqData: {};
584+
if (version === 'latest') {
585+
urlTypebot = `${data.url}/api/v1/sessions/${data.sessionId}/continueChat`;
586+
reqData = {
587+
message: content,
588+
};
589+
} else {
590+
urlTypebot = `${data.url}/api/v1/sendMessage`;
591+
reqData = {
592+
message: content,
593+
sessionId: data.sessionId,
594+
};
595+
}
596+
597+
const request = await axios.post(urlTypebot, reqData);
576598

577599
await this.sendWAMessage(
578600
instance,
@@ -651,15 +673,24 @@ export class TypebotService {
651673
return;
652674
}
653675

654-
const reqData = {
655-
message: content,
656-
sessionId: data.sessionId,
657-
};
658-
659676
let request: any;
660677
try {
661678
const version = this.configService.get<Typebot>('TYPEBOT').API_VERSION;
662-
request = await axios.post(`${data.url}/api/${version}/sendMessage`, reqData);
679+
let urlTypebot: string;
680+
let reqData: {};
681+
if (version === 'latest') {
682+
urlTypebot = `${data.url}/api/v1/sessions/${data.sessionId}/continueChat`;
683+
reqData = {
684+
message: content,
685+
};
686+
} else {
687+
urlTypebot = `${data.url}/api/v1/sendMessage`;
688+
reqData = {
689+
message: content,
690+
sessionId: data.sessionId,
691+
};
692+
}
693+
request = await axios.post(urlTypebot, reqData);
663694

664695
await this.sendWAMessage(
665696
instance,
@@ -734,13 +765,22 @@ export class TypebotService {
734765
return;
735766
}
736767

737-
const reqData = {
738-
message: content,
739-
sessionId: session.sessionId.split('-')[1],
740-
};
741-
742768
const version = this.configService.get<Typebot>('TYPEBOT').API_VERSION;
743-
const request = await axios.post(`${url}/api/${version}/sendMessage`, reqData);
769+
let urlTypebot: string;
770+
let reqData: {};
771+
if (version === 'latest') {
772+
urlTypebot = `${url}/api/v1/sessions/${session.sessionId.split('-')[1]}/continueChat`;
773+
reqData = {
774+
message: content,
775+
};
776+
} else {
777+
urlTypebot = `${url}/api/v1/sendMessage`;
778+
reqData = {
779+
message: content,
780+
sessionId: session.sessionId.split('-')[1],
781+
};
782+
}
783+
const request = await axios.post(urlTypebot, reqData);
744784

745785
await this.sendWAMessage(
746786
instance,

0 commit comments

Comments
 (0)