[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-en-\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-tools":3},{"id":4,"title":5,"body":6,"category":913,"code_examples":914,"demos":914,"description":915,"extension":916,"meta":917,"navigation":914,"order":918,"path":919,"seo":920,"sitemap":926,"stem":931,"tags":932,"toc":938,"videos":914,"__hash__":939},"docsEn\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-tools.md","Agentic Tools (API) - Check Stock, Shipping, Orders",{"type":7,"value":8,"toc":896},"minimark",[9,14,18,21,26,68,71,75,128,131,135,138,162,223,237,293,323,334,351,357,362,371,392,395,398,470,487,498,502,505,528,531,545,549,559,562,581,588,592,613,617,753,756,773,777,869,873],[10,11,13],"h1",{"id":12},"tools-api","Tools (API)",[15,16,17],"p",{},"A tool lets the agent check data in your own business system. Examples are stock, shipping cost, or order status. The agent calls a tool when a customer needs that information.",[15,19,20],{},"A tool calls one API address in your system. Your system must have an API that opens through HTTPS.",[22,23,25],"h2",{"id":24},"what-you-need","What you need",[27,28,29,42,51,62,65],"ul",{},[30,31,32,33,37,38,41],"li",{},"The ",[34,35,36],"strong",{},"owner"," or ",[34,39,40],{},"admin"," role in the workspace.",[30,43,44,45,50],{},"A saved OpenRouter key. Read ",[46,47,49],"a",{"href":48},"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic","Agentic",".",[30,52,53,54,57,58,61],{},"A ",[34,55,56],{},"Replies"," model with the ",[34,59,60],{},"Supports tools"," label.",[30,63,64],{},"A public HTTPS API address from your system.",[30,66,67],{},"If your API asks for a sign-in: a token, a password, or a key from your system.",[15,69,70],{},"Ask your developer if you do not have an API yet. Ask for the address, the way to authenticate, and an example answer.",[22,72,74],{"id":73},"two-kinds-of-tool","Two kinds of tool",[76,77,78,94],"table",{},[79,80,81],"thead",{},[82,83,84,88,91],"tr",{},[85,86,87],"th",{},"Method",[85,89,90],{},"What it does",[85,92,93],{},"How it runs",[95,96,97,111],"tbody",{},[82,98,99,105,108],{},[100,101,102],"td",{},[34,103,104],{},"GET",[100,106,107],{},"Reads data, for example stock",[100,109,110],{},"Runs on its own when a customer needs information",[82,112,113,118,121],{},[100,114,115],{},[34,116,117],{},"POST",[100,119,120],{},"Changes data, for example creates an order",[100,122,123,124,127],{},"Waits for the team to press ",[34,125,126],{},"Approve"," in the Inbox",[15,129,130],{},"A reply suggestion that your team asks for by hand uses only the tools that read data.",[22,132,134],{"id":133},"example-a-check-stock-tool","Example: a \"Check stock\" tool",[15,136,137],{},"This example makes a tool that checks the stock of one product. Replace the address with the address of your API.",[139,140,141,147,153,159],"ol",{},[30,142,143,144,50],{},"Open ",[34,145,146],{},"Wulan AI → Agent & model",[30,148,149,150,152],{},"Click the ",[34,151,13],{}," tab.",[30,154,155,156,50],{},"Click ",[34,157,158],{},"Add tool",[30,160,161],{},"Fill in these fields.",[76,163,164,174],{},[79,165,166],{},[82,167,168,171],{},[85,169,170],{},"Field",[85,172,173],{},"Value",[95,175,176,189,201,211],{},[82,177,178,183],{},[100,179,180],{},[34,181,182],{},"Tool name",[100,184,185],{},[186,187,188],"code",{},"Check stock",[82,190,191,196],{},[100,192,193],{},[34,194,195],{},"Description for the AI",[100,197,198],{},[186,199,200],{},"Check the stock of one product. Use it when a customer asks if a product is still available.",[82,202,203,207],{},[100,204,205],{},[34,206,87],{},[100,208,209],{},[186,210,104],{},[82,212,213,218],{},[100,214,215],{},[34,216,217],{},"URL",[100,219,220],{},[186,221,222],{},"https:\u002F\u002Fapi.yourshop.com\u002Fstock\u002F{product_code}",[139,224,226],{"start":225},5,[30,227,228,229,232,233,236],{},"Under ",[34,230,231],{},"Parameters",", click ",[34,234,235],{},"Add parameter",", then fill in:",[76,238,239,247],{},[79,240,241],{},[82,242,243,245],{},[85,244,170],{},[85,246,173],{},[95,248,249,259,271,281],{},[82,250,251,254],{},[100,252,253],{},"Name",[100,255,256],{},[186,257,258],{},"product_code",[82,260,261,266],{},[100,262,263],{},[34,264,265],{},"Type",[100,267,268],{},[34,269,270],{},"Text",[82,272,273,278],{},[100,274,275],{},[34,276,277],{},"Required",[100,279,280],{},"Selected",[82,282,283,288],{},[100,284,285],{},[34,286,287],{},"Explanation for the AI",[100,289,290],{},[186,291,292],{},"Product code, for example KS-BLK-M",[139,294,296,302,312,315,320],{"start":295},6,[30,297,228,298,301],{},[34,299,300],{},"Authentication",", choose the kind that your API asks for. See the \"Authentication\" section below.",[30,303,228,304,307,308,311],{},[34,305,306],{},"Parts of the answer for the AI",", write ",[186,309,310],{},"data.name, data.stock",". The agent receives only those two parts.",[30,313,314],{},"Test the tool. See the next section.",[30,316,155,317,50],{},[34,318,319],{},"Save",[30,321,322],{},"Turn on the switch of the tool in the list.",[15,324,325,330],{},[326,327],"img",{"alt":328,"src":329},"Tools tab with the custom tool list","\u002Fimages\u002Fdocs\u002Fagentic-alat.webp",[326,331],{"alt":332,"src":333},"New tool form for a Cek stok tool","\u002Fimages\u002Fdocs\u002Fagentic-alat-drawer.webp",[15,335,336,337,340,341,344,345,347,348,350],{},"Write ",[186,338,339],{},"{product_code}"," in the URL for the part that the agent fills in. Each ",[186,342,343],{},"{name}"," in the URL must have a parameter with the same name. A ",[186,346,343],{}," part can be in the path or in the query. The domain name is fixed and cannot contain a ",[186,349,343],{}," part.",[15,352,353,354,356],{},"For example, a customer asks \"Is the black shirt in M still available?\". The agent fills in ",[186,355,258],{},", calls the address, and answers from the result.",[358,359,361],"h3",{"id":360},"write-a-clear-description","Write a clear description",[15,363,364,365,367,368,370],{},"The agent reads the ",[34,366,195],{}," to decide when to use the tool. Write when to use the tool and what data it returns. In each parameter, fill in the ",[34,369,287],{}," with an example value.",[15,372,373,374,376,377,380,381,384,385,388,389,50],{},"A parameter can be ",[34,375,270],{},", ",[34,378,379],{},"Number",", or ",[34,382,383],{},"Yes\u002FNo",". Fill in ",[34,386,387],{},"Fixed choices"," when the value must come from a list, for example ",[186,390,391],{},"regular, express",[22,393,300],{"id":394},"authentication",[15,396,397],{},"Authentication is the way your system checks that Konektor is the caller.",[76,399,400,413],{},[79,401,402],{},[82,403,404,407,410],{},[85,405,406],{},"Choice",[85,408,409],{},"Meaning",[85,411,412],{},"Use it when",[95,414,415,428,441,457],{},[82,416,417,422,425],{},[100,418,419],{},[34,420,421],{},"None",[100,423,424],{},"No sign-in",[100,426,427],{},"Your API is open to the public",[82,429,430,435,438],{},[100,431,432],{},[34,433,434],{},"Bearer token",[100,436,437],{},"One long secret code from your system",[100,439,440],{},"Your API gives a \"token\" or an \"API key\"",[82,442,443,448,454],{},[100,444,445],{},[34,446,447],{},"Header",[100,449,450,451],{},"A secret code sent under a given name, for example ",[186,452,453],{},"X-API-Key",[100,455,456],{},"The API documentation names a header",[82,458,459,464,467],{},[100,460,461],{},[34,462,463],{},"Basic",[100,465,466],{},"A username and a password",[100,468,469],{},"Your API asks for a username and a password",[15,471,472,473,376,476,380,479,482,483,486],{},"Fill in ",[34,474,475],{},"Token",[34,477,478],{},"Header value",[34,480,481],{},"Username"," and ",[34,484,485],{},"Password"," for your choice. Konektor stores the value encrypted and does not show it again. The page shows only the last 4 characters. To change the value, enter the new value in the field.",[15,488,489,490,493,494,497],{},"If your API needs other headers, open ",[34,491,492],{},"Extra headers"," and click ",[34,495,496],{},"Add header",". Konektor sends these headers with every request.",[22,499,501],{"id":500},"test-the-tool","Test the tool",[15,503,504],{},"Test the tool before you save it.",[139,506,507,520,525],{},[30,508,509,510,512,513,516,517,50],{},"In ",[34,511,501],{},", fill in the ",[34,514,515],{},"Sample value"," for each parameter, for example ",[186,518,519],{},"KS-BLK-M",[30,521,155,522,50],{},[34,523,524],{},"Run test",[30,526,527],{},"Read the result.",[15,529,530],{},"The test sends one real request to your system. It does not count as agent use.",[15,532,533,534,376,537,540,541,544],{},"A correct result shows ",[34,535,536],{},"Passed",[34,538,539],{},"Status 200",", the duration, and ",[34,542,543],{},"Start of the answer",". Check that the start of the answer has the data that you need.",[22,546,548],{"id":547},"post-tools-and-approval","POST tools and approval",[15,550,551,552,554,555,558],{},"A tool with the ",[34,553,117],{}," method changes data in your system. For this reason a POST tool has the ",[34,556,557],{},"Needs approval"," mark.",[15,560,561],{},"When auto-reply is on and the agent wants to use a POST tool:",[139,563,564,567,570,578],{},[30,565,566],{},"The agent stops and sends a wait message to the customer.",[30,568,569],{},"The Inbox shows the card \"Wulan wants to run {tool name}\".",[30,571,572,573,37,575,50],{},"A team member reads the details, then presses ",[34,574,126],{},[34,576,577],{},"Reject",[30,579,580],{},"The agent continues and replies to the customer.",[15,582,583,584,50],{},"An action that nobody decides within 30 minutes expires. Read ",[46,585,587],{"href":586},"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-handover#approval-in-the-inbox","Hand over to team and Approvals",[22,589,591],{"id":590},"result","Result",[27,593,594,604,607],{},[30,595,596,597,600,601,603],{},"The tool shows in the list with the ",[34,598,599],{},"Read"," mark (GET) or the ",[34,602,557],{}," mark (POST).",[30,605,606],{},"The count \"{number} of 10 tools\" shows above the list.",[30,608,609,610,152],{},"Each use of a tool is recorded in the ",[34,611,612],{},"Activity",[22,614,616],{"id":615},"common-problems","Common problems",[76,618,619,629],{},[79,620,621],{},[82,622,623,626],{},[85,624,625],{},"Message",[85,627,628],{},"Cause and fix",[95,630,631,642,653,665,673,681,691,699,707,718,729,737,745],{},[82,632,633,636],{},[100,634,635],{},"Fill in every required parameter.",[100,637,638,639,641],{},"Fill in the ",[34,640,515],{}," for all parameters.",[82,643,644,647],{},[100,645,646],{},"A value does not match its type.",[100,648,649,650,652],{},"A value for a ",[34,651,379],{}," parameter must be a number.",[82,654,655,658],{},[100,656,657],{},"This address cannot be used. Use a public HTTPS address of your own system.",[100,659,660,661,664],{},"Use a public ",[186,662,663],{},"https:\u002F\u002F"," address with a domain name of your own system.",[82,666,667,670],{},[100,668,669],{},"No answer within 10 seconds.",[100,671,672],{},"Your system is too slow. Ask your developer to make the API faster.",[82,674,675,678],{},[100,676,677],{},"Could not connect to this address.",[100,679,680],{},"Check the address and make sure your system is running.",[82,682,683,686],{},[100,684,685],{},"The answer is too large.",[100,687,472,688,690],{},[34,689,306],{}," so the agent receives only the parts it needs.",[82,692,693,696],{},[100,694,695],{},"This address redirects too many times.",[100,697,698],{},"Use the final address of the API, not an address that moves.",[82,700,701,704],{},[100,702,703],{},"Your system answered with status {status}.",[100,705,706],{},"Your system refused the request. Status 401 or 403 usually means a wrong token. Status 404 means a wrong address.",[82,708,709,712],{},[100,710,711],{},"The domain name cannot contain a part the agent fills in.",[100,713,714,715,717],{},"Move ",[186,716,343],{}," to the path or the query of the URL.",[82,719,720,723],{},[100,721,722],{},"A part of the URL is not a parameter yet.",[100,724,725,726,728],{},"Add a parameter with the same name as the ",[186,727,343],{}," in the URL.",[82,730,731,734],{},[100,732,733],{},"This header name cannot be used.",[100,735,736],{},"Choose another header name.",[82,738,739,742],{},[100,740,741],{},"Enter the token or password for this kind of authentication.",[100,743,744],{},"Fill in the authentication value.",[82,746,747,750],{},[100,748,749],{},"The limit of 10 tools is reached.",[100,751,752],{},"Delete a tool that you do not use.",[15,754,755],{},"The agent does not use your tool? Check these three items:",[139,757,758,761,768],{},[30,759,760],{},"The switch of the tool is on.",[30,762,32,763,765,766,61],{},[34,764,56],{}," model has the ",[34,767,60],{},[30,769,32,770,772],{},[34,771,195],{}," says when to use the tool.",[22,774,776],{"id":775},"limits","Limits",[76,778,779,788],{},[79,780,781],{},[82,782,783,786],{},[85,784,785],{},"Limit",[85,787,173],{},[95,789,790,798,806,814,821,829,837,845,853,861],{},[82,791,792,795],{},[100,793,794],{},"Tools in a workspace",[100,796,797],{},"10",[82,799,800,803],{},[100,801,802],{},"Parameters in a tool",[100,804,805],{},"8",[82,807,808,811],{},[100,809,810],{},"Extra headers in a tool",[100,812,813],{},"5",[82,815,816,818],{},[100,817,306],{},[100,819,820],{},"20",[82,822,823,826],{},[100,824,825],{},"Characters in the description for the AI",[100,827,828],{},"500",[82,830,831,834],{},[100,832,833],{},"Wait time for the answer of your system",[100,835,836],{},"10 seconds",[82,838,839,842],{},[100,840,841],{},"Size of the answer of your system",[100,843,844],{},"64 KB",[82,846,847,850],{},[100,848,849],{},"Content of the answer that the agent receives",[100,851,852],{},"4,000 characters",[82,854,855,858],{},[100,856,857],{},"Tool calls each hour for the whole workspace",[100,859,860],{},"300",[82,862,863,866],{},[100,864,865],{},"Agent steps for each reply",[100,867,868],{},"4",[22,870,872],{"id":871},"see-also","See also",[27,874,875,879,885,890],{},[30,876,877],{},[46,878,49],{"href":48},[30,880,881],{},[46,882,884],{"href":883},"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-mcp","MCP",[30,886,887],{},[46,888,587],{"href":889},"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-handover",[30,891,892],{},[46,893,895],{"href":894},"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-knowledge","Knowledge",{"title":897,"searchDepth":898,"depth":898,"links":899},"",2,[900,901,902,906,907,908,909,910,911,912],{"id":24,"depth":898,"text":25},{"id":73,"depth":898,"text":74},{"id":133,"depth":898,"text":134,"children":903},[904],{"id":360,"depth":905,"text":361},3,{"id":394,"depth":898,"text":300},{"id":500,"depth":898,"text":501},{"id":547,"depth":898,"text":548},{"id":590,"depth":898,"text":591},{"id":615,"depth":898,"text":616},{"id":775,"depth":898,"text":776},{"id":871,"depth":898,"text":872},"whatsapp",null,"Connect your system through an API so the agent can check stock, shipping, or order status. Create a tool, test it, then turn it on. POST tools need approval.","md",{},6.2,"\u002Fen\u002Fdocs\u002Fwhatsapp\u002Fagentic-tools",{"keywords":921,"canonical":919,"title":5,"description":915},[922,923,924,925],"agentic api tools","ai check stock whatsapp","ai check order status","connect api to ai agent",{"loc":919,"images":927,"lastmod":930},[928,929],{"loc":329},{"loc":333},"2026-10-02","en\u002Fdocs\u002Fwhatsapp\u002Fagentic-tools",[933,934,935,936,937],"agentic","tools","api","check stock","approval",true,"-kTOBCtxwD40ZjYyDD7CjTHAS_cpYpq9YokEskZMRb0"]