You can now order fonnte's package right from your application.

this way, device API is now fully usage in your own application.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
 CURLOPT_URL => 'https://api.fonnte.com/order',
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => '',
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 0,
 CURLOPT_FOLLOWLOCATION => true,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => 'POST',
 CURLOPT_POSTFIELDS => array('plan' => 1,'duration' => 1,'duration-value' => 1,'ai-quota' => 500,'ai-data' => 0),
 CURLOPT_HTTPHEADER => array(
 'Authorization: TOKEN'
 ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Available parameter

note :

We once provide inbox until 2021 we got some complaint and decided to close the inbox feature.

this inbox is just collection of incoming message.

but several user use their personal number to connect to fonnte, so some private chats are stored.

while fonnte do not use it for anything but process the message, some users are not satisfied.

so we close this at that time.

begining 2023-2024, as fonnte's user grow significantly, the inbox feature request is on demand.

we still lock in our previous decision to not enable it and suggest using webhook instead.

many of our user is not familiar with coding.

so we had a fight for the decision of opening it or not.

we come to conclusion that we will rebuilt our inbox feature along with ability to reply.

but in one condition, the user is allowing the incoming messages to be stored.

so we are not without consent storing all incoming messages.

Screenshot 575

Logic is category that allow you to create logic for your flow.

currently we have condition and store logic.

Condition

you can make condition for the flow.

if a condition is met, should go to item A.

if not met, should go to item B.

Screenshot 568

Store

Store is used to store any last response or API response to a variable you can use later.

store can store message, name, sender and url.

Screenshot 570

Response is used to wait for user's response.

the flow will stop whenever hit response.

on user response, the flow will then continue

Message is a type of the message to be sent to reply incoming message.

currently we have 3 items under message category.

Text

Text is used to reply using simple text only message.

Screenshot 560

you can type the text message to response.

Media

Media is used to send attachment with or without caption.

but there is no upload feature, you need to provide your own file.

Screenshot 565

AI

AI is used to reply the message using AI using your own data.

You can get more info about it in the docs about AI

By default, flow will behave as following:

No initiative

flow is designed to reply, not to send message first.

therefore, you can only reply incoming message

Start is the beginning

every items in flow will start from "start".

this is fresh starting point when the user is considered new to chat with.

if no arrow line coming from "start", flow will not working.

Single flow

Every item can only have one arrow line.

Item cannot be connected to multiple items.

No circular

Items cannot go back to where it is coming from in a single trip.

Screenshot 563

But you can add more items and go back to it if needed.

Screenshot 564

this way, it won't be single trip and can be done.

No delay

By default, flow will automatically send as soon as requested.

there is no delay on the flow.

in the beginning of 2025, we have already make some improvement to fonnte. we are adding features and changing some expected behaviour on fonnte.

Delay

Delay now starts on first target. previously, delay only works on multiple target. this is, while good to force single target to immediately sent and prevent any delay, this behaviour is not expected by most of our user. so we have changed the delay behaviour to delay each target, regardless the number of target.

Flow

We are adding flow to make chabot building easier. this is actually same as autoreply, chaining and submission but visually. even better, you can combine them all if you need them.

also, AI only supported via flow

AI setting

if you are using AI, you can set the AI to have their own behaviour.

AI data

Fonnte allow your AI to use your own data. using this data, your AI will act like personal assistant for your knowledgebase.

Response Source

Screenshot 538

We have added response source in the device->edit. we have now 3 response source. you can choose response from autoreply, spreadsheet, or flow.

spreadsheet still can only be used on regular plan and above it.

we are not planning to deprecate autoreply, chaining, and submission, or at least not yet.

but using flow is much greater and easier due to it's visual interface.

we encourage to build autoreply from flow.

Order

We also make order easier by adding custom duration and lifetime order for AI quota and AI data.

you can now order for 3 months or any month/year, all based on your needs.

Spreadsheet

for many end users, using variable like 081|admin|fonnte indeed helps a lot. but it has limitation.

we are adding spreadsheet to the rescue. it's as easy as excel.

Screenshot 539

this spreadsheet removing the needs of predefined variables in fonnte, like name,var1,var2 etc.

you can use your own variable name.

but still, you need 1 variable named "whatsapp" for target number.

for other names, it's up to you.

Server optimization

Our server also now have been optimized even more to handle more request and more dependable.

Flow is a "must have" feature in no code chatbot building.

fonnte already have several features like autoreply, chaining, and submission before but it's hard to visualize.

it also has it's own limitation.

so it's finally the time to move it all to flow.

Flow interface

Screenshot 516

all items are categorized in message, response, logic, import and action.

you can drag and drop an item in the menu to make an element.

then, you can link them to make the flow.

you can also clear the flow to reset all flow.

the save button is to save your flow.

everytime you save the flow will reset all path on your existing chats.

so all user that currently having chat with your chatbot will have to start over.

Setup

All package is eligible for using flow, even free one without limit.

To activate the flow, you need to edit your device :

  1. Autoread must on
  2. response source is flow
Screenshot 561

that's it.

you're good to go.

By default, AI do not use chat history.

every incoming chat is a new chat.

so it will behave differently than chatgpt and doesn't remember past conversation.

to enable history, you need to make a loop in the flow setting.

create 2 ai and 2 response, then link them circular.

example : ai 1 -> response 1 -> ai 2 -> response 2 -> ai 1.

it's easier to show an image

Screenshot 512

by using this flow, your ai will remember history and can answer better.

When adding your own data, sometime you'll face a problem where your ai answer is not based on desired data.

This is typically happen when your data is related each other, but highly similar.

for example, one data about register, one data about login, one data about reset password.

sometime the ai score chooses "login" data when the actual chat is about "cannot login".

therefore, "reset password" data is the actual data you expect to have highest score.

let's dig deeper.

Short vs long data

using previous case, why would i need to separate them to 3 data?

i can merge them and use 1 data instead!

yes, this is one of the correct approach.

with longer data, it means broader data range.

it's reserving overall topic, so you should not worry too much.

but still, if you still have another data that having similar topic, the problem will still exist.

this solution will only works, if you combine all related content as one data.

but, this also raise another issue, your cost will possibly increase.

so the second solution is to cut it to super specific short data.

only around 200-500 characters.

the data must super specific and not overlapping another data.

for example, "register","login","reset password".

this share common topic : account.

therefore, you need to rephrase your data to be very specific to each data about "register","login" and "reset password".

LongShort
+ Keep the context- separate context
+ easily do comparation and get related data- cannot do comparation and related data is hard to get
+ easier to maintain- harder to maintain
- less precise+ more precise
- cost more+ cost less
- slower response+ faster response

When short data are good:

example : register, login, reset password

When long data are good:

example : pricing, api documentation, step by step data

Add description & category

after cut the data short, you can also add some addition information and categorize it.

with this action, your data will obtain additional context and the ai would understand better.

inside the data, you can also add some keyword related to the data.

for example : Instead of "our lite plan," use "our lite plan includes API and webhook support.

do avoid ambiguity inside the data.

avoid "all plans have basic feature", instead use : "all plans include API and webhook support".

Add example

You can also add more example to it so AI can enhance it based on your example model.

for example in the documentation, fonnte offer some example in PHP.

this can be included as example.

other thing is add incoming message example.

so you can add something like :
question example : "how to order?","how much is ai quota price?"

Conclusion

we cannot ask ai to always correctly use specific data from our collection of data.

ai works using the power of statistic, which means it's all about probability.

what can we do is increase the probability by using known best practice above and let the statistic works as is.

Made with in Indonesia