### Answer
Great questions! Here's what I can share:
1. Sharing Custom Functions Across Agents
Based on the available sources, there isn't a built-in feature to share or copy custom functions between existing agents directly. Custom functions are configured per-agent in the dashboard by adding them in the tools section. [(1) ](
) You would need to recreate the function configuration (name, description, endpoint URL, headers, parameters, etc.) on each agent individually.
However, since custom functions call your external endpoint, you can point multiple agents to the same backend URL—so the actual logic is reusable on your server side.
2. Programmatic Agent Creation
Yes, you can create agents programmatically via the Retell API. The platform supports programmatic agent creation to build, test, and deploy agents into production using the API. [(2) ](
) This allows you to ensure consistent settings across all agents you spin up for clients.
3. Organizing Agents for Multiple Clients
You have two main options:
- **Folders**: You can organize demo and production agents using folders within a workspace.
- **Workspaces**: The Workspace feature allows you to create different organizations for your clients. From a community perspective, using separate workspaces is recommended for organizing different companies because it makes organizing everything easier, billing is simpler, and there's no additional cost. [(3) ](
)
For agencies managing multiple clients, separate workspaces per client is generally the preferred approach. [(2) ](
) [(3) ](
)