ThunderPhone 2.0 હવે લાઇવ છે.સેલ્ફ-સર્વ, 2¢/મિનિટથી.જાહેરાત વાંચો

Developer cookbook

દરેક કૉલ માટેના વેરિએબલ્સ

તેના ડિપ્લોય કરેલા prompt, ટૂલ્સ અથવા સેટિંગ્સ બદલ્યા વિના દરેક કૉલ માટે સેવ કરેલા એજન્ટને વ્યક્તિગત બનાવો.

તમારા સાચવેલા એજન્ટના promptમાં પ્લેસહોલ્ડર મૂકો, પછી કૉલ શરૂ કરતી વખતે variables ઑબ્જેક્ટ આપો. સાચવેલ કન્ફિગરેશન અને વર્ઝન ઇતિહાસમાં કોઈ ફેરફાર થતો નથી. ThunderPhone કૉલ કન્ફિગરેશન વૉઇસ રનટાઇમને મોકલતા પહેલાં ટેક્સ્ટ રેન્ડર કરે છે.

જ્યારે કોઈ મૂલ્યોની જરૂર ન હોય, ત્યારે variables છોડો; null મોકલશો નહીં (400 સાથે નકારવામાં આવે છે).

પ્લેસહોલ્ડર અને ડિફૉલ્ટ

You are calling {{name|Friend}} about account {{account_id}}.
The available appointment is {{ appointment_slot }}.

નામો કેસ-સેન્સિટિવ હોય છે અને [A-Za-z_][A-Za-z0-9_]* પેટર્નનું પાલન કરે છે. નામની આસપાસ વ્હાઇટસ્પેસ માન્ય છે; | પછીનો વ્હાઇટસ્પેસ ડિફૉલ્ટનો ભાગ હોય છે અને જાળવી રાખવામાં આવે છે. જ્યારે name ગેરહાજર હોય અથવા null હોય ત્યારે {{name|Friend}} Friend નો ઉપયોગ કરે છે; ખાલી સ્ટ્રિંગ એ સ્પષ્ટ રીતે આપેલ મૂલ્ય છે. ડિફૉલ્ટ વિનાનાં ગેરહાજર મૂલ્યો ખાલી સ્ટ્રિંગ બની જાય છે અને તેમનાં નામ unresolved_variables માં દેખાય છે. ડબલ બ્રેસિસ વચ્ચેનો ટેક્સ્ટ જો માન્ય પ્લેસહોલ્ડર ન હોય તો દૂર કરવામાં આવે છે. દરેક આપેલા મૂલ્યની અંદરનો ડબલ-બ્રેસવાળો ટેક્સ્ટ સ્વતંત્ર રીતે દૂર કરવામાં આવે છે; કોઈ મૂલ્ય આસપાસનો prompt ટેક્સ્ટ અથવા બીજું મૂલ્ય દૂર કરી શકતું નથી. મેળ ન ખાતા ડબલ-બ્રેસ ડિલિમિટર પણ દૂર કરવામાં આવે છે. promptમાં JSON ઉદાહરણો માટે {{ નો ઉપયોગ કરશો નહીં. મૂલ્યો સાદા ટેક્સ્ટ હોય છે; તેમનું ક્યારેય કોડ તરીકે મૂલ્યાંકન થતું નથી અથવા ટેમ્પલેટ તરીકે પુનરાવર્તિત રીતે વિસ્તરણ થતું નથી.

જ્યારે ફોન કૉલ માટે તે ફીલ્ડ મોકલવામાં આવે ત્યારે સ્વીકૃતિ prompt, આઉટબાઉન્ડ વૉઇસમેઇલ સંદેશાઓ અને સંમતિ જાહેરાતના ટેક્સ્ટમાં પણ વેરિએબલ્સ આવી શકે છે. એજન્ટ પાસે અલગ first_message ફીલ્ડ નથી: તેની શરૂઆતની સૂચનાઓ promptમાં મૂકો. હાલના વૉઇસમેઇલ {agent_name} અને {org_name} પ્લેસહોલ્ડર કાર્યરત રહે છે.

મૂલ્યો સ્ટ્રિંગ, નંબર, બૂલિયન અથવા null હોઈ શકે છે; બૂલિયન true અને false તરીકે રેન્ડર થાય છે. ન્યૂ લાઇન (\n), ટૅબ (\t), અને કૅરેજ રિટર્ન (\r) સિવાયના યુનિકોડ કન્ટ્રોલ (Cc) અક્ષરો, બધા ફૉર્મેટ (Cf) અક્ષરો અને સરોગેટ (Cs) કોડ પૉઇન્ટ દૂર કરવામાં આવે છે; \r\n ને \n માં નૉર્મલાઇઝ કરવામાં આવે છે. રેન્ડર થતી વખતે દરેક મૂલ્ય 2,000 અક્ષરો સુધી મર્યાદિત છે. આપેલી સ્ટ્રિંગ્સને સ્ટોરેજ પહેલાં પણ સાફ કરીને ટ્રન્કેટ કરવામાં આવે છે. મૂળ ઑબ્જેક્ટ UTF-8 JSON ના 32 KB માં સમાઈ જવો જોઈએ; તેનાથી મોટા ઑબ્જેક્ટને કૉલ/સેશન વિનંતીઓમાં 400 મળે છે, જ્યારે કૅમ્પેઇન ઇમ્પોર્ટ્સ દરેક અમાન્ય પંક્તિને અલગથી રિપોર્ટ કરે છે. એરે અને નેસ્ટેડ ઑબ્જેક્ટ્સને મૂલ્યો તરીકે સ્વીકારવામાં આવતા નથી. મેળ ન ખાતી મેટાડેટા કીઝ (ઉદાહરણ તરીકે, સ્પેસ ધરાવતું CSV હેડર) જાળવી રાખવામાં આવે છે અને પાછી મોકલવામાં આવે છે, પરંતુ પ્લેસહોલ્ડર દ્વારા તેમનો સંદર્ભ આપી શકાતો નથી.

મૂલ્યો ક્યાંથી આવે છે

આઉટબાઉન્ડ API

POST /v1/call પર agent_id સાથે variables મોકલો:

{
  "from_number": "+15551234567",
  "to_number": "+14155550199",
  "agent_id": 12,
  "variables": {
    "name": "Ada",
    "account_id": "A-17",
    "appointment_slot": "Tuesday at 10 AM"
  }
}

આ ફોન નંબરના ડિફૉલ્ટ આઉટબાઉન્ડ એજન્ટ સાથે અથવા ઇનલાઇન config.prompt સાથે પણ કાર્ય કરે છે. અલગ variables સાથે idempotency keyનો ફરીથી ઉપયોગ કરી શકાતો નથી.

કૅમ્પેઇન CSV

ફોન સિવાયની CSV કૉલમ્સ પહેલેથી જ સંપર્ક variables તરીકે સંગ્રહિત હોય છે. હવે દરેક ડાયલ તેમનો આપમેળે ઉપયોગ કરે છે. તમારા પ્લેસહોલ્ડર્સ સાથે મેળ કરવા માટે name, account_id, અને appointment_slot જેવા હેડર્સનો ઉપયોગ કરો. હાલનું નામ મેપિંગ પ્રથમ અને છેલ્લું નામ ધરાવતી કૉલમ્સને name variableમાં જોડીને મૂકી શકે છે.

ડાયનેમિક કન્ફિગરેશન વેબહૂક

બ્લૉકિંગ કન્ફિગરેશન વેબહૂક પાથ પર, તમારી સંસ્થામાંનો સેવ કરેલો એજન્ટ અને પ્રતિ-કૉલ મૂલ્યો પરત કરો:

{"agent_id": 12, "variables": {"name": "Ada", "account_id": "A-17"}}

રિસ્પોન્સની keys વિનંતી-સ્તરના variablesને ઓવરરાઇટ કરે છે, જ્યારે વિનંતીની અન્ય keys યથાવત રહે છે. nullનું રિસ્પોન્સ મૂલ્ય પ્લેસહોલ્ડરનો ડિફૉલ્ટ પસંદ કરે છે. મર્જ થયેલો ઑબ્જેક્ટ પણ 32 KBમાં સમાઈ જવો જોઈએ. સેવ કરેલા-એજન્ટ રિસ્પોન્સ ફક્ત agent_id અને variables સ્વીકારે છે; prompt અથવા સેટિંગ્સ બદલવાની જરૂર હોય ત્યારે ઇનલાઇન કન્ફિગરેશન પરત કરો. prompt ધરાવતો રિસ્પોન્સ હંમેશા ઇનલાઇન કન્ફિગરેશનનો ઉપયોગ કરે છે: તે રિસ્પોન્સમાંનો કોઈપણ agent_id અવગણવામાં આવે છે, જેમાં null અથવા પૂર્ણાંક ન હોય તેવું મેટાડેટા પણ સામેલ છે. ઇનલાઇન promptને હજુ પણ સામાન્ય વેલિડેશન પાસ કરવું આવશ્યક છે. ઇનલાઇન વેબહૂક રિસ્પોન્સમાં variables પણ સામેલ હોઈ શકે છે. સેવ કરેલા-એજન્ટ વેબહૂક રિસ્પોન્સ ફોન અને વિજેટ કૉલ્સ બંનેમાં એજન્ટના ડિપ્લોય કરેલા A/B વિભાજનનો ઉપયોગ કરે છે; વેરિઅન્ટ પસંદગી પછી variables રેન્ડર થાય છે. ઇનબાઉન્ડ ફોન કૉલ્સમાં, કોઈ સોંપાયેલ ઇનબાઉન્ડ એજન્ટ ન હોય એવો નંબર વાપરો અને તેનો ફોન-નંબર અથવા સંસ્થા વેબહૂક કન્ફિગર કરો; વિજેટ keys mode="webhook" વાપરે છે. એન્ડપૉઇન્ટ-સિસ્ટમ ઇનકમિંગ સૂચનાઓ બ્લૉકિંગ કન્ફિગરેશન રિસ્પોન્સ આપતી નથી.

વિજેટ અને Realtime સેશન API

POST /v1/widget/session ટૉપ-લેવલ variables ઑબ્જેક્ટ સ્વીકારે છે. તેની publishable key સેવ કરેલા એજન્ટને પસંદ કરે છે. વેબહૂક-મોડ keys આ મૂલ્યોને કન્ફિગરેશન વેબહૂક પર ફૉર્વર્ડ કરે છે અને ઉપર વર્ણવ્યા મુજબ રિસ્પોન્સને મર્જ કરે છે. બ્રાઉઝર દ્વારા પૂરા પાડવામાં આવેલા વિજેટ/રીઅલટાઇમ variables ક્લાયન્ટ-નિયંત્રિત હોય છે, ઉપર વર્ણવેલા વેલિડેશન અને સ્ટ્રિંગ ક્લીનઅપ પછી web.incomingમાં જેમના તેમ ફૉર્વર્ડ થાય છે, અને completion વેબહૂક્સ તથા કૉલ ઇતિહાસમાં પ્રતિધ્વનિત થાય છે. તેમને વિશ્વસનીય ઓળખ અથવા અધિકૃતતા ડેટા તરીકે ગણશો નહીં.

POST /v1/realtime/sessions agent_id (અથવા ઇનલાઇન config) સાથે variables સ્વીકારે છે. આ સેશન-બનાવતી API ફીલ્ડ્સ છે. Realtime WebSocket બ્રિજ variables વિકલ્પને ફૉર્વર્ડ કરતું નથી; તેને સીધું સેશન-બનાવતી APIમાં આપો. વિજેટ ક્લાયન્ટ્સે પોસ્ટ કરેલા સેશન પેલોડમાં variables સામેલ કરવા આવશ્યક છે; SDK ફૉર્વર્ડિંગ આ API ફેરફારનો ભાગ નથી. Builder માઇક અને સિમ્યુલેટેડ ટેસ્ટ કૉલ્સ ડિફૉલ્ટ્સ અને ખૂટતા પ્લેસહોલ્ડર્સ ઉકેલે છે, પરંતુ તેમાં પ્રતિ-કૉલ variables ઇનપુટ નથી.

કૉલ પછી પરત મળતા મૂલ્યો

GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete, અને web.completeમાં અંતિમ મર્જ થયેલા variables અને unresolved_variables સામેલ હોય છે. data.history ધરાવતા લેગસી completion પેલોડ્સમાં પણ તેઓ સામેલ હોય છે:

{
  "variables": {"name": "Ada", "account_id": "A-17"},
  "unresolved_variables": ["appointment_slot"]
}

પૂર્ણ થયેલા કૉલને તેના સ્રોત રેકૉર્ડ સાથે જોડવા માટે તમારા CRM અથવા ટાસ્ક ઓળખકર્તાને variables ઑબ્જેક્ટમાં સંગ્રહિત કરો. આ ફીલ્ડ્સ કૉલ રેકૉર્ડ સાથે જાળવી રાખવામાં આવે છે; કૉલ ઇતિહાસ અને વેબહૂક્સમાં જાળવી રાખવા યોગ્ય હોય તેવી જ માહિતી મોકલો.

હાલના prompt સાથે સુસંગતતા

રેન્ડરિંગ હાલના સાચવેલા એજન્ટ અને A/B વેરિઅન્ટ prompt, ઇનલાઇન આઉટબાઉન્ડ અને રીઅલટાઇમ કૉન્ફિગરેશન, તેમજ કૉન્ફિગરેશન webhook દ્વારા પરત આવતા prompt પર પણ લાગુ પડે છે. અજાણ્યા {{name}} પ્લેસહોલ્ડર ખાલી લખાણ બની જાય છે, ભલે કોઈ variables આપવામાં ન આવ્યા હોય. રોલઆઉટ પહેલાં હાલના prompt તપાસો, જેમાં બહારથી આપવામાં આવતા ઇનલાઇન/webhook prompt પણ સામેલ છે, જેની ThunderPhone સૂચિ બનાવી શકતું નથી. Builder માઇક અને સિમ્યુલેશન કૉલ પણ એ જ ડિફૉલ્ટ/ખાલી વર્તન લાગુ કરે છે.