ThunderPhone 2.0 ఇప్పుడు అందుబాటులో ఉంది.సెల్ఫ్-సర్వ్, నిమిషానికి నుంచి.ప్రకటనను చదవండి

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తో కూడా పనిచేస్తుంది. వేర్వేరు వేరియబుల్స్‌తో ఒకే ఐడెంపోటెన్సీ కీని మళ్లీ ఉపయోగించలేరు.

క్యాంపెయిన్ CSV

ఫోన్-కాని CSV కాలమ్‌లు ఇప్పటికే కాంటాక్ట్ వేరియబుల్స్‌గా నిల్వ చేయబడతాయి. ప్రతి డయల్ వాటిని ఇప్పుడు స్వయంచాలకంగా ఉపయోగిస్తుంది. మీ ప్లేస్‌హోల్డర్‌లకు సరిపోల్చడానికి name, account_id, మరియు appointment_slot వంటి హెడ్డర్‌లను ఉపయోగించండి. ఇప్పటికే ఉన్న పేరు మ్యాపింగ్ మొదటి మరియు చివరి పేరు కాలమ్‌లను name వేరియబుల్‌లో కలపగలదు.

డైనమిక్ కాన్ఫిగరేషన్ వెబ్‌హుక్

బ్లాకింగ్ కాన్ఫిగరేషన్ వెబ్‌హుక్ మార్గంలో, మీ సంస్థలోని సేవ్ చేసిన ఏజెంట్‌తో పాటు ప్రతి-కాల్ విలువలను తిరిగి పంపండి:

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

రెస్పాన్స్ కీలు రిక్వెస్ట్-స్థాయి వేరియబుల్స్‌ను ఓవర్‌రైట్ చేస్తాయి, అయితే ఇతర రిక్వెస్ట్ కీలు అలాగే ఉంటాయి. null రెస్పాన్స్ విలువ ప్లేస్‌హోల్డర్ డిఫాల్ట్‌ను ఎంచుకుంటుంది. విలీనం చేసిన ఆబ్జెక్ట్ కూడా 32 KBలో సరిపోవాలి. సేవ్ చేసిన ఏజెంట్ రెస్పాన్స్‌లు కేవలం agent_id మరియు variablesను మాత్రమే అంగీకరిస్తాయి; prompt లేదా సెట్టింగ్‌లను మార్చాల్సి వచ్చినప్పుడు ఇన్‌లైన్ కాన్ఫిగరేషన్‌ను తిరిగి పంపండి. prompt కలిగిన రెస్పాన్స్ ఎల్లప్పుడూ ఇన్‌లైన్ కాన్ఫిగరేషన్‌ను ఉపయోగిస్తుంది: ఆ రెస్పాన్స్‌లోని ఏ agent_id అయినా విస్మరించబడుతుంది, అందులో null లేదా పూర్ణాంకం-కాని మెటాడేటా ఉన్నా సరే. ఇన్‌లైన్ prompt ఇప్పటికీ సాధారణ వాలిడేషన్‌ను దాటాలి. ఇన్‌లైన్ వెబ్‌హుక్ రెస్పాన్స్‌లలో variables కూడా ఉండవచ్చు. సేవ్ చేసిన ఏజెంట్ వెబ్‌హుక్ రెస్పాన్స్‌లు ఫోన్ మరియు విజెట్ కాల్‌లు రెండింటిలోనూ ఏజెంట్ డిప్లాయ్ చేసిన A/B విభజనను ఉపయోగిస్తాయి; వేరియంట్ ఎంపిక తర్వాత వేరియబుల్స్ రెండర్ అవుతాయి. ఇన్‌బౌండ్ ఫోన్ కాల్‌లలో, కేటాయించిన ఇన్‌బౌండ్ ఏజెంట్ లేని నంబర్‌ను ఉపయోగించి, దాని ఫోన్-నంబర్ లేదా సంస్థ వెబ్‌హుక్‌ను కాన్ఫిగర్ చేయండి; విజెట్ కీలు mode="webhook"ను ఉపయోగిస్తాయి. ఎండ్‌పాయింట్-సిస్టమ్ ఇన్‌కమింగ్ నోటిఫికేషన్‌లు బ్లాకింగ్ కాన్ఫిగరేషన్ రెస్పాన్స్‌లను అందించవు.

విజెట్ మరియు రియల్‌టైమ్ సెషన్ APIలు

POST /v1/widget/session అగ్ర-స్థాయి variables ఆబ్జెక్ట్‌ను అంగీకరిస్తుంది. దాని ప్రచురించదగిన కీ సేవ్ చేసిన ఏజెంట్‌ను ఎంచుకుంటుంది. వెబ్‌హుక్-మోడ్ కీలు ఈ విలువలను కాన్ఫిగరేషన్ వెబ్‌హుక్‌కు ఫార్వర్డ్ చేసి, పైన వివరించినట్లుగా రెస్పాన్స్‌ను విలీనం చేస్తాయి. బ్రౌజర్ అందించే విజెట్/రియల్‌టైమ్ variables క్లయింట్-నియంత్రితమైనవి, పైన వివరించిన వాలిడేషన్ మరియు స్ట్రింగ్ క్లీనప్ తర్వాత web.incomingలో యథాతథంగా ఫార్వర్డ్ చేయబడతాయి, అలాగే కంప్లీషన్ వెబ్‌హుక్‌లు మరియు కాల్ హిస్టరీలో ప్రతిధ్వనిస్తాయి. వాటిని విశ్వసనీయ గుర్తింపు లేదా అధీకరణ డేటాగా పరిగణించవద్దు.

POST /v1/realtime/sessions, agent_idతో పాటు (లేదా ఇన్‌లైన్ configతో) variablesను అంగీకరిస్తుంది. ఇవి సెషన్-క్రియేట్ API ఫీల్డ్‌లు. రియల్‌టైమ్ WebSocket బ్రిడ్జ్ వేరియబుల్స్ ఎంపికను ఫార్వర్డ్ చేయదు; దానిని నేరుగా సెషన్-క్రియేట్ APIకి అందించండి. విజెట్ క్లయింట్లు పోస్ట్ చేసే సెషన్ పేలోడ్‌లో variablesను చేర్చాలి; SDK ఫార్వర్డింగ్ ఈ API మార్పులో భాగం కాదు. బిల్డర్ మైక్ మరియు సిమ్యులేటెడ్ టెస్ట్ కాల్‌లు డిఫాల్ట్‌లు మరియు లేని ప్లేస్‌హోల్డర్‌లను పరిష్కరిస్తాయి, కానీ ప్రతి-కాల్ వేరియబుల్స్ ఇన్‌పుట్ ఉండదు.

కాల్ తర్వాత తిరిగి వచ్చే విలువలు

GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete, మరియు web.completeలో చివరి విలీనం చేసిన variables మరియు unresolved_variables ఉంటాయి. data.historyను కలిగి ఉండే లెగసీ కంప్లీషన్ పేలోడ్‌లలో కూడా ఇవి ఉంటాయి:

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

పూర్తయిన కాల్‌ను దాని మూల రికార్డ్‌తో మళ్లీ అనుసంధానించడానికి మీ CRM లేదా టాస్క్ ఐడెంటిఫైయర్‌ను వేరియబుల్స్ ఆబ్జెక్ట్‌లో నిల్వ చేయండి. ఈ ఫీల్డ్‌లు కాల్ రికార్డ్‌తో నిల్వ చేయబడతాయి; కాల్ హిస్టరీ మరియు వెబ్‌హుక్‌లలో నిల్వ చేయడానికి తగిన సమాచారాన్ని మాత్రమే పంపండి.

ఇప్పటికే ఉన్న ప్రాంప్ట్ అనుకూలత

రెండరింగ్ ఇప్పటికే సేవ్ చేసిన ఏజెంట్ మరియు A/B వేరియంట్ ప్రాంప్ట్‌లకు, ఇన్‌లైన్ అవుట్‌బౌండ్ మరియు రియల్‌టైమ్ కాన్ఫిగరేషన్‌లకు, అలాగే కాన్ఫిగరేషన్ వెబ్‌హుక్‌ల ద్వారా తిరిగి వచ్చే ప్రాంప్ట్‌లకు కూడా వర్తిస్తుంది. variables అందించనప్పటికీ, గుర్తించని {{name}} ప్లేస్‌హోల్డర్‌లు ఖాళీ టెక్స్ట్‌గా మారుతాయి. ThunderPhone జాబితా చేయలేని బాహ్యంగా అందించబడిన ఇన్‌లైన్/వెబ్‌హుక్ ప్రాంప్ట్‌లతో సహా, అమలు చేయడానికి ముందు ఇప్పటికే ఉన్న ప్రాంప్ట్‌లను తనిఖీ చేయండి. బిల్డర్ మైక్ మరియు సిమ్యులేషన్ కాల్‌లు కూడా అదే డిఫాల్ట్/ఖాళీ ప్రవర్తనను వర్తింపజేస్తాయి.