In-store messaging
Business Requirements
- Agent should have the capability to proactively reach out to the customer;
- After response, the customer should be routed back to the Agent, which sent a proactive message;
- Channel:
- SMS Messaging with In Store employees;
- Customer should be opt-in to SMS messages from LP;
- Entry points:
- Proactive Messaging Proactive API;
- Good2Have:
- The solution should be the part of Conversation Cloud platform;
- Consent Management;
Option #1 - Account per Banner
Main Principles
- Entry point is each account separately
- Main account stays for VJC-s;
- New LP account per banner for Agents (9 banners)
- Phone number per LP account;
- Skill per Banner (4K stores, 9 Banners)
- Agent group per physical store;
- Multiple Agents per skill;
- 3 – 5 agents per agent group;
- Each Agent has a unique ID(email);
- Agent Manger per agent group OR agents with visibility to their agent group only;
- Agent unavailability fallback is handled by OOtB agent fallback functionality on skill level;
- Each banner-ed LP account has rollover configured to the main account, to have the ability to fall back the whole store to VJC on the main account. Ex. of cases:
- Store is closed;
- All Agents are offline more than X mins/hours;
- All Agents are busy longer than X mins/hours;
Main Diagram

Cons
- Reporting for Agents will be per banner;
- More complex setup;
- Each banner (account ID) will require a separate channel configuration
- Will require a dedicated phone number per banner.
Option #2 - Account per Banner - Chosen Option
Main Differences from Option #1
- Single entry point for all conversations on the main account;
- Skill per banner on the main account;
- Skill per banner on rollover accounts;
- Each banner skill on the main account is configured to be rolled over to the banner account ID;
- Conversation is rolled over to the banner account;
Main Diagram
- the target is to split user agents equally, around 6000-7000 per account
- Should be 1-3 banners per account (total of 9 banners)
- Customer's entry point - SMS

- 420 message/minute per Bot
- AC Feature to be reviewed: Houston → Account Info → Max Concurrent Operators.
Configuration:
- Configuring 1 LP account per 1–3 banners, proposed configuration
- Configuring 1 SMS phone number per banner;
- On the Owner (main) account, configuring 1 skill per banner;
- On the Owner account, tying each phone number to the relevant banner skill
- On each sub-account, configuring 1 skill per banner;
- Connecting Owner account and each sub-account by creating a mapping between banner skill on the Owner account and banner skill on the relevant sub-account;
- Creating 1 skill per banner on each sub-account (2-3 skills per sub-account, depending on the number of banners configured on sub-account);
- Creating X number of LP users in each sub-account;
- Creating Agent Group per store per banner in each sub-account;
- Grouping Agent Groups, assigning Agent Managers;
- Assigning each Agent to the single banner skill;
Routing flow:
- Customers start conversation either organically or as a deflection from a Proactive campaign;
- NOTE: Theoretical max of proactive messages is about 1.5-1.6M per day;
- NOTE: Expected number of proactive messages is about 800k-1M per day;
- By the initial routing config, each phone number is tied to the banner skill, so the conversation is initially routed to the relevant banner skill on the Owner account.
- NOTE: Deflection rate is expected to be around 6%, so the expected number of conversations created is ~200K (these numbers do not include existing traffic).
- By rollover mapping, LP identifies which sub-account needs to be connected to the conversation: the banner skill on the Owner account is connected to the banner skill on the sub-account.
- Routing Bot flow:
- Joins the conversation;
- Identifies destination Agent by keyword by invoking Signet API;
- Retrieves other Agents, including manager, from the store/Agent Group of destination SJC from CCS mapping table;
- Checks availability (ONLINE/AWAY/OFFLINE) of all Agents in the store/Agent Group;
- If destination Agent is available
- Route conversation to the desired Agent;
- If destination Agent is not available from the same store/Agent Group:
- Sends the conversation to the Agent with the lowest load in the Agent Group, with fallback to the manager. Or it could be a transfer to the manager directly, which will do the re-routing manually if needed;
Agent → Agent Group + Agent Manager Caching flow:
- Create No-Event FaaS function with the following functionality:
- Pull the list of all agents on the account from Users API;
- Create Agent ID → Agent Group ID + Agent Manager mapping;
- Store mapping in CCS, use banner as a session ID;
- Create a scheduled job, assign FaaS function from the step above, configure timing to run job once per 30–60 minutes (maybe more frequent);
APIs to be used:
- Key Messaging Metrics API - Agent View (agent availability);
- Context Service API (caching);
- Users API (mapping, provisioning);
- Skills API (provisioning);
- Agent Groups API (provisioning);
- Proactive API (outreaching);
Note:
- avg number of messages in the conversation = 18 with avg conv duration = 90 mins
MVP Scope:
- Provision of 2 LP accounts for replication of the Main account + sub account (LP GPT);
- On the replication of the main account to create:
- Skill for MVP;
- Mock user for MVP skill;
- Set up web messaging (create camp & eng-t);
- Agent SSO - can be postponed to the later stages of configuration;
- Create a human agent skill per MVP tier;
- Create a bot skill per MVP;
- Copy the bot logic from the main account and deploy on the subaccount, configure bot user, setup agent connector;
- Create rollover mapping in the Answering Service (replica of the Main Account) for bot skill(LP);
- MVP skill from the Main Account to pint to MVP bot skill on the subaccount;
- Create routing fallback logic and timing;
- Setup fallback timing per each human skill to some significant value, like 100 days ;

- the target is to split user agents equally, around 6000-7000 per account
- Should be 1-3 banners per account (total of 9 banners)
- Customer's entry point - SMS
- Create users for store supervisors, assign agent manager profile, agent group;
- Configure Agent → Agent Group + Agent Manager Caching, as described above;
- Make sure FaaS functions are up-to-date with the current use case;
General Scope:
- Provision 3 LP accounts (LP) ;
- Agent SSO;
- Create a skill per banner on correspondent account;
- Create a bot skill per banner on each sub-account;
- Duplicate the bots across the subaccounts, configure bot users, setup agent connectors ;
- Possibly to have a dedicated bot per LoB or MVP tier
- Create rollover mapping in the Answering Service per each banner skill per subaccount (LP);
- Create a human skill per banner on each subaccount;
- Setup fallback timing per each human skill to some significant value, like 100 days;
- Create agent groups for store;
- Create agent profile with limited visibility to the conversations, handled by other agent groups ;
- Create users for Agents, assign agent group, skill, agent profile ;
- Create users for store supervisors, assign agent manager profile, agent group;
- Configure Agent → Agent Group + Agent Manager Caching, as described above;
- Modify Routing Bot logic to add agent availability check and fallback routing;
Option #3 - Single Account - NOT chosen due to # of concurrent agent online
Main Principles
- SJC-s(20k agents) and VJC-s(100–200 agents) are on the main account;
- Single skill per store (4k skills) OR skill per Banner
- Agent group per store;
- Each SJC has a unique ID(email);
- Agent Manger per agent group OR agents with visibility to their agent group only;
- Bot/FaaS handles agent unavailability;
- Integration with Signet services(Clientelling App, SalesForce, etc.) to retrieve agent fallback information (fallback SJC, manager);
Diagram

Cons
- 20000 agents:
- Unmanageable;
- LP UMS may have issue with >4k agents online simultaneously;
- 4000 skills:
- Unmanageable;
- Requires 3rd-party integration with Signet Clientelling App or Signet SF Instance - additional dependency;
- Additional API lookups during routing (Agent Group by Agent).
Routing Flow
Fallback Routing Flows
Option #1 - Skill Level
The fallback routing is defined on the skill level. Sequence of the fallbacks:
- Desired SJC on the banner account;
- Other SJCs/dedicated SJC from the same skill;
- VJC skill per banner on the main account;
- Other VJC;
Option #2 - Agent Group + Skill Level - chosen option
The fallback routing is defined on the skill level. Sequence of the fallbacks:
- Desired SJC on the banner account;
- Store Manager - Agent group manager
Option #3 - Signet CRM
The fallback routing is defined based on the information taken from Signet CRM(SalesfForce, Clientelling App). CRM contains information about replacement for each SJC, along with the information about store manager.
- Desired SJC on the banner account
- Secondary SJC, defined in CRM record of primary SJC;
- Store manager, defined in CRM record of primary SJC
Q&A
- What is the max number of customers can be notified during a single proactive campaign?
A store Jewelry Consultant is limited to 10 SMS outreach per batch, with a limit of 100 per day. Signet has 16,000 store Jewelry Consultant employees on the payroll, and we are in peak.
If every Jewelry Consultant sent their maximum allowed SMS, we could have 1,600,000 customers being notified. This number is not realistic but is a theoretical maximum. A more realistic number could be 800,000.
- What is the expected response rate on proactive campaign?
From our marketing partners regarding email response/click through rate: avg CTR for daily email sends is around 1%, for triggered campaigns around 3%.
Based on this, and since we are expecting much higher response rates than email, we project 6% for proactive SMS.
- What is the approx. number of concurrent proactive campaigns can be sent by SJC-s from different banners?
The key part of your question is around different banners. We know of a platform limitation, whereby the customer is only able to have one conversation via SMS with Signet as a whole and therefore may not have concurrent conversations with different banners.
For our part we will provide operational guidance and controls to help mitigate. Therefore, proactive campaigns to a particular customer may not be concurrent.
- What would be the forecast for the approx. number of agent messages and customer messages within a single conversation?
For last month [November], Average Messages sent to Agent by Customer was 6.53 and additional 1.17 in average was sent by Customer to the SMS bot to get started probably. Looking at 7.70 messages by customer on average last month. On average 9.92 messages were sent by Agent. Total = 17.63
One caveat is that these numbers reflect current Virtual Jewelry Consultant conversations which is a slightly different use case. When a customer is chatting with something they are more familiar with like their personal Jewelry Consultant, these numbers could likely be higher.
- What would be the forecast for the approx. conversation duration? Are there any plans to have auto-close for the idle conversations?
Average duration for the conversation is 1:30:19. (1 hour 30 minutes and 19 seconds). I believe conversation does have an idle time limit of 3 days (it might be 2 days, not sure), but that is not necessary for the calculations.
One caveat is that these numbers reflect current Virtual Jewelry Consultant conversations which is a slightly different use case. When a customer is chatting with something they are more familiar with like their personal Jewelry Consultant, these numbers could likely be higher.
- Do you have any cplans to expand this experience to other customer channels after launch?
No, not at this time. Are there other channels that allow for proactive outreach (besides SMS & Whatsapp)?
Existing Pilot - Everything on 1 account, 300 agents, 60 stores
Their agents are talking with customers on the phone
They would like to manage communication with customers through digital channel for tracking purposes
New approach -
Routing to specific agent → custom fallback agent manager of the agent group → skill
Signet storing mapping of agent → agentId
- 4K stores in the US
- 20K in store agents
- 12K agents online concurrently
LP Scoping Questions
- Please provide the flow diagram and implementation details of how you are going to integrate with Proactive API from the Clienteling app? a. I believe you've already partially responded to this question, by saying that (please confirm/adjust):
- Proactive outreach request will be grouped into the batches;
- SF sends these batches each 5-10 minutes;
From Client - SF has a ‘queue trigger’ fire upon record insertion which
will create a batch of up to 100 messages to be sent if X times elapsed, otherwise it will wait till X time has elapsed and process the next batch. It will do so until there are no records in queue. I want to say its 15 or 30 seconds, I will have to check.
It would split them into 100 each (based on brand / skill), and send them one after the other waiting X seconds in between each request to prevent any throttling. The X is configurable and the only requirement was to have them send as quick as possible. After connecting with SF, it looks like the X is set to 1 second currently, meaning once the triggered is fired, every second it would ensure any marked in queue (up to 100) are sent and would stop once there aren’t anymore.

- Is there an expectation, that JE sends a proactive outreach to multiple recipients at a time?
Yes. A Jewelry Consultant could outreach to a maximum of a 100 customer from their My Book per day and also only 10 customers at a time/per batch. This is a limit set by the business and is not a technical limitation.
How are the proactive campaigns going to be spread along the day?
Jewelry Consultants can outreach via SMS during the designed allowed hours according to SMS regulations (11am-8pm for the JC's timezone). They may be sent any time in that range and spread out in the day until or unless their limit has been reached for that day.
Are they going to be sent at a specific time or during a specific timeframe, for example each day from 10AM to 12PM?
Answered in the previous response.
Are they going to be sent a completely random time?
They will be sent shortly after the Jewelry Consultant initiates the SMS outreach. The exact timing will be based on the queue processing mechanism as described above.
- What is the expectation from the customer behavior for this 6% CTR? Is there an expectation from the customers to provide an immediate response ASAP? Or it depends on the campaigns and can vary?
The 6% CTR is an estimate based on our email clickthrough rate. We simply doubled our email once, since we know that SMS has a higher CTR than email. 6% may be very conservative actually. There is no expectation on the customer part. They could provide a response immediately or not.
- How does the rollout plan look like? NOTE from Daniel: this solution will be rolled out to only 3 banners: KAY, KAY OUTLET and JARED. Are we expecting to have a sort of phases, where:
- Phase 1: launching with the smallest banner only (KAY OUTLET);
- Phase 2: deploying JARED to the same subaccount;
- Phase 3: deploying KAY to the separate subaccount;
There are no phases for rollout at this time. Separately, after further internal discussions - lets keep all banners as in scope (Kay, Kay Outlet, Jared, Zales, Zales Outlet, Banter, Peoples).