ThingSpeak · Arazzo Workflow

ThingSpeak Relabel Field and Read Last Field Entry

Version 1.0.0

Update a channel's field label, then read the last value for that field.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub IoTInternet of ThingsAnalyticsTime SeriesMQTTMATLABSensorsTelemetryArazzoWorkflows

Provider

thingspeak

Workflows

relabel-field-and-read-last-field-entry
Rename a channel field, then read that field's most recent value.
Updates a channel field label via the channel settings endpoint, then reads the last entry for that field.
2 steps inputs: channelId, field1Label, fieldId, name, readApiKey, userApiKey outputs: lastFieldEntryId, updatedAt
1
updateChannel
updateChannel
Update the channel settings to apply the new field label.
2
readLastFieldEntry
readLastFieldEntry
Read the most recent value for the field to confirm it still has data.

Source API Descriptions

Arazzo Workflow Specification

thingspeak-relabel-field-and-read-last-field-entry-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: ThingSpeak Relabel Field and Read Last Field Entry
  summary: Update a channel's field label, then read the last value for that field.
  description: >-
    A maintenance flow for renaming a measurement on an existing channel. It
    updates the channel settings to give a field a new label, then reads the most
    recent value for that same field so an operator can confirm the field is still
    receiving data after the relabel. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: channelsApi
  url: ../openapi/thingspeak-channels-api-openapi.yml
  type: openapi
- name: feedsApi
  url: ../openapi/thingspeak-feeds-api-openapi.yml
  type: openapi
workflows:
- workflowId: relabel-field-and-read-last-field-entry
  summary: Rename a channel field, then read that field's most recent value.
  description: >-
    Updates a channel field label via the channel settings endpoint, then reads
    the last entry for that field.
  inputs:
    type: object
    required:
    - userApiKey
    - channelId
    - fieldId
    - field1Label
    properties:
      userApiKey:
        type: string
        description: User API Key on the THINGSPEAKAPIKEY header to update the channel.
      channelId:
        type: integer
        description: Numeric id of the channel to relabel and read.
      readApiKey:
        type: string
        description: Optional Channel Read API Key for reading the field's last entry.
      fieldId:
        type: integer
        description: Field number (1-8) whose last value to read after relabeling.
      name:
        type: string
        description: Channel name to preserve on the update.
      field1Label:
        type: string
        description: New label to assign to field1.
  steps:
  - stepId: updateChannel
    description: >-
      Update the channel settings to apply the new field label.
    operationId: updateChannel
    parameters:
    - name: channel_id
      in: path
      value: $inputs.channelId
    - name: THINGSPEAKAPIKEY
      in: header
      value: $inputs.userApiKey
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        field1: $inputs.field1Label
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      channelId: $response.body#/id
      updatedAt: $response.body#/updated_at
  - stepId: readLastFieldEntry
    description: >-
      Read the most recent value for the field to confirm it still has data.
    operationId: readLastFieldEntry
    parameters:
    - name: channel_id
      in: path
      value: $inputs.channelId
    - name: field_id
      in: path
      value: $inputs.fieldId
    - name: api_key
      in: query
      value: $inputs.readApiKey
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      entryId: $response.body#/entry_id
      createdAt: $response.body#/created_at
  outputs:
    updatedAt: $steps.updateChannel.outputs.updatedAt
    lastFieldEntryId: $steps.readLastFieldEntry.outputs.entryId