Rich Messaging

Cards

Rich media messaging using cards for more engaging customer interactions.


The Melrose Labs Cards service enables the creation, hosting, communication and management of cards with visual and audio content, and actions. Cards are used by businesses and other organisations to communicate effectively with staff, customers or anyone.

Create a card using a card template and then include the resulting Cards service short URL for your card when you distribute via email, text, chat or QR code. The Cards service hosts your created card for access using an application or viewing directly on a user's mobile device, tablet or computer. Cards supports Adaptive Cards and other card technologies.

Events relating to cards, such as opening and CTA use, can be notified to your application using the service API and webhooks, or viewed in the analytics portal.

The Melrose Labs Cards service is free of charge to use.

Creating a Card

A card is the combination of a card template and the data, or information, that will fill the template fields. To create a card, you select the template and specify the data for the fields in the template.

Cards can be created using the Cards REST API or by clicking on the "create card" button for a card template. Alternatively, the easy to use upcoming card designer will allow you to drag-and-drop your content into a card template or even create your own templates.

Example: If you want to create a card for a property that is being let, you could use the Property Letting template (#10) from the available card templates. This template has fields for the property name, image URL, property summary, details webpage and booking URL. When creating a card using this template, you would provide what you want to have in each of these fields. The Cards service would then return a short URL (e.g. https://richmsg.io/sg4 ) for the created card that will then be hosted by the service, and you can distribute this short URL in a text message via an SMS gateway, or as you require.

Dynamic Cards

Instead of providing the static data to populate a card template at the time of card creation, you can provide a data URL for the data that will fill the card. Whenever the card is accessed using the short URL, the Cards service will retrieve the data from the data URL provided when the card was created.

Use cards to convey rich content such as tickets, alerts, reminders, promotions, vouchers, receipts, confirmations and tasks to your customers and staff.

Card Templates

The following card templates can be used when creating your own Cards using the API or portal. Cards supports Adaptive Cards and other card technologies.

Card Search
Template ID
10
[10.1]
Property Letting v1

Property lettings card used to promote a property.

The property letting card can be used to notify customers of properties that are being let. These could be for holiday lets. Use the action buttons to go to a website with more details and booking page. < less
more >
propertyname
Property name

Name of the property being let.

urlimage
Image URL

URL of the image to be displayed on the card. Image should be under 2MB.

propertysummary
Property summary

A brief description of the property.

urldetails
Details URL

URL of web page with more details on the property.

urlbooknow
Booking URL

URL of web page where property can be booked.

{
    "propertyname": "Santorini Escape",
    "urlimage": "https://richmsg.io/media/images/seaview-apartments.png",
    "propertysummary": "A luxurious two-bedroom apartment with the best views over Santorini.",
    "urldetails": "https://melroselabs.com/services/rich-messaging/",
    "urlbooknow": "https://melroselabs.com/services/rich-messaging/"
}
Template ID
11
[11.1]
Property for Sale v1

Property for sale card.

Use this card to advertise a property for sale to a potentially interested buyer. This card could be sent as a result of the potential buyer having registered interest in houses located in certain areas that meet specific criteria. < less
more >
status
Property status

Status of the property sale (e.g. FOR SALE).

propertyname
Property name

Name of the property being sold.

urlimage
Image URL

URL of image of the property.

price
Sale price

Sale price of property

propertysummary
Property summary

A brief description of the property.

propertydescription
Property description

A long description of the property.

urldetails
Details URL

URL of web page with more details on the property.

urlarrangeviewing
Booking URL

URL of web page where property viewing can be arranged.

{
    "status": "FOR SALE",
    "urlimage": "https://richmsg.io/media/images/propertyforsale.jpeg",
    "urlarrangeviewing": "https://abc.com",
    "urldetails": "https://abc.com",
    "propertyname": "Caldergrove Gardens, EH11",
    "price": "\u00a3292,000",
    "propertysummary": "3 bedrooms. New development.",
    "propertydescription": "Caldergrove Gardens is an innovative and stylish development of 55, 3, 4 & 5 bedroom detached homes, offering seven contemporary house styles. Show home open Thursday - Monday."
}
Template ID
12
[12.1]
Promotion v1

Promotion for use in retail by consumer.

Use the promotion card template to send promotions to customers that have signed-up to receive them from your organisation. Send a link to the card in an SMS text message, or other messaging channels, for customers to click on the link and display the card showing your promotion. When sending the link in an SMS text message, it is essential to ensure that the text accompanying the link is engaging and encourages customers to click on the link. < less
more >
urllogo
Logo URL

URL of the logo to be displayed on the card. Image should be under 2MB.

promotitle
Promotion title

Title of the promotion.

subtitle
Subtitle

Subtitle of the promotion.

urlimage
Image URL

URL of the image to be displayed on the card. Image should be under 2MB.

details
Details of promotion

A brief description of the promotion.

actiontext
Action text

Text on button that user clicks to order, book or find out more.

urlaction
Action URL

URL of web page where user can order, book or find out more.

additionaltext
Additional text

Any additional details regarding the promotion.

{
    "urllogo": "https://richmsg.io/media/images/pizza-logo.png",
    "promotitle": "Pizza Tuesday",
    "subtitle": "Buy one and get one free!",
    "urlimage": "https://richmsg.io/media/images/pizza.jpeg",
    "details": "When you order one large pizza on Tuesdays, we will give you another large pizza of your choice for free. Terms and conditions apply.",
    "actiontext": "Order Now",
    "urlaction": "https://abc.com",
    "additionaltext": "Terms and Conditions Apply"
}
Template ID
13
[13.1]
Ticket v1

Ticket card for an event.

event
Event name

Name of the event for the ticket.

subtitle
Subtitle

Subtitle of the event for the ticket.

urlimage
Image URL

URL of the image to be displayed on the ticket.

datetime
Event date and time

Date and time of the event.

venue
Venue

Where the event is taking place.

seat
Seat

Seat allocated to this ticket.

instructions
Instructions

Instructions associated with ticket and event.

{
    "event": "Strictly Dancing",
    "subtitle": "Christmas Tour",
    "urlimage": "https://melroselabs.com/phpqrcode/qrimg.php?qr=abc",
    "datetime": "23 Jan 2020, 7pm",
    "venue": "Dome, Glasgow, G1 1AB",
    "instructions": "Arrive 30 minutes prior to the performance for security checks.",
    "seat": "Q32",
    "urlaction": "https://abc.com"
}
Template ID
14
[14.1]
Coupon v1

Coupon card for use in retail with consumers.

Use this card template to create cards to give customers a coupon that can be used for discounts or other benefits. The coupon will generate a QR code from the coupon number. < less
more >
logo
Logo URL

URL of the logo image to be displayed on the coupon.

coupontitle
Coupon title

Title to show on the coupon.

subtitle
Subtitle

Subtitle of the coupon.

couponnumber
Coupon number

Text showing coupon number. Can contain letters and numbers.

validuntildatetime
Validity date and time

Date and time the the coupon is valid until.

validlocations
Valid locations

Locations at which the coupon is valid.

details
Details

Details on the use of this coupon for the holder of the coupon.

{
    "logo": "https://richmsg.io/media/images/sf-logo.png",
    "coupontitle": "Sainsfield Coupon",
    "subtitle": "Use this coupon to receive 5% discount on your next shop!",
    "couponnumber": "9823782738213",
    "validuntildatetime": "23 Jan 2020, 7pm",
    "validlocations": "All UK stores",
    "details": "Show this coupon when you go to the checkout to receive your discount."
}
Template ID
15
[15.1]
Restaurant booking v1

Card template to encourage customers to make reservations.

Use this card template to create cards to send to customers to encourage them to make a reservation in one of the upcoming available time slots. Will also keep a restaurant in the mind of the customer to increase recall and likelihood of booking at a later date, even when they are not looking to book one of the timeslots. < less
more >
topImage
Image URL

URL of the image to be displayed.

restaurantName
Restaurant name

Name of restaurant.

ratingValue
Rating value

Average rating from reviewers

reviewCount
Review count

Number of reviews

message
Message

Message to show encouraging patron to book.

timeWhenAvailability
When available title

Title showing when times are available (e.g. "Tonight's availability")

timeSlotA
Timeslot A

Time for slot (e.g. "5:00")

timeSlotB
Timeslot B

Time for slot (e.g. "5:00")

timeSlotC
Timeslot C

Time for slot (e.g. "5:00")

timeSlotD
Timeslot D

Time for slot (e.g. "5:00")

timeSlotE
Timeslot E

Time for slot (e.g. "5:00")

timeSlotF
Timeslot F

Time for slot (e.g. "5:00")

urlActionA
Action A URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionB
Action B URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionC
Action C URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionD
Action D URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionE
Action E URL

Website link (URL) that user is taken to when they click on the button for this time slot.

urlActionF
Action F URL

Website link (URL) that user is taken to when they click on the button for this time slot.

{
    "restaurantName": "Benedicts restaurant",
    "topImage": "https://richmsg.io/media/images/restaurant-burger-meal.jpg",
    "ratingValue": 4.5,
    "reviewCount": 319,
    "message": "We're open tonight and all burger meals have 10% discount. Book a table before they go!",
    "timeWhenAvailability": "Tonight's availability",
    "timeSlotA": "5:30",
    "urlActionA": "https://abc.com/A",
    "timeSlotB": "7:30",
    "urlActionB": "https://abc.com/B",
    "timeSlotC": "8:00",
    "urlActionC": "https://abc.com/C",
    "timeSlotD": "8.30",
    "urlActionD": "https://abc.com/D",
    "timeSlotE": "9:00",
    "urlActionE": "https://abc.com/E",
    "timeSlotF": "other",
    "urlActionF": "https://abc.com/F"
}

Don't see what you need - then ask for it!

Don't see something you need, then make a feature request.

Using the API

Create a card using the Rich Messaging Cards service with the RESTful Rich Messaging API
Example using cURL, Node.js, Python, PHP

Create a card using a template and get URL of new card.

Request:

curl --location --request POST https://api.melroselabs.com/richmessaging/card/ \
	--header 'x-api-key: [API_KEY]' --header 'Content-Type: application/json' \
	--data-raw '{"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""}'

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Request:

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.melroselabs.com/richmessaging/card/',
  'headers': {
    'x-api-key': '[API_KEY]',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""})
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body); // response is of type application/json
});

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Request:

import requests
import json

url = "https://api.melroselabs.com/richmessaging/card/"
payload = {
	{"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""}
}
headers = {
  'x-api-key': '[API_KEY]',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data = json.dumps(payload))

# response is of type application/json
print(response.text.encode('utf8'))

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Request:

<?php 
$data = {"templateref":"10","data":{"propertyname":"Santorini Escape","urlimage":"https://richmsg.io/media/images/seaview-apartments.png","propertysummary":"A luxurious two-bedroom apartment with the best views over Santorini.","urldetails":"https://melroselabs.com/services/rich-messaging/","urlbooknow":"https://melroselabs.com/services/rich-messaging/"},"userref":"","callback":"","expires":""}

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.melroselabs.com/richmessaging/card/",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    "x-api-key: [API_KEY]",
    "Content-Type: application/json"
  )
));

$response = curl_exec($curl);

curl_close($curl);

echo $response; // response is of type application/json
?>

Response:

{ "messageID": "lpB", "shortURL": "https://richmsg.io/lpB" }

Get your API Key now and start using the Cards service

SIGN-UP | LOGIN TO GET API KEY

The Cards service is part of the Rich Messaging service from Melrose Labs.

The Melrose Labs Cards service is available using the following REST API:

Service snapshot

  • Rich media: images, audio, video and text
  • Calls to actions for voice calls, text, forms, website links
  • Integration with customer systems (e.g. booking or ordering system)
  • Message state and tracking
  • Editor for message creation
  • SMS replacement - upgrade your mobile messaging

Find out more...

Please provide your name.
Please provide a valid company name.
Please type your message.
Please provide a valid email address.