# Workflow Builder


# Workflow Builder

**Workflow Builder** એ **સ્ક્રિપ્ટેડ કોલ ફ્લો** માટેનું વિઝ્યુઅલ, નોડ-આધારિત એડિટર છે. જ્યાં ઓપન-એન્ડેડ એજન્ટ મોડેલને નક્કી કરવા દે છે કે આગળ શું કહેવું, ત્યાં વર્કફ્લો એજન્ટને એક નિર્ધારિત માર્ગ આપે છે — પગલાંઓનો એક ક્રમ જે બોલે છે, પૂછે છે, બ્રાન્ચ કરે છે, ટૂલ્સ કોલ કરે છે અને વાતચીતને રૂટ કરે છે. જ્યારે કોલ કોઈ વ્યાખ્યાયિત સ્ક્રિપ્ટને અનુસરવાનો હોય ત્યારે તેનો ઉપયોગ કરો: લીડ ક્વોલિફાય કરવી, એપોઇન્ટમેન્ટ બુક કરવી, સપોર્ટ સમસ્યાનું ટ્રાયેજ કરવું અથવા સર્વે એકત્રિત કરવો. તમે તેને **/agent/setup** પરના એજન્ટ બિલ્ડરમાં **Tools** ટૅબમાંથી **Open Workflow Builder** બટનનો ઉપયોગ કરીને ખોલો છો.

એક વર્કફ્લો એક જ એજન્ટનો હોય છે. કોલ સમયે એક **supervisor** વાતચીત પર નજર રાખે છે, નક્કી કરે છે કે કૉલર કયો **intent** વ્યક્ત કરી રહ્યો છે, અને તે ઇરાદાનાં **steps** ક્રમમાં ચલાવે છે. પગલાંની અંદર એજન્ટ જે ફંક્શન્સ વાપરી શકે છે તે બરાબર એ જ છે જે તમે [Tools ટૅબ](./tools-mcp) પર બાંધ્યા છે — વર્કફ્લો એવા ટૂલ સુધી પહોંચી શકતો નથી જે તમે મંજૂર કર્યો ન હોય.

## વર્કફ્લો કેવી રીતે રચાયેલ છે

![Workflow Builder](/img/screenshots/portal/workflow-builder.png)
*Workflow Builder: n8n-શૈલીના નોડ કેનવાસ પર નિર્ધારણાત્મક કોલ ફ્લો ડિઝાઇન કરો, વૈકલ્પિક સુપરવાઇઝર પ્રોમ્પ્ટ સાથે.*

એક વર્કફ્લોમાં ત્રણ નેસ્ટેડ સ્તરો છે:

- **Graph** — પ્રતિ એજન્ટ એક વર્કફ્લો. તે એક વૈકલ્પિક **supervisor prompt** ધરાવે છે (ઇરાદાઓને રૂટ કરતા AI સુપરવાઇઝર માટેની કસ્ટમ સૂચનાઓ). જ્યાં સુધી તમે ગ્રાફ બનાવો નહીં, ત્યાં સુધી બિલ્ડર supervisor-prompt ફીલ્ડ સાથેની એક-વખતની **Create Workflow Graph** સ્ક્રીન બતાવે છે.
- **Intents** — વાતચીતની બ્રાન્ચ. દરેક ઇરાદાનું એક **display name**, એક **internal name**, એક **description** (સુપરવાઇઝર મોડેલને બતાવાય છે જેથી તે ઇરાદો મેળવી શકે), **trigger phrases** ની એક સૂચિ, એક **default intent** ટૉગલ, અને એક વૈકલ્પિક **fallback response** જે તેનાં બધાં પગલાં નિષ્ફળ જાય તો વપરાય છે. સુપરવાઇઝર એ ઇરાદો પસંદ કરે છે જેનું વર્ણન અને ટ્રિગર ફ્રેઝ કૉલરે જે કહ્યું તેને શ્રેષ્ઠ રીતે બંધબેસે છે.
- **Steps** — ઇરાદાની અંદરની ક્રમબદ્ધ ક્રિયાઓ. પગલાં ડિફોલ્ટ રીતે ઉપરથી નીચે ચાલે છે, અને દરેક પગલાનો એક પ્રકાર હોય છે જે નક્કી કરે છે કે તે શું કરે છે.

કૅનવાસ પર આ એક લીલા **Start** નોડ તરીકે વંચાય છે જે પ્રતિ બ્રાન્ચ એક **Intent** નોડમાં વહે છે, જેની નીચે તે ઇરાદાનાં **Step** નોડ ગોઠવાયેલા હોય છે. એક મિનિમેપ, ઝૂમ નિયંત્રણો અને એક ડોટેડ બેકગ્રાઉન્ડ તમને મોટા ફ્લોમાં માર્ગ શોધવામાં મદદ કરે છે.

:::info[ઇરાદાઓ એ રીત છે જેનાથી સુપરવાઇઝર રૂટ કરે છે]

સુપરવાઇઝર કૉલરના કથનને દરેક ઇરાદાના **description** અને **trigger phrases** સામે મેળવે છે, તેથી વર્ણનો એ રીતે લખો જે રીતે તમે કોઈ સહકર્મીને બ્રીફ કરો ("User wants to book or schedule an appointment") અને થોડા સ્વાભાવિક ટ્રિગર ફ્રેઝ ઉમેરો. એક ઇરાદાને **default** તરીકે ચિહ્નિત કરો જેથી જે વાતચીતો સ્પષ્ટપણે કંઈ સાથે મેળ ન ખાય તેને પકડી શકાય.

:::

## પગલાંના પ્રકારો

કોઈ ઇરાદો કે તેનું એક પગલું પસંદ કર્યા પછી **Add Step** વડે પગલું ઉમેરો, જે નોડ પિકર ખોલે છે. પિકર પગલાંના પ્રકારોને **Conversation**, **Logic**, **Integrations** અને **Call Control** માં જૂથબદ્ધ કરે છે. તેર પ્રકારો છે:

- **Message** — બોટ કૉલરને એક લાઇન બોલે છે.
- **Question** — બોટ કંઈક પૂછે છે અને જવાબને એક **variable** માં સંગ્રહે છે. તમે એક **validation type** (Any, Number, Email, Date, Yes / No or Phone) અને એક **re-ask message** પસંદ કરો છો જે જવાબ વેલિડેશનમાં નિષ્ફળ જાય ત્યારે વપરાય છે.
- **Condition** — ફ્લોને બ્રાન્ચ કરે છે. તમે એક **field** (સેશન વેરિએબલ), એક **operator** (equals, not equals, contains, does not contain, greater than, less than, matches regex, is empty, is not empty) અને એક **value** પસંદ કરો છો, પછી **If True** અને **If False** ને ચોક્કસ પગલાં તરફ રૂટ કરો છો.
- **Tool Call** — એજન્ટ સાથે બંધાયેલ **built-in** અથવા **custom** ફંક્શન કોલ કરે છે. તમે ટૂલ પ્રકાર, ફંક્શન, અને એક વૈકલ્પિક **input mapping** (JSON) પસંદ કરો છો જે પગલાંના ઇનપુટ્સને સેશન વેરિએબલ્સ સાથે મેપ કરે છે.
- **Appointment** — એપોઇન્ટમેન્ટ-બુકિંગ સબ-ફ્લો બુકિંગ ફંક્શન સામે ચલાવે છે, તેના પોતાના ઇનપુટ મેપિંગ સાથે.
- **Webhook** — બાહ્ય URL પર HTTP વિનંતી કરે છે. તમે **method** (GET, POST, PUT, PATCH, DELETE), **URL**, વૈકલ્પિક **headers** (JSON), એક **body template**, અને પ્રતિસાદને **save the response** કરવા માટેનું વેરિએબલ સેટ કરો છો.
- **Transfer** — કોલને બીજા **phone number or queue** ને સોંપે છે, ટ્રાન્સફર પહેલાં જાહેર કરાતા વૈકલ્પિક સંદેશ સાથે. કોલ ટ્રાન્સફર એન્ડ-ટુ-એન્ડ કેવી રીતે વર્તે છે તે માટે [કોલિંગ અને ટેલિફોની](./calling-telephony) જુઓ.
- **End Call** — કોલ બંધ કરે છે, વૈકલ્પિક રીતે પહેલા એક **goodbye message** બોલીને.
- **Delay** — આગળ વધતા પહેલા નક્કી કરેલ સેકન્ડોની સંખ્યા (1–60) માટે મૌનપણે રાહ જુએ છે.
- **Set Variable** — એક મૂલ્ય (સ્થિર ટેક્સ્ટ અથવા બીજા વેરિએબલનો સંદર્ભ) સેશન વેરિએબલમાં સંગ્રહે છે.
- **Send Notification** — એક નામવાળા ટેમ્પ્લેટ અને એક વેરિએબલ મેપિંગ (JSON) નો ઉપયોગ કરીને **SMS**, **email** અથવા **WhatsApp** સંદેશ મોકલે છે.
- **Static Response** — ટેક્સ્ટનો એક નિશ્ચિત બ્લોક બોલે છે. આ એક લેગસી નોડ છે; નવા ફ્લો માટે **Message** ને પ્રાધાન્ય આપો.
- **Play Audio** — કૉલરને એક ઑડિયો ફાઇલ (એક પબ્લિક WAV અથવા MP3 URL) વગાડે છે.

દરેક પગલું તમે કોઈ નોડ પસંદ કરો ત્યારે ખૂલતા **right-hand panel** માં કોન્ફિગર થાય છે. પેનલ ફક્ત તે પગલાંના પ્રકાર સાથે સંબંધિત ફીલ્ડ્સ બતાવે છે, ઉપરાંત પગલાનું નામ અને એક પ્રકાર પસંદગીકાર.

:::tip[વેરિએબલ્સ તમારાં પગલાંને એકબીજા સાથે જોડે છે]

એક **Question** અથવા **Set Variable** પગલું તેનું પરિણામ તમે પસંદ કરેલા નામ હેઠળ સંગ્રહે છે. તેને પછીથી — Message માં, Condition ના ફીલ્ડમાં, Webhook બોડીમાં અથવા નોટિફિકેશન મેપિંગમાં — `{variable_name}` જેવા કર્લી-બ્રેસ સિન્ટેક્સ સાથે સંદર્ભ આપો. આ રીતે ફ્લો યાદ રાખે છે કે કૉલરે શું કહ્યું અને તેને પગલાંઓ વચ્ચે આગળ લઈ જાય છે.

:::

## બ્રાન્ચિંગ અને રૂટિંગ

પગલાંને સીધી લાઇનમાં ચાલવાની જરૂર નથી:

- એક **Condition** પગલું **True** અને **False** આઉટપુટ ખુલ્લા કરે છે. વેરિએબલના મૂલ્ય પર બ્રાન્ચ કરવા માટે દરેકને એક લક્ષ્ય પગલા સાથે જોડો (અથવા તેને **Continue in order** પર છોડો).
- બાકીના દરેક પગલાંના પ્રકારમાં **On Success** અને **On Failure** રૂટિંગ હોય છે. ડિફોલ્ટ રીતે પગલું ક્રમમાં આગળના પગલા સુધી ચાલુ રહે છે; બીજે ક્યાંક કૂદવા માટે આ સેટ કરો — ઉદાહરણ તરીકે, નિષ્ફળ Tool Call ને રિકવરી મેસેજ તરફ રૂટ કરો.

તમે રૂટિંગ બે રીતે સેટ કરી શકો છો: કોન્ફિગ પેનલમાં લક્ષ્ય પગલું પસંદ કરો, અથવા કૅનવાસ પર પગલાંના આઉટપુટ હૅન્ડલ (લીલા **OK** / **TRUE** હૅન્ડલ અથવા લાલ **FAIL** / **FALSE** હૅન્ડલ) થી બીજા પગલા સુધી એક **drag a connection** કરો. કૅનવાસ પર દોરેલા જોડાણો તરત જ વર્કફ્લોમાં સેવ થાય છે.

## બાંધવું અને સેવ કરવું

બિલ્ડર એક મોટા સેવને બદલે તમે ફેરફારો કરો તેમ તેમ તેમને જાળવી રાખે છે:

- **Add Intent** એક નવી બ્રાન્ચ બનાવે છે; તેનું નામ, વર્ણન અને ટ્રિગર ફ્રેઝ ભરવા તેના પર ક્લિક કરો, પછી પેનલમાં **Save Changes**.
- **Add Step** તમે પસંદ કરેલ પ્રકારનું એક પગલું દાખલ કરે છે; તેને પેનલમાં કોન્ફિગર કરો અને **Save Changes**.
- નોડ પરના ઉપર / નીચે શેવ્રોન ઇરાદાઓ અને પગલાંને **reorder** કરે છે; નોડ ડિલીટ કરવાથી (તેના ટ્રૅશ આઇકન અથવા Delete કી દ્વારા) પહેલા પુષ્ટિ માગે છે.
- ટૂલબાર **Save** બટન **supervisor prompt** સંગ્રહે છે; એક અંબર બિંદુ સેવ ન થયેલા પ્રોમ્પ્ટ ફેરફારોને ચિહ્નિત કરે છે.

## ટેમ્પ્લેટથી શરૂ કરો

શરૂઆતથી બાંધવાને બદલે, **Templates** બટન તૈયાર ફ્લો આપે છે જે તમે લોડ કરી અને પછી એડિટ કરી શકો છો: **Lead Qualification**, **Appointment Booking**, **Customer Support**, **NPS Survey**, **Payment Reminder** અને **Customer Onboarding**. દરેક પ્રશ્નો, શરતો અને વિદાય સંદેશા સહિત તેના પગલાં સાથેનો સંપૂર્ણ ઇરાદો મૂકે છે. ટેમ્પ્લેટ લાગુ કરવાથી તે તમારા હાલના વર્કફ્લોને બદલવાને બદલે તેમાં **ઉમેરો** કરે છે, જેથી તમે ઘણા સંયોજિત કરી શકો અથવા જે જોઈતું ન હોય તે કાપી શકો.

## OpenAPI સ્પેકમાંથી ફંક્શન્સ ઇમ્પોર્ટ કરો

**Import API** બટન હાલના API ને એજન્ટ ફંક્શન્સમાં ફેરવે છે જે તમે **Tool Call** પગલાંમાંથી કોલ કરી શકો છો. એક **OpenAPI / Swagger** સ્પેક આપો — URL દ્વારા અથવા તેને પેસ્ટ કરીને (OpenAPI 2.0 અથવા 3.x, JSON અથવા YAML) — અને ઇમ્પોર્ટર ઑપરેશન્સ પાર્સ કરે છે. તમે જે ઑપરેશન્સ ઇચ્છો તે પસંદ કરો, બેઝ URL ની પુષ્ટિ કરો, અને તે તેમના માટે **custom functions** બનાવે છે. તે ફંક્શન્સ પછી Tool Call પગલાં માટેની ફંક્શન સૂચિમાં અને Tools ટૅબ પર દેખાય છે.

:::info[ફંક્શન્સની કૅટલોગ બીજે ક્યાંક મેનેજ થાય છે]

એક Tool Call પગલું ફક્ત એજન્ટને પહેલેથી ઉપલબ્ધ ફંક્શન્સ વાપરી શકે છે — બિલ્ટ-ઇન ફંક્શન્સ અને [Tools ટૅબ](./tools-mcp) પર બંધાયેલા કોઈ પણ કસ્ટમ ફંક્શન્સ, જેમાં OpenAPI ઇમ્પોર્ટર દ્વારા બનાવેલા પણ સામેલ છે. જો તમે જે ફંક્શન ઇચ્છો તે સૂચિબદ્ધ ન હોય, તો પહેલા તેને Tools ટૅબ પર ઉમેરો.

:::

## આગળનાં પગલાં

- [ફંક્શન્સ બાંધો અને MCP સર્વર્સ જોડો (Tools ટૅબ)](./tools-mcp)
- [કોલ ટ્રાન્સફર અને ટેલિફોની કોન્ફિગર કરો](./calling-telephony)
- [તમારો પહેલો એજન્ટ બનાવો](./create-agent)
- [એજન્ટ્સ ઓવરવ્યૂ પર પાછા જાઓ](./overview)
