Tools Reference

Built-in tools for common commerce operations in your agents.

Overview

The Actions SDK includes a comprehensive set of tools for product management, pricing, customer data, orders, and notifications. These tools integrate with your configured data sources and external services.

typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import {
// Product tools
getProduct,
searchProducts,
checkInventory,
recommendSimilar,
recommendComplementary,
// Pricing tools
calculateDynamicPrice,
getCompetitorPrice,
applyDiscount,
validatePricing,
// Customer tools
getCustomerContext,
getOrderHistory,
updateLoyaltyTier,
getCustomerPreferences,
// Order tools
createOrder,
updateOrderStatus,
processRefund,
cancelOrder,
// Notification tools
sendEmail,
sendSMS,
postToSlack,
sendWebhook,
} from '@hyperfold/actions-sdk';
All tools are async and return promises. They handle caching, retries, and error handling automatically.

Product Tools

Tools for accessing and searching the product catalog:

typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Get product by ID
const product = await getProduct('prod_aero_x2');
console.log(product);
// {
// product_id: 'prod_aero_x2',
// name: 'AeroRun X2 Marathon Shoe',
// description: 'Professional marathon shoe...',
// pricing: {
// list_price: 180.00,
// cost: 72.00,
// currency: 'USD',
// min_margin: 0.15,
// },
// inventory: {
// quantity: 847,
// status: 'in_stock',
// },
// semantics: {
// category: 'footwear/running',
// usage_context: ['marathon', 'road_running'],
// visual_tags: ['blue', 'lightweight'],
// },
// attributes: {
// brand: 'AeroRun',
// sizes: ['7', '8', '9', '10', '11', '12'],
// colors: ['blue', 'black', 'white'],
// },
// }
// Semantic product search
const results = await searchProducts('waterproof running shoes', {
limit: 10,
filters: {
price_max: 200,
in_stock: true,
},
});
console.log(results);
// {
// results: [...],
// total_count: 15,
// semantic_confidence: 0.92,
// }
// Check inventory
const inventory = await checkInventory('prod_aero_x2');
console.log(inventory);
// {
// product_id: 'prod_aero_x2',
// quantity: 847,
// status: 'in_stock',
// warehouses: [
// { id: 'warehouse_west', quantity: 500 },
// { id: 'warehouse_east', quantity: 347 },
// ],
// }
// Get similar products (vector-based)
const similar = await recommendSimilar('prod_aero_x2', { limit: 5 });
// Get complementary products (co-purchase data)
const complementary = await recommendComplementary('prod_aero_x2', { limit: 3 });

Product Tool Reference

ToolDescription
getProduct(id)Get product by ID with full details
searchProducts(query, options)Semantic product search with filters
checkInventory(productId)Get real-time inventory levels
recommendSimilar(productId)Vector-based similar products
recommendComplementary(productId)Co-purchase based recommendations

Pricing Tools

Tools for dynamic pricing and margin management:

typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// Calculate dynamic price with context
const pricing = await calculateDynamicPrice(product, {
customerTier: 'gold',
quantity: 2,
competitorPrice: 165.00,
inventoryLevel: 'high',
});
console.log(pricing);
// {
// list_price: 180.00,
// suggested: 162.00,
// floor: 84.71,
// target: 170.00,
// discounts: [
// { type: 'tier', percent: 0.10, reason: 'Gold member discount' },
// ],
// margin: 0.45,
// explanation: 'Gold member discount of 10% applied.',
// }
// Get competitor price (cached)
const competitorPrice = await getCompetitorPrice('prod_aero_x2');
console.log(competitorPrice);
// {
// product_id: 'prod_aero_x2',
// competitor_prices: [
// { competitor: 'competitor_a', price: 175.00, url: '...' },
// { competitor: 'competitor_b', price: 169.00, url: '...' },
// ],
// lowest: 169.00,
// average: 172.00,
// updated_at: '2025-12-19T10:00:00Z',
// }
// Apply discount with validation
const discounted = await applyDiscount(product, {
type: 'percentage',
value: 15,
reason: 'Holiday sale',
validateMargin: true, // Ensures margin floor is respected
});
// Validate pricing decision
const validation = await validatePricing({
product_id: 'prod_aero_x2',
proposed_price: 145.00,
context: { customerTier: 'gold' },
});
console.log(validation);
// {
// valid: true,
// margin: 0.50,
// warnings: [],
// }
Always use validatePricing before accepting prices that differ significantly from the calculated suggestion.

Customer Tools

Tools for accessing customer data and preferences:

typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Get customer context
const customer = await getCustomerContext('cust_xyz123');
console.log(customer);
// {
// customer_id: 'cust_xyz123',
// email: 'john@example.com',
// loyalty_tier: 'gold',
// lifetime_value: 2450.00,
// order_count: 12,
// average_order_value: 204.17,
// first_order_date: '2024-03-15',
// last_order_date: '2025-12-01',
// preferences: {
// preferred_categories: ['running', 'hiking'],
// size_preferences: { shoes: '10', shirts: 'L' },
// },
// }
// Get order history
const history = await getOrderHistory('cust_xyz123', {
limit: 10,
status: 'completed',
});
console.log(history);
// {
// orders: [
// { order_id: 'order_789', total: 245.00, date: '2025-12-01', items: [...] },
// { order_id: 'order_456', total: 189.00, date: '2025-11-15', items: [...] },
// ],
// total_count: 12,
// }
// Update loyalty tier
await updateLoyaltyTier('cust_xyz123', 'platinum', {
reason: 'Lifetime value exceeded $5000',
});
// Get customer preferences
const preferences = await getCustomerPreferences('cust_xyz123');
console.log(preferences);
// {
// preferred_categories: ['running', 'hiking'],
// price_sensitivity: 'medium',
// brand_affinities: ['AeroRun', 'TrailMaster'],
// communication_preferences: {
// email: true,
// sms: false,
// push: true,
// },
// }

Order Tools

Tools for order management and fulfillment:

typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Create order
const order = await createOrder({
customer_id: 'cust_xyz123',
items: [
{ product_id: 'prod_aero_x2', quantity: 1, price: 162.00 },
],
shipping_address: {
name: 'John Doe',
line1: '123 Main St',
city: 'San Francisco',
state: 'CA',
postal_code: '94102',
country: 'US',
},
payment: {
method: 'stripe_spt',
token: 'spt_live_abc123',
},
metadata: {
agent_id: 'sales-bot-01',
session_id: 'sess_abc123',
},
});
console.log(order);
// {
// order_id: 'order_new123',
// confirmation_number: 'HF-12345',
// status: 'confirmed',
// items: [...],
// subtotal: 162.00,
// shipping: 0.00,
// tax: 13.37,
// total: 175.37,
// created_at: '2025-12-19T14:30:00Z',
// }
// Update order status
await updateOrderStatus('order_new123', 'shipped', {
tracking_number: '1Z999AA10123456784',
carrier: 'UPS',
estimated_delivery: '2025-12-24',
});
// Process refund
const refund = await processRefund('order_new123', {
amount: 175.37, // Full refund
reason: 'customer_request',
restock_items: true,
});
console.log(refund);
// {
// refund_id: 'ref_abc123',
// order_id: 'order_new123',
// amount: 175.37,
// status: 'succeeded',
// }
// Cancel order
await cancelOrder('order_new123', {
reason: 'customer_request',
notify_customer: true,
restock_items: true,
});

Notification Tools

Tools for sending notifications across channels:

typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Send email
await sendEmail({
to: 'john@example.com',
subject: 'Your order has shipped!',
template: 'order-shipped',
data: {
order_id: 'order_new123',
tracking_number: '1Z999AA10123456784',
estimated_delivery: '2025-12-24',
},
});
// Send SMS
await sendSMS({
to: '+14155551234',
message: 'Your order #HF-12345 has shipped! Track at: https://...',
});
// Post to Slack
await postToSlack({
channel: '#sales-alerts',
message: 'New high-value order: $500+ from Gold member',
blocks: [
{
type: 'section',
text: {
type: 'mrkdwn',
text: '*New High-Value Order*\nCustomer: John Doe\nTotal: $523.00',
},
},
],
});
// Send webhook
await sendWebhook({
url: 'https://api.partner.com/orders',
method: 'POST',
headers: {
'X-API-Key': process.env.PARTNER_API_KEY,
},
body: {
order_id: 'order_new123',
status: 'created',
total: 175.37,
},
retries: 3,
retryDelay: 1000,
});
Build your first agent with the Your First Agent guide.