DeckCue

The DeckCue action controls a compatible presentation provider using HTTP or OSC.

Use it to:

  • Start a presentation
  • Start from the first slide
  • Stop a presentation
  • Move to the next or previous slide
  • Jump to a slide number
  • Jump to a named slide

The action runs in the background and is available on iPhone, iPad, and Mac.

Warning: DeckCue commands are sent immediately. A phrase can start, stop, or change a live presentation without additional confirmation.

Requirements

You will need:

  • Action Phrase Core or higher
  • A compatible DeckCue presentation provider
  • HTTP or OSC control enabled in the provider
  • Network access between the Action Phrase device and the provider
  • A presentation loaded and ready
  • A Pair ID and Secret if HTTP authentication is required

The DeckCue action controls the presentation provider. It does not open, load, or select a presentation automatically.

Add the action

  1. Create or edit a phrase in Action Phrase.
  2. Add an action.
  3. Select DeckCue.
  4. Choose HTTP or OSC as the protocol.
  5. Enter the host and port of the DeckCue provider.
  6. Configure HTTP authentication if required.
  7. Select a command.
  8. Enter a slide number or name when required.
  9. Save the phrase.

Choosing a protocol

DeckCue supports HTTP and OSC.

Protocol Default port Transport Authentication Best suited for
HTTP 8090 HTTP POST Optional Pair ID and Secret Reliable commands where the provider returns an HTTP status
OSC 48000 OSC over UDP None Low-latency control on a trusted local network

The protocol must match the receiver enabled in the DeckCue provider.

HTTP configuration

Select HTTP to send presentation commands as HTTP POST requests.

Setting Description
Host The IP address, hostname, or complete base URL of the DeckCue provider.
Port The DeckCue HTTP port. The default is 8090.
Use HTTP Authentication Signs requests using DeckCue’s Pair ID and Secret authentication.
Pair ID The pairing identifier supplied by the DeckCue provider.
Secret The Base64URL-encoded secret supplied by the provider.

Example host values include:

192.168.1.50
presentation-mac.local

If Action Phrase and the DeckCue provider run on the same Mac, you can use:

localhost

Do not use localhost from an iPhone, iPad, or another Mac. On those devices, localhost refers to the device itself.

HTTP and HTTPS

When the Host contains no protocol, Action Phrase uses HTTP:

192.168.1.50

This produces requests such as:

http://192.168.1.50:8090/show/next

To use HTTPS, include https:// in the Host:

https://presentation.example.com

If the URL does not contain a port, Action Phrase adds the configured HTTP port.

You can also include the port directly:

https://presentation.example.com:8443

In that case, the port in the URL takes precedence.

The HTTPS certificate must be trusted by the device running Action Phrase.

Base paths

A Host may include a base path:

https://presentation.example.com/deckcue

Action Phrase appends the selected command route to that path:

https://presentation.example.com:8090/deckcue/show/next

Make sure the configured port and base path match the provider.

HTTP authentication

Enable Use HTTP Authentication if the DeckCue provider requires signed requests.

Enter the Pair ID and Secret supplied by the provider. Action Phrase signs each request automatically using:

  • The HTTP method
  • The request path
  • A hash of the request body
  • The current timestamp
  • A unique nonce
  • The shared secret

The following headers are generated automatically:

X-DeckCue-Pair-ID
X-DeckCue-Timestamp
X-DeckCue-Nonce
X-DeckCue-Signature

Do not manually generate these values.

Security: HTTP authentication verifies the request but does not encrypt the network traffic. Use HTTPS if commands travel over an untrusted network.

Pair ID

The Pair ID identifies the Action Phrase installation or pairing record to the provider.

Copy it exactly as supplied, including capitalization, underscores, or prefixes.

Secret

The Secret is the shared signing key.

Copy it exactly as supplied by the provider. It must contain valid Base64URL-encoded data.

If the Secret is missing or invalid, Action Phrase does not send the request.

Security: Treat the Secret like a password. Do not include it in screenshots, shared configuration files, or public documentation.

Device time

Authenticated requests contain a Unix timestamp. If the clocks on the Action Phrase device and provider differ significantly, the provider may reject the request.

Keep automatic date and time enabled on both devices.

OSC configuration

Select OSC to send DeckCue commands over UDP.

Setting Description
Host The IP address or hostname of the DeckCue OSC receiver.
Port The OSC listening port. The default is 48000.

Enter the host without http:// or https://.

For example:

192.168.1.50

OSC messages are sent over UDP. The provider does not return an acknowledgement to Action Phrase.

Security: OSC commands are not authenticated or encrypted. Use OSC only on a trusted network.

Commands

Command Additional parameter Description
Start Presentation None Starts the presentation using its current or default starting position.
Start from First Slide None Starts the presentation explicitly from the beginning.
Stop Presentation None Stops the active presentation.
Next Slide None Advances to the next slide.
Previous Slide None Returns to the previous slide.
Go to Slide Number Slide Number Jumps to a numbered slide.
Go to Named Slide Slide Name Jumps to a slide identified by name.

Start Presentation

Start Presentation sends a start command without requesting that the provider return to the beginning.

HTTP request:

POST /start

OSC message:

/start

No OSC argument is included.

The exact starting behavior depends on the presentation provider. It may start from the current slide or use the provider’s default presentation behavior.

Start from First Slide

Start from First Slide uses the same /start route but includes a value indicating that the presentation should begin from the first slide.

HTTP request:

POST /start

HTTP body:

{
  "fromBeginning": true
}

OSC message:

/start

OSC argument:

1

The OSC argument is sent as an integer.

Stop Presentation

HTTP request:

POST /stop

OSC message:

/stop

No body or OSC argument is included.

Next Slide

HTTP request:

POST /show/next

OSC message:

/show/next

No body or OSC argument is included.

Previous Slide

HTTP request:

POST /show/previous

OSC message:

/show/previous

No body or OSC argument is included.

Go to Slide Number

Enter a positive number in Slide Number.

Valid examples include:

1
12

Slide numbers must be 1 or greater. If the value is empty, zero, negative, or not a whole number, Action Phrase does not send the command.

HTTP request:

POST /goto/slide/number

HTTP body:

{
  "number": 12
}

OSC message:

/goto/slide/number

The slide number is sent as an integer OSC argument.

Go to Named Slide

Enter the target name in Slide Name.

For example:

Introduction

HTTP request:

POST /goto/slide/named

HTTP body:

{
  "name": "Introduction"
}

OSC message:

/goto/slide/named

The slide name is sent as a string OSC argument.

Slide-name matching is performed by the DeckCue provider. Depending on its implementation, names may be case-sensitive and may need to match exactly.

If the name is empty, Action Phrase does not send the command.

Command reference

Command HTTP route HTTP body OSC address OSC argument
Start Presentation /start None /start None
Start from First Slide /start {"fromBeginning":true} /start Integer 1
Stop Presentation /stop None /stop None
Next Slide /show/next None /show/next None
Previous Slide /show/previous None /show/previous None
Go to Slide Number /goto/slide/number {"number":12} /goto/slide/number Integer
Go to Named Slide /goto/slide/named {"name":"Introduction"} /goto/slide/named String

All HTTP commands use the POST method and the JSON content type.

Variables

The Slide Number and Slide Name fields support Action Phrase variables using double braces:

{{variableName}}

For example:

{{targetSlide}}

Or:

Section {{sectionName}}

Variables are resolved when the phrase runs.

Dynamic slide number

Configure Go to Slide Number with:

{{slideNumber}}

If slideNumber resolves to 8, Action Phrase sends slide number 8.

The resolved value must be a positive whole number.

Dynamic slide name

Configure Go to Named Slide with:

{{slideName}}

If slideName resolves to Questions, the provider receives:

{
  "name": "Questions"
}

The protocol and command selectors cannot be replaced with template variables.

Pair IDs and Secrets also do not support template variables.

Switching protocols dynamically

The DeckCue protocol can be overridden using an action argument.

This allows an advanced phrase or workflow to choose between:

http

and:

osc

The corresponding HTTP or OSC connection settings must already be configured in the action.

For most installations, selecting a fixed protocol is simpler and more predictable.

Multiple DeckCue providers

Create a separate DeckCue action for each provider or presentation computer.

For example:

Action Host Purpose
Main Presentation Next 192.168.1.50 Controls the main presentation
Confidence Monitor Next 192.168.1.51 Controls a secondary presentation
Backup Presentation Start 192.168.1.52 Starts the backup system

Using separate actions prevents a phrase from accidentally controlling the wrong presentation.

Network configuration

The Action Phrase device must be able to reach the DeckCue provider.

Confirm that:

  • Both devices are on the same network or have a valid routed connection.
  • The provider is listening on the configured port.
  • The computer firewall permits incoming traffic.
  • TCP traffic is allowed for HTTP.
  • UDP traffic is allowed for OSC.
  • Client isolation is disabled on the Wi-Fi network.
  • The provider’s IP address has not changed.

For production systems, assign the provider a static IP address or a stable local hostname.

Test the connection

The DeckCue action does not currently include a separate Test Connection button.

To test safely:

  1. Load a test presentation.
  2. Confirm that HTTP or OSC control is enabled in the provider.
  3. Create a DeckCue action using Next Slide.
  4. Trigger the phrase.
  5. Confirm that the presentation advances.
  6. Test Previous Slide to return to the original slide.

Avoid testing Start Presentation or Stop Presentation against a live presentation.

Testing HTTP

If authentication is disabled, you can test the Next Slide endpoint from a terminal:

curl -X POST http://HOST:8090/show/next

If authentication is enabled, use the DeckCue action so that Action Phrase generates the required timestamp, nonce, and signature headers.

Testing OSC

Use the OSC protocol and trigger Next Slide while watching the provider.

Because OSC uses UDP, Action Phrase cannot confirm that the provider received the message.

HTTP responses

The DeckCue action sends the HTTP request but does not expose the response body as an Action Phrase variable.

The presentation provider’s interface is the best way to confirm that a command succeeded.

OSC delivery

OSC is connectionless and does not provide delivery confirmation.

A message may be lost if:

  • The network is congested
  • Wi-Fi is unstable
  • The destination host is unavailable
  • The UDP port is blocked
  • The provider is not listening

For critical commands, HTTP may provide more predictable error handling than OSC.

Custom DeckCue commands

The DeckCue action provides only its built-in command list.

To send an unsupported HTTP endpoint, use Action Phrase’s Web Request action.

To send an unsupported OSC address, use the general OSC action.

When using a general Web Request, DeckCue’s Pair ID and Secret headers are not generated automatically. Authenticated DeckCue HTTP commands should therefore use the dedicated DeckCue action.

Troubleshooting

Nothing happens when the phrase runs

Confirm that:

  • The DeckCue provider is running.
  • A presentation is loaded.
  • Remote control is enabled.
  • The selected protocol matches the provider.
  • The host and port are correct.
  • The firewall allows the required traffic.
  • The Action Phrase device can reach the provider.
  • The command has been selected.

The action works on the Mac but not on an iPhone or iPad

Do not use:

localhost

or:

127.0.0.1

unless the provider runs on the same device as Action Phrase.

Use the presentation computer’s network address instead:

192.168.1.50

Also confirm that Action Phrase has permission to access devices on the local network.

HTTP authentication fails

Check that:

  • Use HTTP Authentication matches the provider’s configuration.
  • The Pair ID is correct.
  • The Secret was copied completely.
  • The Secret is valid Base64URL data.
  • The clocks on both devices are accurate.
  • The request is being sent to the correct path.
  • A reverse proxy is not rewriting the command path.

If the Host includes a base path, that base path becomes part of the signed request.

The provider reports an invalid signature

Common causes include:

  • An incorrect Secret
  • An incorrect Pair ID
  • Clock drift
  • A proxy changing the request path
  • An extra or missing base path
  • Credentials copied from a different pairing
  • The provider expecting authentication while it is disabled in Action Phrase

Generate or copy a new pairing from the provider and update both fields together.

HTTPS fails

Confirm that:

  • The Host begins with https://.
  • The port is correct.
  • The certificate is valid.
  • The certificate hostname matches the Host.
  • The certificate is trusted by the Action Phrase device.

If the Host does not contain a protocol, Action Phrase uses HTTP.

OSC commands are not received

Confirm that:

  • The provider is listening for OSC.
  • The OSC port is correct.
  • UDP traffic is permitted by the firewall.
  • The Host does not include http:// or https://.
  • The sender and receiver are on networks that allow UDP traffic.
  • The provider expects the documented OSC addresses and argument types.

Go to Slide Number does nothing

The slide number must resolve to a positive whole number.

These values are invalid:

0
-1
3.5
Slide 3

Use:

3

Go to Named Slide does nothing

Confirm that:

  • The slide has a name in the presentation provider.
  • The name matches exactly.
  • The variable resolves to a non-empty value.
  • There are no unintended leading or trailing spaces.
  • The provider supports named-slide navigation.

Start Presentation begins on the wrong slide

Use Start from First Slide when the presentation must always begin at slide one.

Start Presentation allows the provider to use its current or default starting position.

results matching ""

    No results matching ""