Hi Muhammed
All four scenarios should be possible but unfortunately none of them come from the outbound campaign configuration itself. There's no "send SMS on retry" or "send SMS on wrap-up" setting in campaign management. Everything below is built on two primitives:
- Agentless SMS API (POST /api/v2/conversations/messages/agentless) imported as a Data Action - reusable from both Architect workflows and Agent Scripts.
- Triggers → Architect Workflows (Admin > Orchestration > Triggers), which come in Event Based and Scheduled flavours.
Once those two are in place, each of your requirements is a matter of choosing the right event and filter.
1. Two hours before campaign start
Two options depending on how fixed your start time is.
If the start time is fixed, use a Scheduled Trigger with a cron expression set two hours ahead of the campaign schedule, invoking a workflow that sends the messages. Just be aware a scheduled trigger can only fire twice per hour - it's a kickoff mechanism, not a pump.
If you want proper volume handling, I'd actually recommend a separate SMS (messaging) campaign against the same contact list, with its own campaign schedule set two hours earlier. You get DNC checking, message templates with contact-column substitution, and real campaign reporting for free, rather than rebuilding all of that in a workflow.
2. Between retries (No Answer / Busy)
No native hook for this, so use an Event Trigger on:
v2.detail.events.conversation.{id}.customer.end
with matchCriteria on direction = OUTBOUND, mediaType = VOICE, and your disconnect/analysis outcome. Use delayBySeconds on the trigger to land the SMS in the gap before the next attempt. This is the same pattern Genesys documents for the "missed outbound call" use case. -
Have a look at this link as it provides valuable info - https://developer.genesys.cloud/platform/process-automation/trigger-examples/missed-outbound-call
One thing to watch: this fires on every failed attempt. If you only want one SMS per contact per campaign run, your workflow needs to check and set a flag - either a contact list column updated via a Data Action, or an external contact attribute.
3. When the call is answered
If it's an agent-based campaign, the simplest and most reliable option is an Agent Script button (or an auto-run action on script load) calling the same SMS Data Action. The agent keeps control and there's no trigger latency.
For a fully automated version, use the same customer.end trigger filtered on interactingDurationMs above a threshold. If you're running agentless, Call Analysis Response Management can route a Live Voice result into a flow that sends the SMS.
4. Wrap-up code, including the default
Event Trigger on v2.detail.events.conversation.{id}.wrapup (or .acw), with matchCriteria on the wrap-up code ID, targeting a workflow that branches to different message templates per code. The queue's default wrap-up code appears in the event body exactly like any other code, so it's matchable the same way.
Hope this helps.
Regards
------------------------------
Stephan Taljaard
EMBEDIT s.r.o
------------------------------