Introduction
how to create a specific campaign for group on vicidial is a common admin task for call-center engineers and administrators. This guide walks you through every step — from user groups and ingroups to campaign settings and list overrides — so your campaign will route correctly and agents only handle the intended group.
Who this is for: VoIP engineers, call center admins, and technical users managing VICIdial.
Quick disclaimer: This guide is purely technical configuration guidance. It is not legal, financial, or medical advice. Always test changes in a staging environment before production deployment.
Prerequisites checklist
- Admin account (admin level ≥ 8).
- Server access for uploads and optional SQL changes.
- Phone(s) and SIP/IAx configuration ready for agents.
- CSV lead lists prepared (with unique lead IDs) for upload.
- A backup or snapshot of your VICIdial database/config.
- A test agent login and at least one test DID (for inbound tests).
Key VICIdial concepts (brief)
- Campaign: Main object that groups dialing behavior, lists, scripts, and agent permissions.
- Ingroup: An inbound queue. Calls routed into an ingroup can be handled by agents configured to service that ingroup.
- User Group: Logical grouping for organizational separation (permissions, limits, call quotas).
- List: A CSV dataset of leads tied to a campaign. Lists can have overrides (status group override, ingroup override).
Overview: Two ways to handle group-specific routing
- Separate campaign per group (recommended for strict separation): Create an independent campaign for each group. Assign only that group's users, lists, and ingroups.
- One campaign + multiple lists with overrides (recommended for scale): Use a single "umbrella" campaign and rely on list overrides (ingroup override, status group override) to direct calls to the correct ingroup and agents.
Step-by-step: Create the user group and users
- Login to VICIdial admin with an admin account.
- Go to Admin → User Groups → Add A New User Group. Provide a short name and descriptive comments. Save. (How to Copy a Campaign in Vicidial)
- Go to Admin → Users. Create users (agents) and set user_level appropriate for agents (0–1 for agents, higher for supervisors). Link each user to the new user group.
- Create or confirm Inbound Permissions and allowed campaigns for each user in the user's settings.
Step-by-step: Create ingroup (inbound group) for the campaign
- Admin → Ingroups → Add A New InGroup.
- Set InGroup ID (e.g., sales_north_ingroup), queue priority, music on hold, max queue size.
- Linked campaign(s): add the campaign (can add later).
- Save and note ID. Route DID to this ingroup via Admin → DID → Route DID to IN_GROUP.
Create the campaign (UI steps)
- Admin → Campaigns → Add A New Campaign.
- Campaign ID short unique (e.g., CAMP_SALES_NORTH), Campaign Name, set Active=Y.
- Configure Dial Statuses, Campaign Statuses, Dial Method (MANUAL/PREDICTIVE/RATIO/BLENDED).
- Set Auto Dial Level (start low for testing).
- Save the campaign.
Assign the user group and users to the campaign
- Admin → Campaigns → Modify your campaign → User Group or Agents.
- Add the user_group or individual users that will serve this campaign.
Assign lists and configure list overrides
Option A — Dedicated list per group
- Admin → Lists → Add A New List. Set list_id, list_name, default status_group.
- Upload CSV leads to the list (Admin → Load Leads).
- Assign list to campaign (Campaign → Lists → Add).
Option B — Shared list + list overrides
- Use drop inbound group override or status group override to control routing.
UPDATE vicidial_lists SET campaign_id='CAMP_SALES_NORTH' WHERE list_id IN (101,102);
Configure campaign routing & dial options for group behavior
- Dial Method: PREDICTIVE / RATIO / MANUAL / BLENDED.
- Auto Dial Level: Start low when testing.
- Drop Seconds / Drop Inbound Group Override: Control dropped inbound calls.
- Agent Pause Codes and Wrapup: Ensure correct pause codes.
- Campaign Time Zone / Call Time Restrictions: Configure call_time_id.
- Recording / Monitoring Options: Set recording and live_monitor policies.
Mapping DID and Inbound routing to a group-specific campaign
- Admin → DIDs → Add/Modify DID. Point DID route to IN_GROUP and select the ingroup created earlier.
- Confirm Asterisk dialplan routes are loading. Test by dialing the DID. (How to Install Asterisk in VICIdial)
Testing checklist (do not skip)
- Agent login test — confirm agent sees only assigned campaign.
- Outbound call test — place test leads and verify dispositions/recordings.
- Inbound call test — dial test DID and confirm call lands in correct ingroup and agent.
- Blended test — if BLENDED, confirm inbound/outbound priorities.
- Overflow and queue test — ensure queue timeouts correct.
- Reporting test — run reports and confirm calls map to expected campaign/ingroup.
Common pitfalls and how to fix them
- Agents receiving calls from other campaigns: Check campaign user assignments and user_group memberships.
- Inbound calls not ringing agents: Check DID routing, ingroup configuration, agent campaign membership.
- Wrong dispositions/statuses in reports: Verify list status group overrides and campaign statuses.
- High drop rates after changing dial method: Rollback to previous dial levels, reduce auto dial level.
Advanced: shared campaigns, API, and automation
- Shared campaign dialing: Use list-level ingroup overrides and status overrides.
- API automation: VICIdial has APIs to automate campaign creation, list uploads, and user assignments.
- Automation example: scripted CSV upload → list create → assign list to campaign → set list overrides.
-- Assign list 101 to campaign
UPDATE vicidial_lists SET campaign_id='CAMP_SALES_NORTH' WHERE list_id=101;
-- Add a user to campaign
INSERT INTO vicidial_campaign_agents (campaign_id, user, user_level) VALUES ('CAMP_SALES_NORTH','agent123',0);
-- Set list status group override
UPDATE vicidial_lists SET status_group='SG_SALES_NORTH' WHERE list_id=101;
FAQs
1: Can I run multiple groups inside the same campaign?
Yes. Use lists with ingroup or status group overrides to route leads to different ingroups or status sets.
2: Should I use BLENDED or separate inbound/outbound campaigns?
Use BLENDED only if agents need to handle both inbound and outbound calls. For strict separation, separate campaigns are simpler to manage.
Q3: How do I reduce drop rate after increasing Auto Dial Level?
Lower the Auto Dial Level, increase agent count, or reduce lead pacing. Monitor drop metric.
Q4: Can I automate campaign creation?
Yes — via API or scripted SQL operations. Test every script in staging before production.
Q5: How do I audit which agents handled which group?
Use vicidial_log and vicidial_agent_log reports filtered by campaign_id, user, or ingroup.
Q6: My campaign shows wrong statuses in reports — why?
Check list status group overrides and campaign status configuration. Mismatched status groups scatter dispositions.
Q7: Is there an official VICIdial manual?
The community maintains documentation and the "VICIdial for Dummies" PDF is a practical starting point.
Q8: How do I keep agents from accessing PII?
Limit permissions, use access controls on recordings, and consider redaction/masking tools where required by law.
Conclusion
Implementing a group-specific campaign in VICIdial is primarily a configuration exercise, but its success depends on careful planning, testing, and operational discipline. Choose the model that fits your operations: many small campaigns for strict separation, or a single umbrella campaign with list overrides for scale. Document changes, test thoroughly, and monitor KPIs after go-live.
DialerGiants