|
| 1 | +--- |
| 2 | +title: Routing plan IDs |
| 3 | +description: How we get routing plan IDs into SPI |
| 4 | +date: 2025-03-24 |
| 5 | +tags: |
| 6 | + - service |
| 7 | + - routing plans |
| 8 | + - communication channels |
| 9 | + - user research |
| 10 | + - reference data |
| 11 | +--- |
| 12 | + |
| 13 | +SPI works with other services to provide a wider end-to-end service. SPI is used to select which people should be contacted, but it connects with [NHS Notify](https://digital.nhs.uk/services/nhs-notify) to actually send messages to those people. |
| 14 | + |
| 15 | +One of the powerful features of SPI is that as well as allowing users to select which people to contact based on various criteria, it also allows users to select which message to send and in what format. For example, we might wish to send under 16s a message addressed to "Parent or guardian", and over 16s a message addressed directly to the person themself. Or we might want to send a translated version of a message if we know the recipient has a different language preference. |
| 16 | + |
| 17 | +The way that the message content and communication channels are controlled is via "Routing plans" which are set up in NHS Notify. |
| 18 | + |
| 19 | +A routing plan might say: |
| 20 | + |
| 21 | +- Try **SMS** using **contentTemplateA-SMS** |
| 22 | +- If SMS fails, try sending an **email** using **contentTemplateA-email** |
| 23 | +- If email fails, send a **letter** using **contentTemplateA-letter** |
| 24 | + |
| 25 | +For complicated campaigns with lots of different content variations (e.g. accessible formats, translations etc.), this can mean a large number of routing plans are required. As an example for the Spring 2025 Covid campaign there will be around 54 routing plans. |
| 26 | + |
| 27 | +SPI is where users create the rules which determine which routing plans to use for which people, e.g.: |
| 28 | + |
| 29 | +- If person is <16, use **routing plan A** |
| 30 | +- If person has a language preference = DE, use **routing plan B** |
| 31 | +- etc. |
| 32 | + |
| 33 | +## Current process |
| 34 | +SPI is designed around a campaign > iteration parent child relationship e.g. |
| 35 | + |
| 36 | +- Campaign = Spring Covid 2025 |
| 37 | + - Iteration 1: **G1 Invites 5 - 74 Non London 5 - 79 In London** |
| 38 | + - Iteration 2: **G2 Invites 75 - 79 Non London & 80+ London** |
| 39 | + - Iteration 3: **G3 Invites 80+ Non London** |
| 40 | + - etc. |
| 41 | + |
| 42 | +- Campaign = RSV |
| 43 | + - Iteration 1: **G1 Invitation for ALL Adults 75-79 Nationally** |
| 44 | + - Iteration 2: **G1 Invitation for ALL Adults 75-79 Proof of Concept** |
| 45 | + - etc. |
| 46 | + |
| 47 | +The current process is that users liaise with NHS Notify to get the appropriate routing plans set up, when they are ready Notify send back the routing plan IDs which is how we reference which plan to use. |
| 48 | + |
| 49 | +A routing plan ID is currently (they may change in the future) made up of a unique number and a string which describes what it does, they look something like this: `VACCS0088_covid202409_CHILD_EMAIL_V1` |
| 50 | + |
| 51 | +Because routing plans combine content with communication channels, they are unique to a vaccination campaign i.e. we'd never use a Covid routing plan in an MMR invitation campaign. |
| 52 | + |
| 53 | +Therefore when a user is setting up an iteration (our current name for the configuration which defines a group of invitations - we're aware it might not be the most intuitive term and plan to research this further), we don't want them to be able to pick a routing plan which isn't applicable to the campaign they're working on. |
| 54 | + |
| 55 | +## Ideal solution |
| 56 | +The ideal solution would be that SPI knows which routing plans are available and which campaigns they relate to, and therefore will only display applicable options in the UI. We would love to have integration with NHS Notify and bring back routing plan IDs via an API for example. At the moment this isn't possible, and Notify have their own roadmap working towards a more self-service approach to routing plans and content templates so in time SPI will have to evolve to integrate with NHS Notify as it itself evolves. |
| 57 | + |
| 58 | +## Pragmatic interim solution |
| 59 | +We're not yet able to have a fully integrated solution with NHS Notify, indeed we don't yet know exactly how their service will evolve and how we could integrate in the future. Therefore we designed a pragmatic solution which works for the here and now, and which we can iterate over time. |
| 60 | + |
| 61 | +NHS Notify currently send the users a spreadsheet with the routing plan IDs for a campaign. Often this is sent quite close to the campaign go live date, so baking the routing plan IDs into the SPI user interface isn't straightforward (it would require a release and there might not be time for the associated processes such as testing and clinical assurance): |
| 62 | + |
| 63 | + |
| 64 | + |
| 65 | +We came up with a design which allows the users to copy the whole column and paste it into SPI, at campaign level: |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | +This then makes the routing plans available for selection (via dropdowns) later in the process when they are creating routing rules within an iteration in that campaign: |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | +This approach has a number of benefits over adding routing plan IDs manually at a rule level: |
| 76 | + |
| 77 | +- It ensures that only Covid routing plans are available in Covid campaigns and only MMR routing plans are available in MMR campaigns etc. |
| 78 | +- It reduces the need for manually retyping or copying and pasting – the routing plan IDs are added once and then available for use thereafter |
| 79 | + |
| 80 | +## User feedback |
| 81 | +When we tested this design with users it was very well received: |
| 82 | +- Users were happy to add the routing plan IDs to the campaign so they could then select them from dropdowns when setting up rules |
| 83 | +- They were delighted that they could copy and paste the whole column of routing IDs in 1 operation (there can be a lot of routing plans per campaign), this was considered to be a real value add |
| 84 | + - "It's brilliant" |
| 85 | + - "Its really really useful" |
| 86 | + |
0 commit comments