Skip to main content
AskSuite is a conversational AI platform designed for the hospitality industry. It provides AI-powered chatbots and automation tools that help hotels manage guest inquiries, generate leads, and streamline communication across multiple channels including web chat, WhatsApp, and social media.

Configuring AskSuite as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the AskSuite option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need your AskSuite Integration User Token for this connection. This token authenticates your requests to the AskSuite API.

Obtaining Your Integration User Token

1

Access AskSuite

Log in to your AskSuite account at control.asksuite.com.
2

Navigate to Integrations

Go to Menu > Integrações (Integrations).
3

Generate or Copy Your Token

Locate or generate your Integration User Token. This token is used to authenticate API requests.
Store your token securely. Treat it like a password and do not share it publicly.

Configuration Fields

The following configurations are available:
  • Integration User Token: The token to authenticate against the AskSuite API service. You can find your token at Menu > Integrações in AskSuite.
  • Company IDs: The company IDs to filter conversation leads. You can specify multiple company IDs to extract data from multiple properties.
  • Start Date: The earliest date from which records will be synced. This is used for incremental sync of conversation leads.
Company IDs allow you to filter conversations by specific properties or hotels in your AskSuite account. This is useful when managing multiple properties.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. AskSuite provides access to conversation data, tasks, tags, and messaging templates.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can determine when to execute a full sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from AskSuite and their corresponding fields:
Stream containing conversation leads from your AskSuite chatbot interactions. This stream supports incremental sync based on the updatedAt field.
FieldTypeDescription
idIntegerUnique identifier for the conversation record
conversationIdStringUnique identifier for the conversation
groupIdStringGroup identifier
companyIdStringCompany identifier
companyNameStringCompany name
nameStringCustomer name
emailStringCustomer email
phoneStringCustomer phone
cityStringCity
stateStringState or region
countryStringCountry
languageStringLanguage code (e.g., pt-br)
customStringCustom field
platformStringPlatform where conversation originated
sourceStringSource of the conversation (e.g., chat_web)
humanRequestBooleanWhether human assistance was requested
attendantStringAttendant name
attendantEmailStringAttendant email
linkToLiveChatStringLink to live chat
pageStringPage URL where conversation started
arrivalDateStringArrival date
departureDateStringDeparture date
adultsIntegerNumber of adults
childrenIntegerNumber of children
requestPriceBooleanWhether price was requested
linkQuotationOpenedBooleanWhether quotation link was opened
hasReservationBooleanWhether conversation has reservation
groupQuoteBooleanWhether it’s a group quote
eventQuoteBooleanWhether it’s an event quote
totalReservationNumberTotal reservation value
lastReservationDateIntegerLast reservation date as timestamp
lastReservationDateFormattedStringLast reservation date formatted
lastReservationCurrencyStringLast reservation currency
lastReservationValueNumberLast reservation value
lastReservationCodeStringLast reservation code
lastReservationSalesmanStringLast reservation salesman
minTotalValuePriceQuoteNumberMinimum total value price quote
maxTotalValuePriceQuoteNumberMaximum total value price quote
currencyPriceQuoteStringCurrency for price quote
tagsArrayList of tag names
tagsStringStringTags as string
eventsArrayList of event IDs
utmSourceStringUTM source parameter
utmMediumStringUTM medium parameter
utmCampaignStringUTM campaign parameter
dateFormattedStringFormatted date and time
lastMessageReceivedAtIntegerTimestamp of last message received in milliseconds
finishedBooleanWhether conversation is finished
unavailableBooleanWhether unavailable
updatedAtIntegerLast update timestamp in milliseconds
createdAtIntegerCreation timestamp in milliseconds
Stream containing tasks associated with conversations, such as follow-ups and reminders.
FieldTypeDescription
idIntegerUnique identifier for the conversation task
conversationIdStringIdentifier of the conversation
companyIdStringCompany identifier
parentCompanyIdStringParent company identifier
genericRuleEngineIdIntegerGeneric rule engine identifier
conversationTaskMessageObjectConversation task message with template details
conversationTaskMessage.templateIdStringTemplate ID
conversationTaskMessage.templateCategoryStringTemplate category
conversationTaskMessage.companyIdStringCompany ID
conversationTaskMessage.statusStringMessage status
conversationTaskMessage.paramsArrayArray of parameters
conversationTaskMessage.textStringMessage text
conversationTaskMessage.imageStringMessage image
conversationTaskMessage.sentAtIntegerSent timestamp
conversationTaskMessage.deliveredAtIntegerDelivered timestamp
conversationTaskMessage.answeredAtIntegerAnswered timestamp
conversationTaskMessage.failedAtIntegerFailed timestamp
conversationTaskMessage.buttonsArrayMessage buttons
conversationTaskMessage.quickRepliesArrayQuick replies
messageObjectMessage object with template ID and status
message.textStringMessage text
message.imageStringMessage image
message.paramsArrayMessage parameters
message.buttonsArrayMessage buttons
message.quickRepliesArrayQuick replies
message.sentAtIntegerSent timestamp
message.failedAtIntegerFailed timestamp
message.statusStringMessage status
message.companyIdStringCompany ID
message.answeredAtIntegerAnswered timestamp
message.templateIdStringTemplate ID
message.deliveredAtIntegerDelivered timestamp
message.templateCategoryStringTemplate category
titleStringTask title
descriptionStringTask description
statusStringTask status (e.g., TODO, DONE, EXPIRED, CANCELED)
userCreatorIdIntegerID of the user who created the task
userAssignIntegerID of the user assigned to the task
externalDataObjectExternal data with lead and user information
externalData.lead.nameStringLead name
externalData.lead.emailStringLead email
externalData.lead.phoneStringLead phone
externalData.user.idIntegerUser ID
createdAtIntegerCreation timestamp in milliseconds
updatedAtIntegerLast update timestamp in milliseconds
expirationDateIntegerExpiration date as timestamp in milliseconds
Stream containing all tags used to categorize and organize conversations.
FieldTypeDescription
tagIdIntegerUnique identifier for the tag
nameStringTag name
colorStringTag color in hex format
typeStringTag type (e.g., custom)
statusStringTag status (e.g., active)
activeBooleanWhether the tag is active
standardBooleanWhether the tag is standard
visibleToClientsBooleanWhether the tag is visible to clients
companyIdStringCompany identifier
companiesIdsArrayList of company IDs associated with the tag
disabledCompaniesIdsArrayList of disabled company IDs
translationsObjectTranslations for the tag
translations.en.TAGStringTag translation in English
translations.en.INFOStringInfo translation in English
translations.en.NOTIFICATIONStringNotification translation in English
translations.es.TAGStringTag translation in Spanish
translations.es.INFOStringInfo translation in Spanish
translations.es.NOTIFICATIONStringNotification translation in Spanish
translations.pt_br.TAGStringTag translation in Brazilian Portuguese
translations.pt_br.INFOStringInfo translation in Brazilian Portuguese
translations.pt_br.NOTIFICATIONStringNotification translation in Brazilian Portuguese
triggeredByStringWhat triggered the tag
createdAtIntegerCreation timestamp in milliseconds
Stream containing broadcast/transmission lists for WhatsApp campaigns and bulk messaging.
FieldTypeDescription
transmissionListIdStringUnique identifier for the transmission list
nameStringName of the transmission list
templateIdStringTemplate identifier used for this transmission
companyIdStringCompany identifier
statusStringStatus of the transmission (e.g., SENT)
messagesArrayList of messages in the transmission
messages.phoneStringRecipient phone number
messages.paramsArrayArray of parameters
messages.channelRulesCheckBooleanChannel rules check status
failedMessagesStringFailed messages, if any
stopBotBooleanWhether to stop the bot
tagsStringTags associated with the transmission as key-value pairs
trackDataStringTracking data
actionsStringActions associated with the transmission
createdAtIntegerCreation timestamp in milliseconds
isCampaignBooleanWhether this is a campaign
expirationDateIntegerExpiration date as timestamp in milliseconds
userCreatorIdIntegerID of the user who created the transmission
Stream containing WhatsApp message templates used for automated and campaign messaging.
FieldTypeDescription
idMessageTemplateIntegerUnique identifier for the message template
titleStringTemplate title
contentStringTemplate content
companyIdStringCompany identifier
languageStringTemplate language code
categoryStringTemplate category (e.g., ACCOUNT_UPDATE)
templateTypeStringTemplate type (e.g., CAMPAIGN)
statusStringTemplate status (e.g., active)
platformStatusStringPlatform status (e.g., APPROVED)
platformStringPlatform name (e.g., GUPSHUP)
platformIdStringPlatform identifier
platformContentStringPlatform-specific content
reasonStringReason for template status
buttonsArrayList of buttons in the template
buttons.idStringButton ID
buttons.labelStringButton label
buttons.typeStringButton type
buttons.defaultValueStringDefault value
quickRepliesArrayList of quick replies
parametersArrayList of template parameters
parameters.idStringParameter ID
parameters.nameStringParameter name
parameters.typeStringParameter type
parameters.visibleBooleanWhether parameter is visible
parameters.contentReplaceStringContent to replace
parameters.dataSourceFieldStringData source field
imageStringTemplate image URL or data
userCreatorIdIntegerID of the user who created the template
createdAtIntegerCreation timestamp in milliseconds
lastCategoryUpdateAtIntegerLast category update timestamp in milliseconds
categoryUpdatesIntegerNumber of category updates

Data Model

The following diagram illustrates the relationships between the core data streams in AskSuite. The arrows indicate the join keys that link the different entities.

Implementation Notes

Data Sync Considerations

  • Incremental Sync: The Conversations stream supports incremental sync using the updatedAt field. Other streams (Tags, Conversation Tasks, Transmission List, WhatsApp Message Templates) are extracted as full table syncs.
  • Timestamps: All timestamps in AskSuite data are stored as milliseconds since epoch. You may need to convert these to standard datetime formats for analysis.
  • Company Filtering: The company_ids configuration allows you to filter data by specific properties. Make sure to include all relevant company IDs to capture complete data.

Multi-Property Support

If you manage multiple hotels or properties in AskSuite, you can specify multiple Company IDs in the configuration. This will extract conversation data from all specified properties in a single sync.

Skills for agents

Download AskSuite skills file

AskSuite connector documentation as plain markdown, for use in AI agent contexts.