A blank sheet for your automation ideas.

Smidyo is an industry agnostic platform, meaning it can be implemented into a wide area of niches.

Drag-and-drop 'til you drop.

Using our visual pipeline editor, it's easy to implement Smidyo for your niche. Smidyo pipelines cover everything, from gathering a product's information to crunching the data into a quote.

Illustration
An operation block that does array calculations
exports.handler = async ({ payload }) => {
  const [operation] = payload.operation;
  const aArray = payload.a;
  const bArray = payload.b;

  let result = [];

  for (let i = 0; i < aArray.length; i++) {
    const a = aArray[i];
    const b = bArray[i];
    result.push(
      {
        add: a + b,
        subtract: a - b,
        multiply: a * b,
        divide: a / b
      }[operation]
    );
  }

  return {
    type: 'OPERATION_BLOCK_RESULT_OUTCOME',
    result: { result }
  };
};

Expandable calculations 

When the built-in operation blocks are not enough, Smidyo can be easily expanded using short snippets of code.

  • icon

    Runs on AWS Lambda instances

    Custom operation blocks run on AWS Lambda, which means they can be programmed in JS, C++, Python, Java and more.

Expandable forms

Smidyo's forms can also be extended using element blocks, which are short snippets of HTML, JS and CSS. Using these, you can add new ways of gathering and displaying product information.

Illustration
An SVG viewer element block
{
  const id = document.currentScript.getAttribute('data-eb-id');
  const elementBlockInfo = window.__smidyo__.elementBlocks[id];
  const svgElement = document.getElementById(id + '-svg-preview');

  const update = () => {
    const payload = elementBlockInfo.payload;
    const svgPayload = payload.svg[0];
    window.__smidyo__.getPayloadletFileDownloadURLs([svgPayload.svg]).then(([urlInfo]) =>
      fetch(urlInfo.downloadURL).then(res =>
        res.text().then(svgBody => {
          svgElement.innerHTML = svgBody;
        })
      )
    );
  };

  update();

  elementBlockInfo.update = update;
}